SystemVerilog:$ urandom调用条件表达式

时间:2017-11-28 13:26:07

标签: verilog system-verilog

因此,当触发事件时,我想在向量中设置一些具有一些硬连线概率的位,所以我这样做了:

always @(some_event) begin
  err_byte[0] = ($urandom()&65535 < 85) ? 1'b1 : 1'b0;  
  err_byte[1] = ($urandom()&65535 < 85) ? 1'b1 : 1'b0;  
  //....etc

并且我的err_byte总是具有8&#39; h00的值,即使此代码被触发了数千次(这应该足以将至少一位设置为1)。当我声明一个整数rndv并执行此操作时:

rndv = $urandom()&65535;
err_byte[0] = (rndv < 85) ? 1'b1 : 1'b0;
rndv = $urandom()&65535;
err_byte[1] = (rndv < 85) ? 1'b1 : 1'b0;
//etc...
然后它突然起作用了。现在的问题是:这到底发生了什么?我不允许在条件表达式中调用系统任务吗?

1 个答案:

答案 0 :(得分:3)

运营商优先权。 $(document).ready(function($){ $(window).scroll(function(){ $scrol = $(document).scrollTop(); if ($scrol > 50 ) { $('.header').addClass('header6'); $('.logo').addClass('logo5'); $('.about').addClass('about5'); $('.about:hover').addClass('about5:hover'); $('.navbar').addClass('navbar5'); $('.nav').addClass('nav5'); } else{ $('.header').removeClass('header6'); $('.logo').removeClass('logo5'); $('.about').removeClass('about5'); $('.about:hover').removeClass('about5:hover'); $('.navbar').removeClass('navbar5'); $('.nav').removeClass('nav5'); } }); }); 提前<,因此您的第一个示例可以这样写。

&

现在看到问题?