尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Taxi快速上手:10分钟用cocotb+Verilator跑通你的第一个AXI-Stream仿真
硬件开发网络嵌入式【免费下载链接】taxiAXI, AXI stream, Ethernet, and PCIe components in System Verilog项目地址https://gitcode.com/gh_mirrors/taxi7/taxi点击查看免费下载 想学习AXI-Stream 仿真却不知从何下手Taxi 是一个用现代 System Verilog 编写的开源传输组件库内置 AXI、AXI-Stream、APB、以太网和 PCIe 组件并配套了完整的cocotb Verilator仿真测试平台。本文带你 10 分钟跑通第一个 AXI-Stream 仿真理解整个测试框架让你能独立调试自己的流接口设计。 为什么选 Taxi 做 AXI-Stream 仿真入门TaxiTaxi Transport Library由 FPGA Ninja 开发目标是提供一套高性能、易上手的 System Verilog 构建块覆盖 FPGA 内部AXI / AXI-Stream / APB和外部Ethernet / PCIe / UART / I2C接口。它有几个特别适合新手的特点纯开源组件FIFO、寄存器、宽度转换器、多路复用器等 AXI-Stream 常用模块一应俱全源码都在 src/axis/rtl/ 目录下Python 驱动的仿真测试激励用 cocotbPython编写无需手写复杂的 Verilog testbench快速仿真默认使用 Verilator 做 cycle-accurate 编译仿真速度远快于传统事件驱动模拟器参考实现丰富每个组件都附带可运行的回归测试是最好的学习材料⚙️ 环境准备安装 cocotb 和 Verilator仿真的 3 个核心依赖工具作用推荐版本Verilator仿真器System Verilog 编译仿真5.x 及以上cocotbPython 协程测试框架2.0.1cocotb-testpytest 驱动仿真0.2.6Linux 下安装命令Ubuntu/Debian 为例# 安装 Verilator sudo apt install verilator # 创建 Python 虚拟环境并安装依赖 python3 -m venv ~/taxi-env source ~/taxi-env/bin/activate pip install cocotb2.0.1 cocotb-bus0.3.0 cocotb-test0.2.6 \ cocotbext-axi0.1.28 cocotbext-eth0.1.26 \ cocotbext-uart0.1.4 pytest scapy 版本以项目 tox.ini 中锁定的依赖为准保持一致可避免 API 不兼容问题。macOS 可用brew install verilator。 克隆仓库2 条命令就绪git clone https://gitcode.com/gh_mirrors/taxi7/taxi.git cd taxi了解核心目录结构后续会反复用到taxi/ ├── src/ │ ├── axis/ # AXI-Stream 组件 │ │ ├── rtl/ # RTL 源码fifo、register、adapter... │ │ └── tb/ # 每个组件一个仿真测试目录 │ ├── axi/ # AXI 4 组件crossbar、interconnect... │ ├── apb/ # APB 组件 │ ├── eth/ # 以太网 MAC/PHY │ └── pcie/ # PCIe 组件 └── tox.ini # pytest 依赖与回归配置 跑通第一个 AXI-Stream 仿真我们以 taxi_axis_fifoAXI-Stream FIFO为例只需 3 条命令cd src/axis/tb/taxi_axis_fifo makemake完成 4 件事用 Verilator 编译 test_taxi_axis_fifo.sv 和 taxi_axis_fifo.sv注入PARAM_*参数数据位宽、FIFO 深度等加载 Python 测试模块test_taxi_axis_fifo运行所有cocotb.test()用例并输出 PASSED/FAILED成功时你会看到类似这样的输出... 6% : 167100.00ns ... * Test passed 1505310 ns consumed, 507690 pps 恭喜你的第一个 AXI-Stream 仿真已经跑通 看懂测试台一次仿真只有 3 个文件每个组件的仿真测试目录都遵循同一套结构读懂一套就全懂了文件职责Makefile定义仿真器、编译参数、源文件列表test_组件名.svSystem Verilog wrapper例化 DUT 接口test_组件名.pyPython 激励与校验逻辑以 Makefile 为例关键配置一目了然SIM ? verilator # 默认仿真器 TOPLEVEL_LANG verilog COCOTB_TEST_MODULES test_$(DUT) # Python 测试模块 COCOTB_TOPLEVEL test_$(DUT) # SV wrapper 顶层再看 Python 侧的核心逻辑摘自 test_taxi_axis_fifo.pycocotb.test() cocotb.parametrize( (payload_lengths, [size_list]), (idle_inserter, [None, cycle_pause]), # 随机空闲 (backpressure_inserter, [None, cycle_pause]), # 随机反压 ) async def run_test(dut, ...): tb TB(dut) await tb.reset() test_frame AxiStreamFrame(test_data) await tb.source.send(test_frame) # 从 s_axis 发送帧 rx_frame await tb.sink.recv() # 从 m_axis 接收帧 assert rx_frame.tdata test_frame.tdata # 校验数据得益于cocotbext-axi的AxiStreamSource/AxiStreamSink发送和接收 AXI-Stream 帧只要两行代码而且cocotb.parametrize会自动生成多组参数组合空闲插入、反压、不同帧长覆盖边界情况。 进阶玩法波形、换参数、全量回归1. 输出 FST 波形调试make WAVES1编译参数会自动追加--trace-fst见 Makefile生成的.fst文件可用 GTKWave 打开观察tdata、tvalid、tready、tlast的握手时序。2. 修改仿真参数Makefile 中所有PARAM_*变量都可以命令行覆盖比如用 32 位数据宽度、8192 深度跑一遍make PARAM_DATA_W32 PARAM_DEPTH81923. 换仿真器交叉验证make SIMicarus # 需先安装 iverilog4. 全量回归测试用 tox 一条命令跑全部组件依赖已锁版本pip install tox tox或者直接用 pytest 只跑 AXI-Stream 目录需要 cocotb-testpytest src/axis/tb/taxi_axis_fifo -v❓ FAQ 常见问题Qmake 报错找不到verilator命令确认 Verilator 在 PATH 中which verilator。未安装或版本过旧时先升级仿真器。Qcocotb 版本升级后测试报 API 错误以 tox.ini 中的锁定版本如 cocotb 2.0.1重装依赖即可。Q如何给自己的模块写测试照抄三件套复制一个现有tb目录改DUT名称、替换 RTL 源文件、重写 Python 激励Makefile 结构几乎不用动。参考 taxi_axis_register 测试逻辑最简单适合当模板。Q想深入理解 AXI-Stream 接口接口定义在 taxi_axis_if.sv包含DATA_W、KEEP、LAST、ID、DEST、USER等参数化信号是理解整个库的钥匙。✅ 到这里你已经掌握了安装 cocotb Verilator 环境、读懂 Taxi 的测试台结构、一条make命令跑通 AXI-Stream 仿真以及波形调试和全量回归技巧。接下来不妨试着仿真一下 taxi_axis_adapter数据位宽转换器或者深入 src/axi/ 探索 AXI 4 的 crossbar 与 interconnect 组件——整个库的每个组件都是同一套框架学一次处处适用赞分享硬件开发网络嵌入式【免费下载链接】taxiAXI, AXI stream, Ethernet, and PCIe components in System Verilog项目地址https://gitcode.com/gh_mirrors/taxi7/taxi点击查看免费下载相关推荐如何快速上手Port_SLAP_Simulator5分钟跑通你的第一个集装箱堆场仿真如何快速上手Port_SLAP_Simulator5分钟跑通你的第一个集装箱堆场仿真 Port_SLAP_Simulator 是一款面向 集装箱堆场仿真 与堆VideoChat-Flash快速上手10分钟跑通你的第一个长视频问答VideoChat Flash快速上手10分钟跑通你的第一个长视频问答 想让自己的 AI 看懂一部电影、一集综艺或整段监控录像吗 VideoChat FlaKEDA快速上手教程10分钟用RabbitMQ触发器跑通你的第一个ScaledObjectKEDA快速上手教程10分钟用RabbitMQ触发器跑通你的第一个ScaledObject KEDA 是一个 Kubernetes 事件驱动自动扩缩容组件K云原生容器编排上一篇Vosk-api Android集成指南移动端离线语音识别下一篇GPT-Engineer代码审查功能AI如何帮助提升代码质量的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

