我想从数字中删除几个数字24-bit binary并将其转换为18-bit binary数字.
例如:
如果是二进制数
bin24=111100111011111000100111
Run Code Online (Sandbox Code Playgroud)
我想删除位23:22,15:14并且7:6输出应该是
bin18=110011111110100111
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用substr()和连接.只是想知道我是否可以在一行中做到这一点?
我想检查变量的当前值是否为“1”,则变量的先前值应该为“0”。我在系统 Verilog 断言中使用 $past。这里我检查cal_frame_mode是否=1,那么它是cal_frame_mode=0的先前值。我的代码如下。但是,我看到断言失败。当我检查波形时,它的行为正确。第一次检查后 2 个时钟后断言标记。如何在仅检查一个时钟周期后停止此断言?
property p_NOP_2_RX_CAL;
@(posedge clk)
(cal_frame_mode==3'b001) |-> ##2 $past(cal_frame_mode)==3'b000;
endproperty
assert_nop2cal : assert property(p_NOP_2_RX_CAL);
Run Code Online (Sandbox Code Playgroud)