zoukankan      html  css  js  c++  java
  • verilog调试--- $test$plusargs和$value$plusargs的用法 ---- 转载

    转自:http://blog.sina.com.cn/s/blog_7861157f0102v4tf.html
     
    VERILOG的参数可以用define和parameter的方式定义,这种方法要求我们在编译前将变量必须定义好,编译完成之后再也不能修改;
    然而,有时候我们在进行仿真时,需要从外部传递参数,这个要求怎么满足呢?
     
    我们来看下 $test$plusargs和$value$plusargs的功能,首先来看一个简单的例子:
     
    `timescale 1ns/1ps
    module tb;
    reg[255:0] testname;
    initial begin
    $display("**********************RESULT IS BELOW*********************");
    if($test$plusargs("TAISHAN"))
    $display("****************TAISHAN is selected******************");
    else
    $display("**********************$test$plusargs FAIL**************");
    if ($value$plusargs("TESTNAME=%s", testname[255:0])) 
     begin 
     $display("*****************Running test %0s.********************", testname); 
     end
     else
     $display("**********************$value$plusargs FAIL**************");
    $finish;
    end
    endmodule
     
    以synopsis的VCS工具为例,正常编译后,
    在仿真时,不同命令的结果如下:
    命令:simv 
    输出:
    **********************$test$plusargs FAIL***************
    **********************$value$plusargs FAIL**************
    命令:simv +TAISHAN
    输出:
    ****************TAISHAN is selected******************
    **********************$value$plusargs FAIL**************
    命令:simv +TAISHAN +TESTNAME=HUASHAN
    输出:
    ****************TAISHAN is selected******************
    *****************Running test HUASHAN.********************
     
    跑完以上例子,我相信您对$test$plusargs和$value$plusargs已经有一个初步的了解。
     
    注意,simv有一个bug,假如一段程序中有如下代码:
    if($test$plusargs("TAISHAN")) begin。。。end
    if($test$plusargs("TAISHANHAO")) begin。。。end
    在仿真时,若采用命令
    simv +TAISHANHAO
    TAISHANHAO也会触发分支if($test$plusargs("TAISHAN")) begin。。。end
     
    因此,建议大家在命名时前缀尽量不要一致。
     
     
  • 相关阅读:
    CTR预估(3)--正则,交叉验证、特征提取、变量分类
    CTR预估(1)--CTR基础
    svm支持向量机系列(4) --软间隔支持向量机
    机器为什么可以学习(4)---错误和噪声
    svm支持向量机系列(3) -- kernel支持向量机
    svm支持向量机系列(2) -- 对偶支持向量机
    svm支持向量机系列(1) -- 线性支持向量机
    机器为什么可以学习(3)----vc维
    机器为什么可以学习(2)---一般化理论
    GitLab 数据库
  • 原文地址:https://www.cnblogs.com/hxing/p/13551213.html
Copyright © 2011-2022 走看看