- 博客(14)
- 收藏
- 关注
原创 用Python给Verilog设计自仿(六):用python实现AXI-Stream接口仿真
本章主要介绍了cocotb-axis具体使用方法,下一章节将以FPGA数据流处理模块为例,构建包含流量控制,带sop,eop组包传输等典型场景的实战验证平台,演示从测试用例开发的完整验证流程。本文为原创Cocotb技术专栏,欢迎工程师伙伴们留言讨论或交流,共同学习。若想第一时间获取更新,可点击下方「关注」或订阅Cocotb专题。
2025-04-08 14:02:03
1030
原创 用Python给Verilog设计自仿(五):阻塞与队列,如何实现FPGA仿真高吞吐数据校验
对于许多FPGA/IC工程师而言,设计实现游刃有余,验证仿真却常成短板——传统验证方法面临两难困局:学习UVM需投入大量时间成本,而纯Verilog自仿又会陷入重复造轮子的低效循环。以通信协议仿真为例,仅报文解析就需要重写整套解析逻辑,相当于用Verilog再实现一次协议栈,耗时费力。此时,Python的生态优势便锋芒尽显。其丰富的字符串处理库可直接解析报文,配合Cocotb框架,仅需少量Python代码即可构建高效测试平台,将验证工作量压缩70%以上。
2025-03-28 12:00:00
660
原创 用Python给Verilog设计自仿(四):协程调度全解析,仅需三行代码构建以太网帧
对于许多FPGA/IC工程师而言,设计实现游刃有余,验证仿真却常成短板——传统验证方法面临两难困局:学习UVM需投入大量时间成本,而纯Verilog自仿又会陷入重复造轮子的低效循环。以通信协议仿真为例,仅报文解析就需要重写整套解析逻辑,相当于用Verilog再实现一次协议栈,耗时费力。此时,Python的生态优势便锋芒尽显。其丰富的字符串处理库可直接解析报文,配合Cocotb框架,仅需少量Python代码即可构建高效测试平台,将验证工作量压缩70%以上。
2025-03-27 12:00:00
531
原创 用Python给Verilog设计自仿(三):Cocotb高频语法,从此告别SV手写
对于许多FPGA/IC工程师而言,设计实现游刃有余,验证仿真却常成短板——传统验证方法面临两难困局:学习UVM需投入大量时间成本,而纯Verilog自仿又会陷入重复造轮子的低效循环。以通信协议仿真为例,仅报文解析就需要重写整套解析逻辑,相当于用Verilog再实现一次协议栈,耗时费力。
2025-03-26 18:28:14
771
原创 verilog代码中为什么要加`default_nettype none
通过添加default_nettype none语句,禁止了Verilog的默认行为,要求在使用信号之前显式声明信号类型。Verilog语言允许在使用信号之前不显式声明信号类型,而是根据信号名的前缀来推断信号的类型(比如wire或reg)。例如,下面的代码片段中,如果不加default_nettype none,Verilog编译器将不会报错,但是很明显大写的C是一个笔误。如果信号的类型不是显式指定的,那么代码的阅读者可能需要查看整个代码来确定信号是wire还是reg。
2025-03-13 14:00:50
203
原创 多个FPGA之间如何实现通信
配置CRC校验+通道绑定(Channel Bonding),抗干扰能力拉满,适用于多对一场景。注意事项:如果两时钟频率差超过5%,FIFO会溢出或读空,建议用 almost_full 信号反压。参数设置:写时钟用FPGA1的clk_tx,读时钟用FPGA2的clk_rx,深度至少64。用Vivado ILA同时抓取两片FPGA的信号,通过JTAG链触发同步(需要两个调试器)。先单独验证每片FPGA的基础功能(比如FPGA1发0xAA,FPGA2收到后点亮LED)。
2025-03-11 22:47:41
614
原创 用于设计的可综合SV:SystemVerilog不仅仅用于验证
在数字电路设计领域,通常我们认为Verilog是一种设计语言,而SystemVerilog是专门用于验证的语言,不能用于设计。然而,这种观念是不准确的!事实上,SystemVerilog同样适用于设计,在某些方面甚至比Verilog更为便利。
2025-03-09 15:33:40
1014
原创 FPGA如何实现延时
FPGA的延时实现,堪称数字电路设计的“基本功”,但坑多水深。结合多年踩坑经验,我总结出六种主流方案,覆盖从皮秒级到秒级的延时需求,附赠避坑指南和选型建议。
2025-03-08 14:50:40
945
原创 用Python给Verilog设计自仿(二):用D触发器解锁自动化验证的「第一个波形」
对于许多FPGA/IC工程师而言,设计实现游刃有余,验证仿真却常成短板——传统验证方法面临两难困局:学习UVM需投入大量时间成本,而纯Verilog自仿又会陷入重复造轮子的低效循环。以通信协议仿真为例,仅报文解析就需要重写整套解析逻辑,相当于用Verilog再实现一次协议栈,耗时费力。
2025-03-07 17:06:48
1387
原创 Vivado安装包的正确打开方式+版本选择全攻略
最近后台收到大量关于“Vivado安装包”的私信,发现不少小伙伴还在苦苦搜寻第三方网盘资源。其实,Vivado完全可以通过官网直接下载,安全高效!第三方网盘不仅速度慢,还可能存在版本混乱、捆绑插件等风险。今天就来聊聊如何科学获取Vivado,并揭秘各版本特点,最后安利一个“轻量神器”——Lab版,仅1GB就能完成程序下载!
2025-03-06 13:55:00
1032
原创 用Python给Verilog设计自仿(一):Cocotb环境初探
cocotb 的当前稳定版本需要:Verilog 或 VHDL 仿真器,取决于您的 RTL 源代码支持以下系统Cocotb建议Linux经验较少的用户使用下面列出的经过支持和测试的发行版,以确保cocotb的顺畅体验。当然其他版本Linux也不是不行。请根据自己的系统安装对应的前置环境#macOs本文详细拆解了 Cocotb验证框架的环境搭建与仿真流程,涵盖Python环境配置、仿真器联动与基础操作,助你快速迈出硬件验证自动化的第一步。
2025-03-05 18:41:52
1062
原创 FPGA——DDS原理及代码实现
该正弦波参数为 >周期T = 1ms * 32 = 32ms, >频率为 f = 1/T = 1/(1ms * (32/1))周期T = 1ms * 16 = 16ms >周期T = 1ms * 64 = 64ms >这里,1ms即为Tclk,fclk = 1/Tclk = 1/1ms;32 = 2^5即为N=5,而32除以的数(1,2,0.5)即为频率控制字fword,那么fo = (fclk * fword)/(2^N)
2025-03-05 16:49:45
1160
原创 MATLAB——生成各种数据类型的COE文件
MATLAB是一种功能强大的数学软件,不仅可以进行各种数学计算,还能够生成并处理多种数据类型。在以下的代码中,我们使用MATLAB生成COE文件,该文件包含了不同数据类型的波形数据,涉及无符号整数、有符号整数、单精度浮点数以及双精度浮点数。欢迎关注微信公众【AdriftCoreFpga】获取第一时间更新。
2025-03-05 16:20:20
359
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人