Soy un principiante en Verilog. Por lo tanto, mi pregunta puede parecerle fácil, pero tengo dificultades para comprender la estructura de Verilog. Tengo un módulo que funciona en dos modos: leer y escribir. En el modo de escritura, debe asignar un valor en el borde positivo del reloj. En modo lectura, debe dar salida en cualquier momento sin reloj. ¿Puedo usar siempre una declaración en el caso?
module EncodedRAM (input EncodingMode, input [2:0] EncodingIndex, input [7:0] EncodingNumber,
input [7:0] EncodingMask, input CLK, output [7:0] EncodingResult);
initial begin
EncodingNumbers[0]=8'b00000000;
EncodingNumbers[1]=8'b00000000;
EncodingNumbers[2]=8'b00000000;
EncodingNumbers[3]=8'b00000000;
EncodingNumbers[4]=8'b00000000;
EncodingNumbers[5]=8'b00000000;
EncodingNumbers[6]=8'b00000000;
EncodingNumbers[7]=8'b00000000;
end
case(EncodingMode)
0:
always @(posedge CLK)
EncodingNumbers[EncodingIndex]=EncodingNumber ^ Masks[EncodingIndex];
1:
EncodingResult=EncodingNumbers[EncodingIndex];
endcase
endmodule