📄 multi_sram.v
字号:
module Multi_Sram( // Host Side
oHS_DATA,iHS_DATA,iHS_ADDR,iHS_WE_N,iHS_OE_N,
// Async Side 1
oAS1_DATA,iAS1_DATA,iAS1_ADDR,iAS1_WE_N,iAS1_OE_N,
// Async Side 2
oAS2_DATA,iAS2_DATA,iAS2_ADDR,iAS2_WE_N,iAS2_OE_N,
// Async Side 3
oAS3_DATA,iAS3_DATA,iAS3_ADDR,iAS3_WE_N,iAS3_OE_N,
// Control Signals
iSelect,iRST_n,
// SRAM
SRAM_DQ,
SRAM_ADDR,
SRAM_UB_N,
SRAM_LB_N,
SRAM_WE_N,
SRAM_CE_N,
SRAM_OE_N );
// Host Side
input [17:0] iHS_ADDR;
input [15:0] iHS_DATA;
output [15:0] oHS_DATA;
input iHS_WE_N;
input iHS_OE_N;
// Async Side 1
input [17:0] iAS1_ADDR;
input [15:0] iAS1_DATA;
output [15:0] oAS1_DATA;
input iAS1_WE_N;
input iAS1_OE_N;
// Async Side 2
input [17:0] iAS2_ADDR;
input [15:0] iAS2_DATA;
output [15:0] oAS2_DATA;
input iAS2_WE_N;
input iAS2_OE_N;
// Async Side 3
input [17:0] iAS3_ADDR;
input [15:0] iAS3_DATA;
output [15:0] oAS3_DATA;
input iAS3_WE_N;
input iAS3_OE_N;
// Control Signals
input [1:0] iSelect;
input iRST_n;
// SRAM Side
inout [15:0] SRAM_DQ;
output [17:0] SRAM_ADDR;
output SRAM_UB_N,
SRAM_LB_N,
SRAM_WE_N,
SRAM_CE_N,
SRAM_OE_N;
assign SRAM_DQ = SRAM_WE_N ? 16'hzzzz :
(iSelect==0) ? iHS_DATA :
(iSelect==1) ? iAS1_DATA :
(iSelect==2) ? iAS2_DATA :
iAS3_DATA ;
assign oHS_DATA = (iSelect==0) ? SRAM_DQ : 16'h0000 ;
assign oAS1_DATA = (iSelect==1) ? SRAM_DQ : 16'h0000 ;
assign oAS2_DATA = (iSelect==2) ? SRAM_DQ : 16'h0000 ;
assign oAS3_DATA = (iSelect==3) ? SRAM_DQ : 16'h0000 ;
assign SRAM_ADDR = (iSelect==0) ? iHS_ADDR :
(iSelect==1) ? iAS1_ADDR :
(iSelect==2) ? iAS2_ADDR :
iAS3_ADDR ;
assign SRAM_WE_N = (iSelect==0) ? iHS_WE_N :
(iSelect==1) ? iAS1_WE_N :
(iSelect==2) ? iAS2_WE_N :
iAS3_WE_N ;
assign SRAM_OE_N = (iSelect==0) ? iHS_OE_N :
(iSelect==1) ? iAS1_OE_N :
(iSelect==2) ? iAS2_OE_N :
iAS3_OE_N ;
assign SRAM_CE_N = 1'b0;
assign SRAM_UB_N = 1'b0;
assign SRAM_LB_N = 1'b0;
endmodule
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -