1
Terasic DE1 FPGAボード上のSRAMチップに書き込もうとしていますが、トライステート制御でエラーが発生しています。SRAMインタフェース用のVerilog双方向バス
Error (10137): Verilog HDL Procedural Assignment error at inputOutputControl.v(32): object "SRAM_DATA" on left-hand side of assignment must have a variable data type
Error (10137): Verilog HDL Procedural Assignment error at inputOutputControl.v(33): object "SRAM_DATA" on left-hand side of assignment must have a variable data type
Error (10219): Verilog HDL Continuous Assignment error at inputOutputControl.v(52): object "SRAM_LB_N" on left-hand side of assignment must have a net type
Error (10219): Verilog HDL Continuous Assignment error at inputOutputControl.v(53): object "SRAM_UB_N" on left-hand side of assignment must have a net type
は以下の通りであると我々は問題を抱えているモジュールは、誰もが私たちは、この作業を取得する方法上の任意の光を当てることができます。以下のようにエラーがありますか?
私はこの考えてmodule ram_writer(
input CLK,
input RESET_N,
input V_PORCH_EN,
input LOGIC_WE_N,
input LOGIC_CE_N,
input [17:0] LOGIC_WRITE_ADDRESS,
input [15:0] LOGIC_WRITE_DATA,
input VGA_OE_N,
input VGA_CE_N,
input [17:0] VGA_READ_ADDRESS,
output [15:0] VGA_READ_DATA,
output reg SRAM_OE_N,
output reg SRAM_WE_N,
output reg SRAM_CE_N,
output reg SRAM_LB_N,
output reg SRAM_UB_N,
output reg [17:0] SRAM_ADDRESS,
inout wire [15:0] SRAM_DATA
);
reg [15:0] writeData;
always @(posedge CLK)
begin
writeData <= LOGIC_WRITE_DATA;
VGA_READ_DATA <= SRAM_DATA;
end
always @((posedge LOGIC_WE_N or writeData))
begin
if(LOGIC_WE_N == 1) SRAM_DATA = 16'bZ;
else SRAM_DATA = writeData;
end
always @(posedge CLK)
begin
if(V_PORCH_EN == 1) begin
SRAM_ADDRESS <= LOGIC_WRITE_ADDRESS;
SRAM_CE_N <= LOGIC_CE_N;
SRAM_WE_N <= LOGIC_WE_N;
SRAM_OE_N <= 1;
end
else begin
SRAM_ADDRESS <= VGA_READ_ADDRESS;
SRAM_CE_N <= VGA_CE_N;
SRAM_OE_N <= VGA_OE_N;
SRAM_WE_N <= 1;
end
end
assign SRAM_LB_N = 0;
assign SRAM_UB_N = 0;
endmodule
SRAM_LB_NとSRAM_UB_Nをワイヤタイプに変更しましたが、SRAM_DATAエラーを修正する方法はまだわかりません。 inoutポートをregにすることはできますか? –
alwaysブロックを介して割り当てたregタイプのSRAM_DATA_REGを作成してから、 'assign SRAM_DATA = SRAM_DATA_REG;' – Tim
またはワイヤタイプとしておきます。 SRAM_DATA = LOGIC_WE_Nを割り当てますか? 16'bZ:writeData; – Morgan