请解释此SystemVerilog语法{>;gt;字节{…}

请解释此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流媒体运营商(打包/解包) 切片大小

以下程序的答案是{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流媒体运营商(打包/解包)

切片大小决定每个块的大小,以位为单位。如果未指定切片大小,则默认值为1。如果指定,它可以是常量积分表达式或简单类型。如果使用类型,块大小应为该类型中的位数。如果使用常数积分表达式,则表达式的值为零或负值应为错误。


stream_操作符
确定数据块的流化顺序:
>
使数据块按从左到右的顺序流化,而
从左到右的流式传输将导致忽略切片大小,并且不会执行重新排序。使用
从右向左流的>>运算符在此上下文中不是逻辑移位,但称为流运算符

流操作符确定数据块流化的顺序:>>导致数据块 以从左到右的顺序传输的数据量,而
$display ("%h",  {>>byte{24'h060708}} );
$display ("%h",  {<<byte{24'h060708}} );
060708
080706