sv 环境搭建流程

sv 环境搭建流程该文详细描述了 SV 环境的搭建过程 包括阅读 v 文件了解需求 创建 DUT 输入输出接口 编写顶层模块 top xx sv 以及构建 program 进行测试

sv 环境搭建流程

1.打开要求文档,打开.v文件并阅读。

2.根据DUT的输入输出完成xx_interface.sv

对于TB来说 ,DUT输入输出信号方向与TB信号方向相反.

3.顶层模块 top_xx.sv的编写

顶层文件中
(1 包含 SYSTEM CLOCK的生成(forever #xx xxxx;)
(2 interface的例化(首先例化interface,并与系统时钟相连,interface只需要input bit clock)
(3 program 的例化括号里只需连接例化出的interface的名字
(4 DUT的例化 举例

fifo dut_fifo( .dut的端口a(interface名.a), .dut的端口b(interface名.b), ... ) 

这里的连接包括interface.clk,全部连接好之后完成
(5 可以把$fsdbDumpfile ();
$fsdbDumpMDA();
$fsdbDumpvars (0,”顶层模块的名字”);(不加名字更好,不然verdi里没法把其他模块的信号拉出来看.)
写在这里的initial begin end之间

4.program xxx的编写(interface名 例化名)

`timescale 1ns/10ps `include”packet.sv” `include”ScoreBoard.sv” program (interface io_a,io_b) logic; bit; parameter; 类的对象例化;(packet,scoreboard) initial begin new();//需要随机的信号 //================================================== //将这些部分集成为一个不会死循环的大task,便于复用 //task main_process(); reset(); config(); fork begin gen();//随机or定向产生信号 drive();//发送信号 end begin rec();//forever 接受信号 end begin sb.compare(); //forever比较信号 (compare完毕删除数组及计数变量,使得task可以在一个program 复用) end begin (看门狗定时diasble任务,退出程序,避免死循环,亦或者可以使用flag定量 结束任务,更合理.) end join //endtask:main_process //================================================= end //=================================== //tasks task reset(); endtask:reset task config(); endtask:config task gen(); endtask:xxx ... ==================================== 

endprogram

今天的文章 sv 环境搭建流程分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-12 21:30
下一篇 2024-12-12 21:27

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/84198.html