一文讲清:ComfyUI-layerdiffuse 里 ImageResize+ 节点来源,怎么装、怎么接

一文讲清:ComfyUI-layerdiffuse 里 ImageResize+ 节点来源,怎么装、怎么接

一文讲清:ComfyUI-layerdiffuse 里 ImageResize 节点来源,怎么装、怎么接 【免费下载链接】ComfyUI-layerdiffuse Layer Diffuse custom nodes 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI-layerdiffuse 遇到 ComfyUI-layerdiffus…

📅 2026/10/23 1:51:28
GTweak 本地化架构拆解:15 种语言 × 522 个键,新语种接入零额外成本

GTweak 本地化架构拆解:15 种语言 × 522 个键,新语种接入零额外成本

GTweak 本地化架构拆解:15 种语言 522 个键,新语种接入零额外成本 【免费下载链接】GTweak Portable Tool for an Ideal Windows Setup 项目地址: https://gitcode.com/GitHub_Trending/gt/GTweak GTweak 是一个 Windows 优化工具,内…

📅 2026/10/23 1:51:28
Ki Editor语法高亮机制:Tree-sitter查询与nvim-treesitter集成原理

Ki Editor语法高亮机制:Tree-sitter查询与nvim-treesitter集成原理

【免费下载链接】ki-editor ⵣ Ki Editor - Multi-cursor combinatoric modal editor. 项目地址: https://gitcode.com/gh_mirrors/kie/ki-editor 点击查看 免费下载 Ki Editor 是一款多光标组合式模态编辑器,它的语法高亮完全基于 Tree-sitter 语法树实…

