@@ -100,10 +100,10 @@ $$end
100100{
101101
102102$$if not ICARUS then
103- uint1 rst = uninitialized ;
104- clean_reset rstcond<@sdram_clock,!reset> (
105- out :> rst
106- );
103+ uint1 rst(1) ;
104+ // clean_reset rstcond<@sdram_clock,!reset> (
105+ // out :> rst
106+ // );
107107$$else
108108uint1 sdram_clock(0);
109109$$end
@@ -159,7 +159,8 @@ $$if ULX3S then
159159 clkout1 :> video_clock,
160160 clkout2 :> sdram_clock, // controller
161161 clkout3 :> sdram_clk, // chip
162- locked :> pll_lock
162+ locked :> pll_lock,
163+ reset :> rst
163164 );
164165$$end
165166$$if DE10NANO then
@@ -241,9 +242,9 @@ $$end
241242 uint2 reg_sdram_dqm (0);
242243 uint2 reg_sdram_ba (0);
243244 uint13 reg_sdram_a (0);
244- uint16 reg_dq_o (0) ;
245+ uint16 reg_dq_o = 0 ;
245246 uint3 tmp_dq_en (0);
246- uint1 reg_dq_en (0) ;
247+ uint1 reg_dq_en = 0 ;
247248
248249 // SDRAM commands
249250$$CMD_dummy_WAIT_init = '1111'
@@ -261,8 +262,8 @@ $$CMD_LOAD_MODE_REG = '0000'
261262$$AddrZ = '0000000000000'
262263$$AddrA_row = '0000000000000'
263264$$AddrA_col = '0000000000000'
264- $$AddrB_row = '0000000000010 '
265- $$AddrB_col = '0000000000000 '
265+ $$AddrB_row = '0000000000000 '
266+ $$AddrB_col = '0000000001000 '
266267$$Addr_wait_init = '1111111111111'
267268$$Addr_wait_2 = '0000000000000' -- value are delay - 1 since using cnt sign bit to stop
268269$$Addr_wait_3 = '0000000000001' -- value are delay - 1 since using cnt sign bit to stop
@@ -273,7 +274,7 @@ $$Addr_wait_7 = '0000000000101'
273274$$Addr_wait_8 = '0000000000110'
274275$$Addr_wait_16 = '0000000001110'
275276$$Addr_precharge_all = '0010000000000'
276- $$Addr_mode_reg = '0001000110001 '
277+ $$Addr_mode_reg = '0001000110011 '
277278$$Bank0 = '00'
278279$$Bank1 = '01'
279280$$Bank2 = '10'
@@ -284,7 +285,7 @@ $$DataZ = '0000000000000000'
284285$$if ICARUS then
285286$$ Addr_wait_R = Addr_wait_4
286287$$else
287- $$ Addr_wait_R = Addr_wait_3
288+ $$ Addr_wait_R = Addr_wait_5
288289$$end
289290$$bwidth = 4+2+13+2+16+1
290291 // CMD BANK ADDR DQM DATA DQEN
@@ -298,36 +299,36 @@ $$bwidth = 4+2+13+2+16+1
298299// $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
299300 // ^ 5
300301 // write in rowA
301- $bwidth$b$CMD_PRECHARGE .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
302- $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
302+ // $bwidth$b$CMD_PRECHARGE .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
303+ // $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
303304 $bwidth$b$CMD_ACTIVATE .. Bank0 .. AddrA_row .. '00' .. DataZ .. '0'$,
304305 $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_2 .. '00' .. DataZ .. '0'$,
305- $bwidth$b$CMD_WRITE .. Bank0 .. AddrA_col .. '00 ' .. '1010101010101010 ' .. '1'$,
306+ $bwidth$b$CMD_WRITE .. Bank0 .. AddrA_col .. '10 ' .. '0101010101010101 ' .. '1'$,
306307 $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_8 .. '00' .. DataZ .. '0'$,
307- // ^ 6
308+ // ^ 4
308309 // write in rowB
309- $bwidth$b$CMD_PRECHARGE .. Bank1 .. AddrZ .. '00' .. DataZ .. '0'$,
310- $bwidth$b$CMD_dummy_WAIT .. Bank1 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
311- $bwidth$b$CMD_ACTIVATE .. Bank1 .. AddrB_row .. '00' .. DataZ .. '0'$,
312- $bwidth$b$CMD_dummy_WAIT .. Bank1 .. Addr_wait_2 .. '00' .. DataZ .. '0'$,
313- $bwidth$b$CMD_WRITE .. Bank1 .. AddrB_col .. '00 ' .. '1111111101110111 ' .. '1'$,
314- $bwidth$b$CMD_dummy_WAIT .. Bank1 .. Addr_wait_8 .. '00' .. DataZ .. '0'$,
310+ // $bwidth$b$CMD_PRECHARGE .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
311+ // $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
312+ // $bwidth$b$CMD_ACTIVATE .. Bank0 .. AddrB_row .. '00' .. DataZ .. '0'$,
313+ // $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_2 .. '00' .. DataZ .. '0'$,
314+ $bwidth$b$CMD_WRITE .. Bank0 .. AddrB_col .. '10 ' .. '1010101010101010 ' .. '1'$,
315+ $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_8 .. '00' .. DataZ .. '0'$,
315316 // ^ 2
316317 // read
317- $bwidth$b$CMD_PRECHARGE .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
318- $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
319- $bwidth$b$CMD_ACTIVATE .. Bank0 .. AddrA_row .. '00' .. DataZ .. '0'$,
320- $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_2 .. '00' .. DataZ .. '0'$,
318+ // $bwidth$b$CMD_PRECHARGE .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
319+ // $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
320+ // $bwidth$b$CMD_ACTIVATE .. Bank0 .. AddrA_row .. '00' .. DataZ .. '0'$,
321+ // $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_2 .. '00' .. DataZ .. '0'$,
321322 $bwidth$b$CMD_READ .. Bank0 .. AddrA_col .. '00' .. DataZ .. '0'$,
322323 $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_R .. '00' .. DataZ .. '0'$,
323324 $bwidth$b$CMD_dummy_GET .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
324325 $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
325- // ^ 8
326+ // ^ 4
326327 };
327- $$n_instr = 5+6+6+8
328+ $$n_instr = 5+4+2+4
328329
329330 always_before {
330- sdram_cle = ~reset ;
331+ sdram_cle = 1 ;
331332$$if not ULX3S_IO then
332333 sdram_cs = reg_sdram_cs;
333334 sdram_cas = reg_sdram_cas;
0 commit comments