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