📅 2026/10/23 1:51:28
MORE NEWS

更多资讯

📰

C++左值引用与右值引用:移动语义和完美转发实践指南

1. 从C11最关键的特性说起:值类别决定一切左值引用和右值引用,大概是我接触过的所有C特性里,最能影响代码设计思维的一组概念了。很多朋友学完这两样东西之后感觉“知道语法但不知道拿来干嘛”,核心原因是没把这两个特性放回它们真…

📰

如何将7-Zip C++核心嵌入Swift应用:ShichiZip桥接层架构深度剖析

【免费下载链接】ShichiZip The 7-Zip derivative intended for macOS 项目地址: https://gitcode.com/gh_mirrors/sh/ShichiZip 点击查看 免费下载 ShichiZip 是一款为 macOS 原生打造的 7-Zip 衍生解压压缩工具。它最核心的工程难题,是如何把 7-Zip 庞…

📰

OCTO iOS 架构全景解析:6 个 CocoaPods 模块 + 3 个系统扩展如何搭出原生 IM 客户端

【免费下载链接】octo-ios OCTO iOS Client — Open-source enterprise IM 项目地址: https://gitcode.com/gh_mirrors/oc/octo-ios 点击查看 免费下载 OCTO iOS 是一款开源的企业级即时通讯(IM)iOS 客户端,基于 Swift / Objecti…

📰

WoWee 测试体系揭秘:214 个单元测试与 Game Replay 机制,客户端项目如何保证质量

【免费下载链接】WoWee World of Warcraft Engine Experiment - a custom opensource client. 项目地址: https://gitcode.com/gh_mirrors/wow/WoWee 点击查看 免费下载 WoWee 是一款开源的《魔兽世界》自定义客户端引擎实验(World of Warcraft Engine …

📰

动态环境下多无人机协同路径规划与防撞Matlab仿真实践

做多无人机协同路径规划这个方向也有一段时间了。前两天把手头这套动态环境下多无人机系统协同路径规划与防撞的Matlab仿真代码重新梳理了一遍,从问题建模、算法选型到工程实现都有不少值得记录的东西。这篇文章适合正在做多智能体协同、无人机运动规划课题的研究生…

📰

别再手动比价了:SteamTradingSiteTracker 替你 24 小时盯住四平台 Steam 饰品行情

别再手动比价了:SteamTradingSiteTracker 替你 24 小时盯住四平台 Steam 饰品行情 【免费下载链接】SteamTradingSiteTracker Steam 挂刀行情站 —— 24小时更新的 BUFF & IGXE & C5 & UUYP & ECO 挂刀比例数据 | Track cheap Steam Community Mark…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