He escrito el código para leer los datos de la memoria de la siguiente manera:
module memcode(clk1,we,dout);
reg [7:0] add = 8'b00000000;
reg [7:0] din;
input we,clk1;
integer i=0;
output [7:0] dout;
reg [7:0] dout;
reg [7:0] data;
wire [7:0] douta;
//assign data = dout;
always @ (posedge clk1) begin
if (we == 1) begin
if (i < 255) begin
data <= din;
add = add+1;
i = i+1;
dout = data;
//dout = douta;
end
end
end
bram8 u1 (
.clka(clk1),
.wea(we), // Bus [0 : 0]
.addra(add), // Bus [7 : 0]
.dina(din), // Bus [7 : 0]
.douta(dout)); // Bus [7 : 0]
endmodule
Sin embargo, estoy recibiendo los errores:
ERROR:HDLCompilers:246 - "memcode.v" line 55 Reference to vector reg 'dout' is not a legal net lvalue
ERROR:HDLCompilers:102 - "memcode.v" line 55 Connection to output port 'douta' must be a net lvalue
Cuando ejecuto la sintaxis de verificación, no recibo ningún error; sin embargo, cuando intento sintetizar, obtengo los errores anteriores. ¿Alguien puede ayudarme, por favor, adónde voy mal?