// 实现128KB的板载RAM

module ram #( parameter ADDR_WIDTH = 17 // 地址总线宽度,默认为17位 ) ( input wire clk_in, // 系统时钟输入端口 input wire en_in, // 芯片使能输入端口 input wire r_nw_in, // 读写选择输入端口(读:1,写:0) input wire [ADDR_WIDTH-1:0] a_in, // 存储器地址输入端口 input wire [ 7:0] d_in, // 数据输入端口 output wire [ 7:0] d_out // 数据输出端口 );

wire ram_bram_we; // 存储器写使能信号 wire [7:0] ram_bram_dout; // 存储器数据输出信号

single_port_ram_sync #(.ADDR_WIDTH(ADDR_WIDTH), .DATA_WIDTH(8)) ram_bram( // 单端口同步RAM模块实例化 .clk(clk_in), .we(ram_bram_we), .addr_a(a_in), .din_a(d_in), .dout_a(ram_bram_dout) );

assign ram_bram_we = (en_in) ? ~r_nw_in : 1'b0; // 写使能信号赋值,当en_in为1时,写使能信号为r_nw_in的反相信号,否则为0 assign d_out = (en_in) ? ram_bram_dout : 8'h00; // 数据输出信号赋值,当en_in为1时,输出存储器的数据输出信号,否则为0

endmodul

为以下代码写注释 implements 128KB of on-board RAMmodule ram# parameter ADDR_WIDTH = 17 input wire clk_in system clock input wire en_in chip enable input wire

原文地址: http://www.cveoy.top/t/topic/fhja 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录