标签:reset 笔记 lab1 例化 output interface router DUT SystemVerilog
最近在学习SV这门语言,做了一下Synopsys公司的lab(ces_svtb_2006.06-SP1.tgz),写一点自己的学习笔记。
Synopsys公司的这个lab验证的DUT为一个router。介绍如下:
看了下router.v这个code,发现它还有一个端口ouput [15:0] busy_n ,在这个图上面没有画出来。
我写的lab1的SV code主要分为几个部分:
1,Interface:
我写的这个interface在clocking cb块里面声明了 output reset_n,(sync reset_n),然后在modport中也声明了一个output reset_n,(async reset_n),这表明reset_n即可以同步也可以异步。
clocking块中使用了default 语句,用了#1延时,表明了在posedge clock,#1前sample input,#1后drive output,就像verilog里面DFF采集输出一样。不用时,默认的为:default input #1 output #0
2,TEST
test里面为一个automatic program,注意接口就是router_io.TB,例化名字为rt。reset()这个task,给reset_n这个端口进行了两次赋值,一次就是异步的,一次就是同步的。
注意给clocking里面的信号赋值的时候都必须使用非阻塞赋值(<=)
3,TOP
在top例化了一个接口a_if,并连接上时钟SystemClock,注意例化DUT时的连接方式,interface声明中时钟为输入端,连接DUT时也是直接a_if.clk,和interface块中的信号连接方式相同。
如果DUT中也是采用的接口形式(像router_test中的那样),那么在例化时只需要router U_dut (a_if)。
标签:reset,笔记,lab1,例化,output,interface,router,DUT,SystemVerilog 来源: https://blog.csdn.net/llxxyy507/article/details/97414872
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。