FPGA中testbench特殊调试语句用法

FPGA中testbench特殊调试语句用法

1、 三态信号

inout在testbench中定义为wire型变量,利用assign语句来实现数据的读写

wire  a;  //将双向接口变量定义为wire型
reg  b ;  //定义一个reg型的中间变量,作为双向口的输出寄存
reg c   ;  //定义输出使能,用于控制传输的方向
assign a = (c)?b:1'bz;

2、 仿真模块控制语句

$stop        //中断运行仿真,modelsim中可以通过窗口控制继续仿真
$stop(n)     //带参数系统任务,根据参数0,1,或2不同,输出仿真信息
$finish      //结束运行仿真,不可继续仿真
$finish(n)   //带参数系统任务,根据参数的不同:0,1或2,输出仿真信息
                 // 0: 不输出任何信息
                // 1: 输出当前仿真时刻和位置
               // 2:输出房前仿真时刻、位置和仿真过程中用到的memory以及cpu时间的统计
$random        //产生随机数
$random%n     //产生范围-n到n之间的随机数
{$random}%n    //产生范围0到n之间的随机数

3、在modelsim窗口中打印信息

语法与C语言printf函数类似,

$monitor    //仿真打印输出,打印出仿真过程中的变量,使其终端显示
            /*  $monitor($time,,,"clk = %d reset = %d out = %d",clk,reset,out); */
$display   //终端打印字符串,显示仿真结果等
           /*  $display("Simulation start !");
               $display("At time %t,input is %b %b %b,output is %b",$time,a,b,en,z);  */
$time      //返回64位整型时间
$stime     //返回32位整型时间
$realtiime //实行实型模拟时间

4、文本数据的输入和输出

文本的读取与MATLAB类似,采用readmem函数。一般涉及到读入文本时都是需要一些特殊的无规律的数据。

$readmemb/$readmemh("<数据文件名>",<存储器名>); 
$readmemb/$readmemh("<数据文件名>",<存储器名>,<起始地址>); 
$readmemb/$readmemh("<数据文件名>",<存储器名>,<起始地址>,<结束地址>); 
 
$readmemb:/*读取二进制数据,读取文件内容只能包含:空白位置,注释行,二进制数 数据中不能包含位宽说明和格式说明,每个数字必须是二进制数字。*/ 
 
$readmemh: /*读取十六进制数据,读取文件内容只能包含:空白位置,注释行,十六进制数数据中不能包含位宽说明和格式说明,每个数字必须是十六进制数字。*/ 

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值