- struct是有一組變量或常數組成的集合,可以作為一個整體進行操作,也可以操作其中一部分
- 将邏輯上相關的信号放在一起,比如總線協定
struct{
int a,b;
logic [7:0] opcode;
logic [23:0] address;
bit error;
}Instruction_Word
<structure_name>.<variable_name>
Instruction_Word.address = 24'hF00000;
- 結構體預設是非填充的,使用關鍵字packed可以将結構體聲明成填充的結構體,填充結構體将所有的資料元素存儲在連續的單元内,結構體的第一個元素是矢量的最左側域
//并行改串行,非填充改為填充
struct packed{
logic valid;
logic [7:0] tag;
logic [31:0] data;
}data_word
- 填充結構體可以通過變量名或部分矢量選擇來使用結構體中的變量
data_word.tag = 8'hf0;
data_word [39:32] = 8'hf0;
data_word = '{1,8'hff,1024};//指派操作