在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 6705|回复: 6

[求助] UVM test_case的随机化seed

[复制链接]
发表于 2018-4-5 10:37:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
我有一个用例,里面使用uvm_do_with随机产生64~1000字节包长的以太网报文, 我把这个用例文件夹复制了一份改了文件夹名字,重新运行还是一样的结果(所有包长的字节和相同),我理解是因为modelsim运行测试的时候随机化种子一样, 怎么能修改这个种子?   我目的就是希望能多跑几个用例、多随机几次包长pload_size的变化

报文的seq的部分如下定义

class seq_eth_ipv4_XXX extends uvm_sequence #(eth_frm);

   eth_frm              m_trans          ;
   rand bit[47:0] t_dmac             ;
   rand bit[47:0] t_smac             ;
   rand bit[15:0] pload_size;
   
   function  new(string name= "seq_eth_ipv4_XXX");
      super.new(name);
      m_trans          = eth_frm::type_id::create("m_trans");
   endfunction
      virtual task body();                                             
         start_item(m_trans);           
         assert(m_trans.randomize() with {
             dmac        == t_dmac;
             smac        == t_smac;                 
             pload.size == pload_size;
             });
                         
   endtask

   `uvm_object_utils(seq_eth_ipv4_XXX)
endclass



testcase如下去调用

   seq_eth_ipv4_XXX             ipv4_pkt       ;
   function  new(string name= "test_sequence");
      super.new(name);
      ipv4_pkt        = seq_eth_ipv4_XXX::type_id::create("ipv4_pkt");
    endfunction
   
   virtual task body();
      if(starting_phase != null)
         starting_phase.raise_objection(this);                        

      repeat (1) begin      
         `uvm_do_with(ipv4_pkt,
         {
             ipv4_pkt.t_dmac        == 48'hBBBB_FFFF_DDDD;
             ipv4_pkt.t_smac        == 48'h0000_1111_2222;
            
            ipv4_pkt.pload_size >= `MIN_LENGTH-12-4 ;
            ipv4_pkt.pload_size <= `MAX_LENGTH-12-4 ;
            
         })
                  
      end
发表于 2018-4-6 22:26:45 | 显示全部楼层
回复 1# yuchen5098


    传一个种子进去仿真,种子不一样,随机序列就会不一样。
    我们一般都是用seed=xxxx传进去的。
 楼主| 发表于 2018-4-7 19:35:09 | 显示全部楼层
这个seed是怎么声明和使用的?谢谢。
 楼主| 发表于 2018-4-8 17:33:06 | 显示全部楼层
modelsim运行命令中增加-sv_seed XX 好像就实现了不同的随机化,我再多试几个看看
发表于 2018-4-12 17:26:11 | 显示全部楼层
modelsim没用过,vcs中是在makefile中加上+ntb_random_seed=$(SEED),SEED可以用随机值。可以看看modelsim提供的运行脚本,里边有没有关于种子的赋值命令。
发表于 2022-6-8 22:45:34 | 显示全部楼层
MODELSIM中在vsim后面加-sv_seed random。
发表于 2024-9-5 18:47:30 | 显示全部楼层
这个不是因为先start_item 而后随机了嘛
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-18 18:20 , Processed in 0.019205 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表