RAM을 쓰는 것이 더 나은 코드는 무엇입니까?Verilog에서 RAM을 더 잘 코딩하는 방법
always
블록 내부에data_out
을 할당 :module memory( output [7:0] data_out, input [7:0] address, input [7:0] data_in, input write_enable, input clk ); reg [7:0] memory [0:255]; always @(posedge clk) begin if (write_enable) begin memory[address] <= data_in; end end assign data_out = memory[address]; endmodule
모든 권고 :
module memory(
output reg [7:0] data_out,
input [7:0] address,
input [7:0] data_in,
input write_enable,
input clk
);
reg [7:0] memory [0:255];
always @(posedge clk) begin
if (write_enable) begin
memory[address] <= data_in;
end
data_out <= memory[address];
end
endmodule
이 assign
문을 사용하여 data_out
을 할당?
256 개의 메모리 위치에 액세스하는 데 16 개의 주소 비트가 필요하지 않습니다. 'input [7 : 0] address; '를 사용해야합니다. – toolic