📄 dsocm_bram_elaborate.v
字号:
////////////////////////////////////////////////////////////////////////////////
// dsocm_bram_elaborate.v
////////////////////////////////////////////////////////////////////////////////
module dsocm_bram_elaborate
(
// instance GLOBAL
BRAM_Addr_B,
BRAM_EN_A,
BRAM_Dout_A,
BRAM_EN_B,
BRAM_Dout_B,
BRAM_Din_A,
BRAM_Din_B,
BRAM_WEN_A,
BRAM_Clk_A,
BRAM_WEN_B,
BRAM_Clk_B,
BRAM_Rst_A,
BRAM_Rst_B,
BRAM_Addr_A);
// instance GLOBAL
input [0:31] BRAM_Addr_B;
input BRAM_EN_A;
input [0:31] BRAM_Dout_A;
input BRAM_EN_B;
input [0:31] BRAM_Dout_B;
output [0:31] BRAM_Din_A;
output [0:31] BRAM_Din_B;
input [0:3] BRAM_WEN_A;
input BRAM_Clk_A;
input [0:3] BRAM_WEN_B;
input BRAM_Clk_B;
input BRAM_Rst_A;
input BRAM_Rst_B;
input [0:31] BRAM_Addr_A;
parameter C_MEMSIZE = 8192;
parameter C_PORT_DWIDTH = 32;
parameter C_PORT_AWIDTH = 32;
parameter C_NUM_WE = 4;
parameter C_FAMILY = "virtex2p";
////////////////////////////////////////////////////////////////////////////////
// internal signals
////////////////////////////////////////////////////////////////////////////////
wire [31:0] dina;
wire [31:0] dinb;
wire [31:0] douta;
wire [31:0] doutb;
wire net_gnd0;
wire [0:0] net_gnd1;
////////////////////////////////////////////////////////////////////////////////
// Power assignments
assign net_gnd0 = 1'b0;
assign net_gnd1 = 1'b0;
////////////////////////////////////////////////////////////////////////////////
// Constant assignments
////////////////////////////////////////////////////////////////////////////////
// Top-level port assignments
assign dina = BRAM_Dout_A;
assign dinb = BRAM_Dout_B;
assign BRAM_Din_A = douta;
assign BRAM_Din_B = doutb;
////////////////////////////////////////////////////////////////////////////////
// Lower-level assignments
////////////////////////////////////////////////////////////////////////////////
RAMB16_S9_S9 ramb16_s9_s9_0
(
.DIA (dina[31:24]),
.DIB (dinb[31:24]),
.DOPA (),
.DOPB (),
.CLKA (BRAM_Clk_A),
.CLKB (BRAM_Clk_B),
.ADDRA (BRAM_Addr_A[19:29]),
.ADDRB (BRAM_Addr_B[19:29]),
.DOA (douta[31:24]),
.DOB (doutb[31:24]),
.ENA (BRAM_EN_A),
.SSRA (net_gnd0),
.ENB (BRAM_EN_B),
.DIPA (net_gnd1),
.SSRB (net_gnd0),
.DIPB (net_gnd1),
.WEA (BRAM_WEN_A[0]),
.WEB (BRAM_WEN_B[0]));
////////////////////////////////////////////////////////////////////////////////
RAMB16_S9_S9 ramb16_s9_s9_1
(
.DIA (dina[23:16]),
.DIB (dinb[23:16]),
.DOPA (),
.DOPB (),
.CLKA (BRAM_Clk_A),
.CLKB (BRAM_Clk_B),
.ADDRA (BRAM_Addr_A[19:29]),
.ADDRB (BRAM_Addr_B[19:29]),
.DOA (douta[23:16]),
.DOB (doutb[23:16]),
.ENA (BRAM_EN_A),
.SSRA (net_gnd0),
.ENB (BRAM_EN_B),
.DIPA (net_gnd1),
.SSRB (net_gnd0),
.DIPB (net_gnd1),
.WEA (BRAM_WEN_A[1]),
.WEB (BRAM_WEN_B[1]));
////////////////////////////////////////////////////////////////////////////////
RAMB16_S9_S9 ramb16_s9_s9_2
(
.DIA (dina[15:8]),
.DIB (dinb[15:8]),
.DOPA (),
.DOPB (),
.CLKA (BRAM_Clk_A),
.CLKB (BRAM_Clk_B),
.ADDRA (BRAM_Addr_A[19:29]),
.ADDRB (BRAM_Addr_B[19:29]),
.DOA (douta[15:8]),
.DOB (doutb[15:8]),
.ENA (BRAM_EN_A),
.SSRA (net_gnd0),
.ENB (BRAM_EN_B),
.DIPA (net_gnd1),
.SSRB (net_gnd0),
.DIPB (net_gnd1),
.WEA (BRAM_WEN_A[2]),
.WEB (BRAM_WEN_B[2]));
////////////////////////////////////////////////////////////////////////////////
RAMB16_S9_S9 ramb16_s9_s9_3
(
.DIA (dina[7:0]),
.DIB (dinb[7:0]),
.DOPA (),
.DOPB (),
.CLKA (BRAM_Clk_A),
.CLKB (BRAM_Clk_B),
.ADDRA (BRAM_Addr_A[19:29]),
.ADDRB (BRAM_Addr_B[19:29]),
.DOA (douta[7:0]),
.DOB (doutb[7:0]),
.ENA (BRAM_EN_A),
.SSRA (net_gnd0),
.ENB (BRAM_EN_B),
.DIPA (net_gnd1),
.SSRB (net_gnd0),
.DIPB (net_gnd1),
.WEA (BRAM_WEN_A[3]),
.WEB (BRAM_WEN_B[3]));
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -