"); //-->
测试平台是个没有输入输出端口的模块。仿真在一个模块设计中是很关键的步骤,而testbench是仿真的很好工具。
与待测模块接口
与输入端口相连接的变量定义为reg
与输出端口相连的定义为wire
initial块中初始化变量,必须的。
用$stop或$finish暂停或结束仿真
wait(z==1’b1);//等待变量值改变,变量可以是待测试模块的输出或者内部变量
时钟产生:
always # 10 clk =~clk;产生时钟
initial repeat(13) #5 clk =~clk; //控制只产生13个时钟。
同步数据:
initial forever @ (posedge clk) #3 x = $random;
为了降低多个输入同时翻转的概率,对时序电路的输入一般采用素数作为时间间隔。
同步显示:
l initial $monitor (“%d is changed at %t”,MUT.current,$time);//
一般在 initial中调用,采用$monitor显示模块MUT内部current的值以及发生变化的时间,$monitor是一个后台运行任务函数,多个模块下,任意时间只能有一个$monitor起作用,可用$monitoron $monitoroff来控制。
l always @(z) $display(“Output changed at %t to %b”,$time,z);当z发生变化输出z值以及变化时间,自动换行。
l always @(z) $strobe(“Output changed at %t to %b”,$time,z);//仿真结束后显示输出,查看非阻塞赋值变量的值。
随机数据
initial repeat(5) #7 x = $random;
a = $random%60; //产生-59~59之间随机数
a = {$random}%60; //产生0~59之间随机数
产生随机时间间隔
always begin
t= $random;
#(t) x = $random;
end
数据缓存
initial buffer = 16’b1110_0001_1011_0101;//将测试数据进行初始化
always @ ( posedge clk) #1 {x,buffer} = {buffer,x};//可以在控制的数据下输入信号x
读取数据文件
reg [7:0] mem1[0:1024];
initial begin
$readmemh( “data1.dat” , mem1);
模板:
`timescale 1ns/100ps
`include “*.v”
module t;
参数定义
输入测试模块的测试信号定义 reg,wire
内部变量定义
initial begin
初始化变量
$monitor (“%d is changed at %t”,MUT.current,$time);//监控数据
forever @ (posedge clk) #3 x = $random;//同步数据
repeat(5) #7 x = $random;
end
always @(z) $display(“Output changed at %t to %b”,$time,z);
always @(z) $strobe(“Output changed at %t to %b”,$time,z);
always # 10 clk =~clk;//产生时钟
always begin//
t= $random;
#(t) x = $random;
end
模块实例化
defparam module. WIDTH = 32;
endmodule
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
基于虚拟仪器的核能海水淡化实验测控平台
555时间程序控制器电路(二)
隔离器、接口、电源三合一,纳芯微推出集成隔离电源的隔离接口NSIP93086和NSIP9042系列
555多路温度测试电路
赛灵思隆重推出Zynq-7000
555实用可控硅触发电路两例
亚马逊为电子书作者推出人工智能驱动的 Kindle 翻译服务
福特可能会杀死 F-150 Lightning
基于虚拟仪器的计算机视觉系统的研究
jjjsj_请欣赏数码歌曲
不只有AI协作编程(Vibe Coding):生成式系统级芯片(GenSoC)将如何把生成式设计推向硬件层面
[原创]Starting DHCP server with dhcpsInit()
基于协同学理论的数字水印检测技术研究
Ceva NeuPro-Nano NPU支持出门问问TicHear 语音AI 为智能边缘设备实现多语言设备端智能处理能力
“中国将赢得人工智能竞赛”——英伟达黄仁勋谴责美国电价阻碍发展
英特尔支持第八届进博会:创新不息,共创AI普惠新生活
ARM能取代DSP吗?
采用赛灵思7系列FPGA满足严格的功耗预算
好就不来,发个帖子逗逗大家
基于信号接口的自动测试系统软件的设计与实现
exiao_流水灯
马斯克声称,特斯拉将于 4 月开始生产 Cybercab
从概念验证到投入生产:助力边缘AI走进现实
埃隆·马斯克赢得 1 万亿美元的特斯拉薪酬投票
[求助]vxworks DHCP Server的问题向高手请教
555麻纺高速整经机控制器电路
第一次来这里,想学arm,看到有用GBA的,想问一下,这个平台学习资料还多啊
ceajin_继电器滴答时钟
555时间程序控制器电路(一)
基于虚拟仪器的RailSAR测控系统的实现