initial commit

This commit is contained in:
2026-04-12 22:20:18 +08:00
commit 190c2edbb2
155 changed files with 36314 additions and 0 deletions

52
sim/sram.v Normal file
View File

@@ -0,0 +1,52 @@
`timescale 1ns/100ps
module sram_sp #(
parameter AW = 16,
parameter Init_File = "none"
)
(
inout [31:0] ram_data, //BaseRAM数据低8位与CPLD串口控制器共享
input [19:0] ram_addr, //BaseRAM地址
input [ 3:0] ram_be_n, //BaseRAM字节使能低有效如果不使用字节使能请保持为0
input ram_ce_n, //BaseRAM片选低有效
input ram_oe_n, //BaseRAM读使能低有效
input ram_we_n //BaseRAM写使能低有效
);
localparam AWT = ((1<<(AW-0))-1);
reg [31:0] BRAM [AWT:0];
initial begin
if(Init_File != "none") begin
$readmemb(Init_File,BRAM);
end
end
reg [AW-1:0] addr_q1;
wire [3:0] write_enable;
assign write_enable[3:0] = (~ram_be_n) & {4{(~ram_ce_n) & (~ram_we_n)}};
always@(posedge write_enable[0]) begin
#10;
if(~ram_be_n[0]) BRAM[ram_addr][7:0] <= ram_data[7:0];
end
always@(posedge write_enable[1]) begin
#10;
if(~ram_be_n[1]) BRAM[ram_addr][15:8] <= ram_data[15:8];
end
always@(posedge write_enable[2]) begin
#10;
if(~ram_be_n[2]) BRAM[ram_addr][23:16] <= ram_data[23:16];
end
always@(posedge write_enable[3]) begin
#10;
if(~ram_be_n[3]) BRAM[ram_addr][31:24] <= ram_data[31:24];
end
wire [31:0] RDATA = BRAM[ram_addr];
assign ram_data = ((~ram_ce_n) & (~ram_oe_n)) ? RDATA : 32'hzzzzzzzz;
endmodule