現在、8ビットの符号なしレジスタと32ビットの符号付き整数を含む新しいデータ構造オブジェクトを定義するために、SystemVerilogでTypeDefを使用しようとしていますが、エラーを取得しておいてください。SystemVerilog TypeDefパックされた、またはパックされていない配列ディメンションがゼロのインデックスオブジェクト
エラー(10053):UART.vでのVerilog HDLのエラー(35):できませんインデックスオブジェクト「データ」ゼロパックまたはアンパック配列の次元で
私が再作成されています下の単純な実装では、topLevelModuleが、構造体が構成されている整数と8ビットの符号なしレジスタの両方の値を決定するlowLevelModuleをインスタンス化するofを生成してtopLevelModuleに出力します。
別のUARTモジュールを使用して、この構造体/オブジェクト(40ビット長)をホストコンピュータに送信しようとしています。下のコードを簡略化するために、このモジュールを省略し、非関連コード。
typedef struct {
reg[7:0] identifier;
integer currentSynapticWeight;
} dataPacket;
module topLevel(clk, reset, UART_TXD);
input clk; // Clock Signal
input reset; // Reset Signal
output UART_TXD; // Output Signal
dataPacket data; // Instance the dataPacket Object
lowLevelModule LLM1(clk, reset, data);
// CODE TO DRIVE THE UART CONNECTION OMMITED
endmodule
module lowLevelModule(clk, reset, data);
input clk; // Clock Signal
input reset; // Reset Signal
output dataPacket data; // Instance the dataPacket Object
reg[7:0] someUnsigned8BitUnsignedReg = 8'b10001000;
integer someIntegerValue = 25;
always @(*)
begin
data[39:32] = someUnsigned8BitUnsignedReg;
data[31:0] = someIntegerValue;
end
endmodule
私はTypeDefを正しいマナーに使用しているかどうかはわかりません。