完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本文和设计代码由FPGA爱好者小梅哥编写,未经作者许可,本文仅允许网络论坛复制转载,且转载时请标明原作者。
TestBench中端口reg和wire定义解惑 很多学员在学习TestBench的编写的时候,容易死记概念,最典型的就是,被测试模块的输入端口在测试文件中要定义成reg,输出端口要定义为wire。 例如,最典型的这种写法,大家都能看得懂。 reg clk; initial clk = 0; always #10 clk = ~clk; led_run led_run ( .clk50(clk), .led(led) ); 那我现在换一种写法,我定义一个中间信号,名叫clkin,然后按照下述方法写: reg clk; initial clk = 0; always #10 clk = ~clk; wire clkin; assign clkin = clk; led_run led_run ( .clk50(clkin), .led(led) ); 这个时候,被测试模块的输入端口就链接到了clkin这个被定义为wire型的信号上,是不是就与我们所说的基本规律相违背了呢? 这个实际就是看你有没有真正理解激励信号的意义,使用reg定义激励信号,然后我们可以通过对reg信号在不同的时候赋予不同的值来产生激励。如果使用reg信号定义的信号名称和你的被测试模块的端口在测试文件中的命名一样,就可以默认连接上,第一种写法就是这种形式。在第二种写法中,增加了一个中间信号,这个信号是个wire型的,一端连接到了reg型的clk这个信号上,另一端连接到了被测试模块的clk50输入端口。实质上等同于直接将reg型的clk信号直接连接到被测试模块的clk50上,所以并没有冲突。 为什么我在最开始讲测试文件的编写时候要重点使用示波器和信号发生器来类比,就是希望大家真正理解这些信号的实质。 |
|
相关推荐
|
|
1434 浏览 1 评论
助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4
1059 浏览 0 评论
2513 浏览 1 评论
2206 浏览 0 评论
矩阵4x4个按键,如何把识别结果按编号01-16(十进制)显示在两个七段数码管上?
2475 浏览 0 评论
1936 浏览 53 评论
6021 浏览 113 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-26 00:22 , Processed in 0.418838 second(s), Total 63, Slave 46 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号