Abstract
一直有人反應無法在DE2-70使用SSRAM,主要是top module接法的錯誤,本文提出解決方法。
Introduction
使用環境:Quartus II 8.1 + Nios II 8.1 EDS + DE2-70 (Cyclone II EP2C70F896C6N)
在帶助教時,就有同學提出無法在DE2-70使用SSRAM的問題,無論是將軟體跑在SSRAM,或是在SSRAM建立一個變數或array都不行,lishyhan學長也曾問我這個問題。
在DE2-70 CD的範例中,DE2_70_NET、DE2_70_NIOS_DEVICE_LED、DE2_70_NIOS_HOST_MOUSE_VGA的top module,SSRAM的接法皆為
.address_to_the_ssram({oSRAM_A[ 17 : 0 ],SRAM_DUMMY_ADDR}),
.adsc_n_to_the_ssram(oSRAM_ADSC_N),
.bw_n_to_the_ssram(oSRAM_BE_N),
.bwe_n_to_the_ssram(oSRAM_WE_N),
.chipenable1_n_to_the_ssram(oSRAM_CE1_N),
.data_to_and_from_the_ssram((SRAM_DQ)),
.outputenable_n_to_the_ssram(oSRAM_OE_N),
所以在(原創) 如何以32 bit的方式存取SDRAM? (SOC) (Nios II) (SOPC Builder) (DE2-70)這一篇中,我也是依照DE2-70 CD的範例連接SSRAM,core_duo提出了SRAM_A[17..0]和原理图上[18..0]19根地址不符的疑問,若軟體很小,如Hello World,這種寫法仍可正常執行,但若大一點的軟體,如DE2_70_SD_Card_Audio_Player,就會發現無法跑在SSRAM。
正確應該改成如下的寫法,就可完全正常使用SSRAM了。
.address_to_the_ssram({oSRAM_A[ 18 : 0 ],sram_dummy_addr}), // sram address bus 21 bits
.adsc_n_to_the_ssram(oSRAM_ADSC_N), // sram controller address status
.bw_n_to_the_ssram(oSRAM_BE_N), // sram byte write enable
.bwe_n_to_the_ssram(oSRAM_WE_N), // sram write enable
.chipenable1_n_to_the_ssram(oSRAM_CE1_N), // sram chip enable
.data_to_and_from_the_ssram((SRAM_DQ)), // sram data bus 32 bits
.outputenable_n_to_the_ssram(oSRAM_OE_N), // sram output enable
完整的top module如下所示。
DE2_70_NIOS.v / Verilog
2 (C) OOMusou 2009 http://oomusou.cnblogs.com
3
4 Filename : DE2_70_NIOS.v
5 Compiler : Quartus II 8.1 + Nios II 8.1
6 Description : DE2_70_NIOS reference design 1.4
7 Release : 02/14/2009 1.0
8 */
9
10 module DE2_70_NIOS (
11 input iCLK_28, // 28.63636 MHz
12 input iCLK_50, // 50 MHz
13 input iCLK_50_2, // 50 MHz
14 input iCLK_50_3, // 50 MHz
15 input iCLK_50_4, // 50 MHz
16 input iEXT_CLOCK, // External Clock
17 // Push Button
18 input [ 3 : 0 ] iKEY, // Pushbutton[3:0]
19 // DPDT Switch
20 input [ 17 : 0 ] iSW, // Toggle Switch[17:0]
21 // 7-SEG Dispaly
22 output [ 6 : 0 ] oHEX0_D, // Seven Segment Digit 0
23 output oHEX0_DP, // Seven Segment Digit 0 decimal point
24 output [ 6 : 0 ] oHEX1_D, // Seven Segment Digit 1
25 output oHEX1_DP, // Seven Segment Digit 1 decimal point
26 output [ 6 : 0 ] oHEX2_D, // Seven Segment Digit 2
27 output oHEX2_DP, // Seven Segment Digit 2 decimal point
28 output [ 6 : 0 ] oHEX3_D, // Seven Segment Digit 3
29 output oHEX3_DP, // Seven Segment Digit 3 decimal point
30 output [ 6 : 0 ] oHEX4_D, // Seven Segment Digit 4
31 output oHEX4_DP, // Seven Segment Digit 4 decimal point
32 output [ 6 : 0 ] oHEX5_D, // Seven Segment Digit 5
33 output oHEX5_DP, // Seven Segment Digit 5 decimal point
34 output [ 6 : 0 ] oHEX6_D, // Seven Segment Digit 6
35 output oHEX6_DP, // Seven Segment Digit 6 decimal point
36 output [ 6 : 0 ] oHEX7_D, // Seven Segment Digit 7
37 output oHEX7_DP, // Seven Segment Digit 7 decimal point
38 // // LED /// /
39 output [ 8 : 0 ] oLEDG, // LED Green[8:0]
40 output [ 17 : 0 ] oLEDR, // LED Red[17:0]
41 // // UART /// /
42 output oUART_TXD, // UART Transmitter
43 input iUART_RXD, // UART Receiver
44 output oUART_CTS, // UART Clear To Send
45 input iUART_RTS, // UART Requst To Send
46 // // IRDA /// /
47 output oIRDA_TXD, // IRDA Transmitter
48 input iIRDA_RXD, // IRDA Receiver
49 // // SDRAM Interface
50 inout [ 31 : 0 ] DRAM_DQ, // SDRAM Data bus 32 Bits
51 output [ 12 : 0 ] oDRAM0_A, // SDRAM0 Address bus 12 Bits
52 output [ 12 : 0 ] oDRAM1_A, // SDRAM1 Address bus 12 Bits
53 output oDRAM0_LDQM0, // SDRAM0 Low-byte Data Mask
54 output oDRAM1_LDQM0, // SDRAM1 Low-byte Data Mask
55 output oDRAM0_UDQM1, // SDRAM0 High-byte Data Mask
56 output oDRAM1_UDQM1, // SDRAM1 High-byte Data Mask
57 output oDRAM0_WE_N, // SDRAM0 Write Enable
58 output oDRAM1_WE_N, // SDRAM1 Write Enable
59 output oDRAM0_CAS_N, // SDRAM0 Column Address Strobe
60 output oDRAM1_CAS_N, // SDRAM1 Column Address Strobe
61 output oDRAM0_RAS_N, // SDRAM0 Row Address Strobe
62 output oDRAM1_RAS_N, // SDRAM1 Row Address Strobe
63 output oDRAM0_CS_N, // SDRAM0 Chip Select
64 output oDRAM1_CS_N, // SDRAM1 Chip Select
65 output [ 1 : 0 ] oDRAM0_BA, // SDRAM0 Bank Address
66 output [ 1 : 0 ] oDRAM1_BA, // SDRAM1 Bank Address
67 output oDRAM0_CLK, // SDRAM0 Clock
68 output oDRAM1_CLK, // SDRAM0 Clock
69 output oDRAM0_CKE, // SDRAM0 Clock Enable
70 output oDRAM1_CKE, // SDRAM1 Clock Enable
71 // // Flash Interface
72 inout [ 14 : 0 ] FLASH_DQ, // FLASH Data bus 15 Bits (0 to 14)
73 inout FLASH_DQ15_AM1, // FLASH Data bus Bit 15 or Address A-1
74 output [ 25 : 0 ] oFLASH_A, // FLASH Address bus 26 Bits
75 output oFLASH_WE_N, // FLASH Write Enable
76 output oFLASH_RST_N, // FLASH Reset
77 output oFLASH_WP_N, // FLASH Write Protect /Programming Acceleration
78 input iFLASH_RY_N, // FLASH Ready/Busy output
79 output oFLASH_BYTE_N, // FLASH Byte/Word Mode Configuration
80 output oFLASH_OE_N, // FLASH Output Enable
81 output oFLASH_CE_N, // FLASH Chip Enable
82 // // SRAM Interface
83 inout [ 31 : 0 ] SRAM_DQ, // SRAM Data Bus 32 Bits
84 inout [ 3 : 0 ] SRAM_DPA, // SRAM Parity Data Bus
85 output [ 20 : 0 ] oSRAM_A, // SRAM Address bus 21 Bits
86 output oSRAM_ADSC_N, // RAM Controller Address Status
87 output oSRAM_ADSP_N, // SRAM Processor Address Status
88 output oSRAM_ADV_N, // SRAM Burst Address Advance
89 output [ 3 : 0 ] oSRAM_BE_N, // SRAM Byte Write Enable
90 output oSRAM_CE1_N, // SRAM Chip Enable
91 output oSRAM_CE2, // SRAM Chip Enable
92 output oSRAM_CE3_N, // SRAM Chip Enable
93 output oSRAM_CLK, // SRAM Clock
94 output oSRAM_GW_N, // SRAM Global Write Enable
95 output oSRAM_OE_N, // SRAM Output Enable
96 output oSRAM_WE_N, // SRAM Write Enable
97 // // ISP1362 Interface
98 inout [ 15 : 0 ] OTG_D, // ISP1362 Data bus 16 Bits
99 output [ 1 : 0 ] oOTG_A, // ISP1362 Address 2 Bits
100 output oOTG_CS_N, // ISP1362 Chip Select
101 output oOTG_OE_N, // ISP1362 Read
102 output oOTG_WE_N, // ISP1362 Write
103 output oOTG_RESET_N, // ISP1362 Reset
104 inout OTG_FSPEED, // USB Full Speed, 0 = Enable, Z = Disable
105 inout OTG_LSPEED, // USB Low Speed, 0 = Enable, Z = Disable
106 input iOTG_INT0, // ISP1362 Interrupt 0
107 input iOTG_INT1, // ISP1362 Interrupt 1
108 input iOTG_DREQ0, // ISP1362 DMA Request 0
109 input iOTG_DREQ1, // ISP1362 DMA Request 1
110 output oOTG_DACK0_N, // ISP1362 DMA Acknowledge 0
111 output oOTG_DACK1_N, // ISP1362 DMA Acknowledge 1
112 // // LCD Module 16X2 /// /
113 inout [ 7 : 0 ] LCD_D, // LCD Data bus 8 bits
114 output oLCD_ON, // LCD Power ON/OFF
115 output oLCD_BLON, // LCD Back Light ON/OFF
116 output oLCD_RW, // LCD Read/Write Select, 0 = Write, 1 = Read
117 output oLCD_EN, // LCD Enable
118 output oLCD_RS, // LCD Command/Data Select, 0 = Command, 1 = Data
119 // // SD Card Interface
120 inout SD_DAT, // SD Card Data
121 inout SD_DAT3, // SD Card Data 3
122 inout SD_CMD, // SD Card Command Signal
123 output oSD_CLK, // SD Card Clock
124 // // I2C // //
125 inout I2C_SDAT, // I2C Data
126 output oI2C_SCLK, // I2C Clock
127 // // PS2 /// /
128 inout PS2_KBDAT, // PS2 Keyboard Data
129 inout PS2_KBCLK, // PS2 Keyboard Clock
130 inout PS2_MSDAT, // PS2 Mouse Data
131 inout PS2_MSCLK, // PS2 Mouse Clock
132 // // VGA /// /
133 output oVGA_CLOCK, // VGA Clock
134 output oVGA_HS, // VGA H_SYNC
135 output oVGA_VS, // VGA V_SYNC
136 output oVGA_BLANK_N, // VGA BLANK
137 output oVGA_SYNC_N, // VGA SYNC
138 output [ 9 : 0 ] oVGA_R, // VGA Red[9:0]
139 output [ 9 : 0 ] oVGA_G, // VGA Green[9:0]
140 output [ 9 : 0 ] oVGA_B, // VGA Blue[9:0]
141 // // Ethernet Interface /// /
142 inout [ 15 : 0 ] ENET_D, // DM9000A DATA bus 16Bits
143 output oENET_CMD, // DM9000A Command/Data Select, 0 = Command, 1 = Data
144 output oENET_CS_N, // DM9000A Chip Select
145 output oENET_IOW_N, // DM9000A Write
146 output oENET_IOR_N, // DM9000A Read
147 output oENET_RESET_N, // DM9000A Reset
148 input iENET_INT, // DM9000A Interrupt
149 output oENET_CLK, // DM9000A Clock 25 MHz
150 // // Audio CODEC /// /
151 inout AUD_ADCLRCK, // Audio CODEC ADC LR Clock
152 input iAUD_ADCDAT, // Audio CODEC ADC Data
153 inout AUD_DACLRCK, // Audio CODEC DAC LR Clock
154 output oAUD_DACDAT, // Audio CODEC DAC Data
155 inout AUD_BCLK, // Audio CODEC Bit-Stream Clock
156 output oAUD_XCK, // Audio CODEC Chip Clock
157 // // TV Devoder /// /
158 input iTD1_CLK27, // TV Decoder1 Line_Lock Output Clock
159 input [ 7 : 0 ] iTD1_D, // TV Decoder1 Data bus 8 bits
160 input iTD1_HS, // TV Decoder1 H_SYNC
161 input iTD1_VS, // TV Decoder1 V_SYNC
162 output oTD1_RESET_N, // TV Decoder1 Reset
163 input iTD2_CLK27, // TV Decoder2 Line_Lock Output Clock
164 input [ 7 : 0 ] iTD2_D, // TV Decoder2 Data bus 8 bits
165 input iTD2_HS, // TV Decoder2 H_SYNC
166 input iTD2_VS, // TV Decoder2 V_SYNC
167 output oTD2_RESET_N, // TV Decoder2 Reset
168 // // GPIO // //
169 inout [ 31 : 0 ] GPIO_0, // GPIO Connection 0 I/O
170 input GPIO_CLKIN_N0, // GPIO Connection 0 Clock Input 0
171 input GPIO_CLKIN_P0, // GPIO Connection 0 Clock Input 1
172 output GPIO_CLKOUT_N0, // GPIO Connection 0 Clock Output 0
173 output GPIO_CLKOUT_P0, // GPIO Connection 0 Clock Output 1
174 inout [ 31 : 0 ] GPIO_1, // GPIO Connection 1 I/O
175 input GPIO_CLKIN_N1, // GPIO Connection 1 Clock Input 0
176 input GPIO_CLKIN_P1, // GPIO Connection 1 Clock Input 1
177 output GPIO_CLKOUT_N1, // GPIO Connection 1 Clock Output 0
178 output GPIO_CLKOUT_P1 // PIO Connection 1 Clock Output 1
179 );
180
181 // All inout port turn to tri-state
182 assign SD_DAT = 1 ' bz;
183 assign GPIO_0 = 32 ' hzzzzzzzzz;
184 assign GPIO_1 = 32 ' hzzzzzzzzz;
185 assign AUD_ADCLRCK = 1 ' bz;
186
187 // Turn On TV Decoder
188 assign oTD1_RESET_N = 1 ' bz;
189 assign oTD2_RESET_N = 1 ' bz;
190
191 // Flash
192 assign FL_RST_N = 1 ' b1;
193
194 // 16*2 LCD Module
195 assign oLCD_ON = 1 ' b1; // LCD ON
196 assign oLCD_BLON = 1 ' b1; // LCD Back Light
197
198 // Disable USB speed select
199 assign OTG_FSPEED = 1 ' bz;
200 assign OTG_LSPEED = 1 ' bz;
201
202 // FLASH
203 wire FLASH_16BIT_IP_A0;
204 assign oFLASH_BYTE_N = 1 ' b1; // FLASH Byte/Word Mode Configuration
205 assign oFLASH_RST_N = 1 ' b1; // FLASH Reset
206 assign oFLASH_WP_N = 1 ' b1; // FLASH Write Protect /Programming Acceleration
207
208 // ssram
209 wire sram_clk; // sram clock
210 wire [ 1 : 0 ] sram_dummy_addr; // used to ignore the a0/a1 pin from cypress ssram ip core
211 wire sram_dummy_addr0; // used to ignore msb of sram address
212
213
214 assign oSRAM_ADSP_N = 1 ' b1; // SRAM Processor Address Status
215 assign oSRAM_ADV_N = 1 ' b1; // SRAM Burst Address Advance
216 assign oSRAM_CE2 = ~ oSRAM_CE1_N; // SRAM Chip Enable
217 assign oSRAM_CE3_N = oSRAM_CE1_N; // SRAM Chip Enable
218 assign oSRAM_GW_N = 1 ' b1; // SRAM Global Write Enable
219 assign oSRAM_CLK = SRAM_CLK;
220
221 // SDRAM
222 // the sdram is shahred with rtl and nios
223 wire [ 12 : 0 ] dram_a;
224 wire [ 1 : 0 ] dram_ba;
225 wire dram_cas_n;
226 wire dram_cke;
227 wire dram_cs_n;
228 wire [ 3 : 0 ] dram_dqm;
229 wire dram_ras_n;
230 wire dram_we_n;
231
232 // dram1
233 assign oDRAM0_CLK = SRAM_CLK; // SDRAM0 Clock
234 assign oDRAM1_CLK = SRAM_CLK; // SDRAM1 Clock
235
236 assign oDRAM0_A = dram_a;
237 assign oDRAM0_BA = dram_ba;
238 assign oDRAM0_CAS_N = dram_cas_n;
239 assign oDRAM0_CKE = dram_cke;
240 assign oDRAM0_CS_N = dram_cs_n;
241 assign oDRAM0_LDQM0 = dram_dqm[ 0 ];
242 assign oDRAM0_UDQM1 = dram_dqm[ 1 ];
243 assign oDRAM0_RAS_N = dram_ras_n;
244 assign oDRAM0_WE_N = dram_we_n;
245
246 // dram2
247 assign oDRAM1_A = dram_a;
248 assign oDRAM1_BA = dram_ba;
249 assign oDRAM1_CAS_N = dram_cas_n;
250 assign oDRAM1_CKE = dram_cke;
251 assign oDRAM1_CS_N = dram_cs_n;
252 assign oDRAM1_LDQM0 = dram_dqm[ 2 ];
253 assign oDRAM1_UDQM1 = dram_dqm[ 3 ];
254 assign oDRAM1_RAS_N = dram_ras_n;
255 assign oDRAM1_WE_N = dram_we_n;
256
257 // USB
258 assign OTG_FSPEED = 1 ' bz; // USB Full Speed, 0 = Enable, Z = Disable
259 assign OTG_LSPEED = 1 ' bz; // USB Low Speed, 0 = Enable, Z = Disable
260
261 // Clock 25MHz
262 reg iCLK_25;
263
264 always @( posedge iCLK_50)
265 iCLK_25 <= ~ iCLK_25;
266
267 // NIOS CPU
268 wire CPU_CLK;
269 wire CPU_RESET_N;
270
271 Reset_Delay delay0 (
272 .iRST(iKEY[ 0 ]),
273 .iCLK(iCLK_50),
274 .oRESET(CPU_RESET_N)
275 );
276
277 // NIOS II system
278 nios_ii nios_ii0 (
279 // 1) global signals:
280 .clk_50(iCLK_50),
281 .pll_c0_system(CPU_CLK),
282 .pll_c1_memory(SRAM_CLK),
283 .pll_c2_audio(oAUD_XCK),
284 .reset_n(CPU_RESET_N),
285 .clk_25(iCLK_25),
286 // the_DM9000A_IF_0
287 .avs_s1_export_ENET_CLK_from_the_DM9000A(oENET_CLK),
288 .avs_s1_export_ENET_CMD_from_the_DM9000A(oENET_CMD),
289 .avs_s1_export_ENET_CS_N_from_the_DM9000A(oENET_CS_N),
290 .avs_s1_export_ENET_DATA_to_and_from_the_DM9000A(ENET_D),
291 .avs_s1_export_ENET_INT_to_the_DM9000A(iENET_INT),
292 .avs_s1_export_ENET_RD_N_from_the_DM9000A(oENET_IOR_N),
293 .avs_s1_export_ENET_RST_N_from_the_DM9000A(oENET_RESET_N),
294 .avs_s1_export_ENET_WR_N_from_the_DM9000A(oENET_IOW_N),
295 // the_ISP1362
296 .avs_hc_export_OTG_ADDR_from_the_ISP1362(oOTG_A),
297 .avs_hc_export_OTG_CS_N_from_the_ISP1362(oOTG_CS_N),
298 .avs_hc_export_OTG_DATA_to_and_from_the_ISP1362(OTG_D),
299 .avs_hc_export_OTG_INT0_to_the_ISP1362(iOTG_INT0),
300 .avs_hc_export_OTG_RD_N_from_the_ISP1362(oOTG_OE_N),
301 .avs_hc_export_OTG_RST_N_from_the_ISP1362(oOTG_RESET_N),
302 .avs_hc_export_OTG_WR_N_from_the_ISP1362(oOTG_WE_N),
303 .avs_dc_export_OTG_INT1_to_the_ISP1362(iOTG_INT1),
304 // the_audio
305 .avs_s1_export_BCLK_to_the_AUDIO(AUD_BCLK),
306 .avs_s1_export_DACLRC_to_the_AUDIO(AUD_DACLRCK),
307 .avs_s1_export_DACDAT_from_the_AUDIO(oAUD_DACDAT),
308 .avs_s1_export_ADCLRC_to_the_AUDIO(AUD_ADCLRCK),
309 .avs_s1_export_ADCDAT_to_the_AUDIO(iAUD_ADCDAT),
310 // the_i2c_sclk
311 .out_port_from_the_i2c_sclk(oI2C_SCLK),
312 // the_i2c_sdat
313 .bidir_port_to_and_from_the_i2c_sdat(I2C_SDAT),
314 // the_lcd
315 .LCD_E_from_the_lcd(oLCD_EN),
316 .LCD_RS_from_the_lcd(oLCD_RS),
317 .LCD_RW_from_the_lcd(oLCD_RW),
318 .LCD_data_to_and_from_the_lcd(LCD_D),
319 // the_pio_button
320 .in_port_to_the_pio_button(iKEY),
321 // the_pio_green_led
322 .out_port_from_the_pio_green_led(oLEDG),
323 // the_pio_red_led
324 .out_port_from_the_pio_red_led(oLEDR),
325 // the_seg7
326 .avs_s1_export_seg7_from_the_SEG7({oHEX7_DP, oHEX7_D, oHEX6_DP, oHEX6_D, oHEX5_DP,
327 oHEX5_D, oHEX4_DP,oHEX4_D, oHEX3_DP, oHEX3_D, oHEX2_DP, oHEX2_D, oHEX1_DP, oHEX1_D,
328 oHEX0_DP, oHEX0_D}),
329 // the_pio_switch
330 .in_port_to_the_pio_switch(iSW),
331 // the_sd_clk
332 .out_port_from_the_sd_clk(oSD_CLK),
333 // the_sd_cmd
334 .bidir_port_to_and_from_the_sd_cmd(SD_CMD),
335 // the_sd_dat
336 .bidir_port_to_and_from_the_sd_dat(SD_DAT),
337 // the_sd_dat3
338 .bidir_port_to_and_from_the_sd_dat3(SD_DAT3),
339 // the_sdram (u1)
340 .zs_addr_from_the_sdram(dram_a),
341 .zs_ba_from_the_sdram(dram_ba),
342 .zs_cas_n_from_the_sdram(dram_cas_n),
343 .zs_cke_from_the_sdram(dram_cke),
344 .zs_cs_n_from_the_sdram(dram_cs_n),
345 .zs_dq_to_and_from_the_sdram(DRAM_DQ),
346 .zs_dqm_from_the_sdram(dram_dqm),
347 .zs_ras_n_from_the_sdram(dram_ras_n),
348 .zs_we_n_from_the_sdram(dram_we_n),
349 // the_tristate_bridge_avalon_slave (flash)
350 .address_to_the_cfi_flash({oFLASH_A[ 21 : 0 ],FLASH_16BIT_IP_A0}),
351 .data_to_and_from_the_cfi_flash({FLASH_DQ15_AM1,FLASH_DQ}),
352 .read_n_to_the_cfi_flash(oFLASH_OE_N),
353 .select_n_to_the_cfi_flash(oFLASH_CE_N),
354 .write_n_to_the_cfi_flash(oFLASH_WE_N),
355 .address_to_the_ssram({oSRAM_A[ 18 : 0 ],sram_dummy_addr}), // sram address bus 21 bits
356 .adsc_n_to_the_ssram(oSRAM_ADSC_N), // sram controller address status
357 .bw_n_to_the_ssram(oSRAM_BE_N), // sram byte write enable
358 .bwe_n_to_the_ssram(oSRAM_WE_N), // sram write enable
359 .chipenable1_n_to_the_ssram(oSRAM_CE1_N), // sram chip enable
360 .data_to_and_from_the_ssram((SRAM_DQ)), // sram data bus 32 bits
361 .outputenable_n_to_the_ssram(oSRAM_OE_N), // sram output enable
362 // the_uart
363 .cts_n_to_the_uart(oUART_CTS),
364 .rts_n_from_the_uart(iUART_RTS),
365 .rxd_to_the_uart(iUART_RXD),
366 .txd_from_the_uart(oUART_TXD),
367 );
368
369 endmodule
完整程式碼下載
DE2_70_NIOS_14_ssram.7z
See Also
(原創) 如何以32 bit的方式存取SDRAM? (SOC) (Nios II) (SOPC Builder) (DE2-70)