请解释此SystemVerilog语法{>;gt;字节{…}
以下程序的答案是{6,7,8},但我不明白为什么,请解释一下:请解释此SystemVerilog语法{>;gt;字节{…},verilog,system-verilog,bit-shift,Verilog,System Verilog,Bit Shift,以下程序的答案是{6,7,8},但我不明白为什么,请解释一下: module q (); typedef byte byteq[$]; initial begin byte ans[$]; ans = byteq'({>>byte{24'h060708}}); $display("A:expect '{6,7,8} get %p", ans); end endmodule 有关完整解释,请参阅§11.4.14流媒体运营商(打包/解包) 切片大小
module q ();
typedef byte byteq[$];
initial begin
byte ans[$];
ans = byteq'({>>byte{24'h060708}});
$display("A:expect '{6,7,8} get %p", ans);
end
endmodule
有关完整解释,请参阅§11.4.14流媒体运营商(打包/解包) 切片大小决定每个块的大小,以位为单位。如果未指定切片大小,则默认值为1。如果指定,它可以是常量积分表达式或简单类型。如果使用类型,块大小应为该类型中的位数。如果使用常数积分表达式,则表达式的值为零或负值应为错误。
stream_操作符
确定数据块的流化顺序:>
使数据块按从左到右的顺序流化,而
从左到右的流式传输将导致忽略切片大小,并且不会执行重新排序。使用从右向左流的>>运算符在此上下文中不是逻辑移位,但称为流运算符
流操作符确定数据块流化的顺序:>>导致数据块
以从左到右的顺序传输的数据量,而
$display ("%h", {>>byte{24'h060708}} );
$display ("%h", {<<byte{24'h060708}} );
060708
080706