Skip to content

Commit 955015c

Browse files
committed
wip: sdram playground
1 parent 2e1b6bc commit 955015c

2 files changed

Lines changed: 38 additions & 30 deletions

File tree

projects/sdram_playground/pll.v

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,18 +5,17 @@
55
module pll
66
(
77
input clkin, // 25 MHz, 0 deg
8-
output clkout0, // 50 MHz, 0 deg
9-
output clkout1, // 25 MHz, 0 deg
10-
output clkout2, // 100 MHz, 0 deg
11-
output clkout3, // 100 MHz, 180 deg
12-
output locked,
13-
output reset
8+
output clkout0, // 200 MHz, 0 deg
9+
output clkout1, // 200 MHz, 0 deg
10+
output clkout2, // 200 MHz, 0 deg
11+
output clkout3, // 200 MHz, 180 deg
12+
output locked
1413
);
1514
(* FREQUENCY_PIN_CLKI="25" *)
16-
(* FREQUENCY_PIN_CLKOP="50" *)
17-
(* FREQUENCY_PIN_CLKOS="25" *)
18-
(* FREQUENCY_PIN_CLKOS2="100" *)
19-
(* FREQUENCY_PIN_CLKOS3="100" *)
15+
(* FREQUENCY_PIN_CLKOP="200" *)
16+
(* FREQUENCY_PIN_CLKOS="200" *)
17+
(* FREQUENCY_PIN_CLKOS2="200" *)
18+
(* FREQUENCY_PIN_CLKOS3="200" *)
2019
(* ICP_CURRENT="12" *) (* LPF_RESISTOR="8" *) (* MFG_ENABLE_FILTEROPAMP="1" *) (* MFG_GMCREF_SEL="2" *)
2120
EHXPLLL #(
2221
.PLLRST_ENA("DISABLED"),
@@ -29,23 +28,23 @@ EHXPLLL #(
2928
.OUTDIVIDER_MUXD("DIVD"),
3029
.CLKI_DIV(1),
3130
.CLKOP_ENABLE("ENABLED"),
32-
.CLKOP_DIV(12),
33-
.CLKOP_CPHASE(5),
31+
.CLKOP_DIV(3),
32+
.CLKOP_CPHASE(1),
3433
.CLKOP_FPHASE(0),
3534
.CLKOS_ENABLE("ENABLED"),
36-
.CLKOS_DIV(24),
37-
.CLKOS_CPHASE(5),
35+
.CLKOS_DIV(3),
36+
.CLKOS_CPHASE(1),
3837
.CLKOS_FPHASE(0),
3938
.CLKOS2_ENABLE("ENABLED"),
40-
.CLKOS2_DIV(6),
41-
.CLKOS2_CPHASE(5),
39+
.CLKOS2_DIV(3),
40+
.CLKOS2_CPHASE(1),
4241
.CLKOS2_FPHASE(0),
4342
.CLKOS3_ENABLE("ENABLED"),
44-
.CLKOS3_DIV(6),
45-
.CLKOS3_CPHASE(8),
46-
.CLKOS3_FPHASE(0),
43+
.CLKOS3_DIV(3),
44+
.CLKOS3_CPHASE(2),
45+
.CLKOS3_FPHASE(4),
4746
.FEEDBK_PATH("CLKOP"),
48-
.CLKFB_DIV(2)
47+
.CLKFB_DIV(8)
4948
) pll_i (
5049
.RST(1'b0),
5150
.STDBY(1'b0),
@@ -65,7 +64,4 @@ EHXPLLL #(
6564
.ENCLKOP(1'b0),
6665
.LOCK(locked)
6766
);
68-
69-
assign reset = ~locked;
70-
7167
endmodule

projects/sdram_playground/sdram_ctrl_test.si

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -101,9 +101,9 @@ $$end
101101

102102
$$if not ICARUS then
103103
uint1 rst(1);
104-
//clean_reset rstcond<@sdram_clock,!reset> (
105-
// out :> rst
106-
//);
104+
clean_reset rstcond<@sdram_clock,!reset> (
105+
out :> rst
106+
);
107107
$$else
108108
uint1 sdram_clock(0);
109109
$$end
@@ -160,7 +160,7 @@ $$if ULX3S then
160160
clkout2 :> sdram_clock, // controller
161161
clkout3 :> sdram_clk, // chip
162162
locked :> pll_lock,
163-
reset :> rst
163+
// reset :> rst
164164
);
165165
$$end
166166
$$if DE10NANO then
@@ -314,18 +314,30 @@ $$bwidth = 4+2+13+2+16+1
314314
$bwidth$b$CMD_WRITE .. Bank0 .. AddrB_col .. '10' .. '1010101010101010' .. '1'$,
315315
$bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_8 .. '00' .. DataZ .. '0'$,
316316
// ^ 6
317-
// read
317+
// row-copy?
318+
// -> activate A
318319
$bwidth$b$CMD_PRECHARGE .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
319320
$bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
320321
$bwidth$b$CMD_ACTIVATE .. Bank0 .. AddrA_row .. '00' .. DataZ .. '0'$,
322+
$bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_8 .. '00' .. DataZ .. '0'$,
323+
// -> illegally activate B
324+
$bwidth$b$CMD_PRECHARGE .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
325+
// $bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
326+
$bwidth$b$CMD_ACTIVATE .. Bank0 .. AddrB_row .. '00' .. DataZ .. '0'$,
327+
$bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_8 .. '00' .. DataZ .. '0'$,
328+
// ^ 7
329+
// read
330+
$bwidth$b$CMD_PRECHARGE .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
331+
$bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
332+
$bwidth$b$CMD_ACTIVATE .. Bank0 .. AddrB_row .. '00' .. DataZ .. '0'$,
321333
$bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_2 .. '00' .. DataZ .. '0'$,
322-
$bwidth$b$CMD_READ .. Bank0 .. AddrA_col .. '00' .. DataZ .. '0'$,
334+
$bwidth$b$CMD_READ .. Bank0 .. AddrB_col .. '00' .. DataZ .. '0'$,
323335
$bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_R .. '00' .. DataZ .. '0'$,
324336
$bwidth$b$CMD_dummy_GET .. Bank0 .. AddrZ .. '00' .. DataZ .. '0'$,
325337
$bwidth$b$CMD_dummy_WAIT .. Bank0 .. Addr_wait_16 .. '00' .. DataZ .. '0'$,
326338
// ^ 8
327339
};
328-
$$n_instr = 7+6+6+8
340+
$$n_instr = 7+6+6+8+7 -- +1
329341

330342
always_before {
331343
sdram_cle = 1;

0 commit comments

Comments
 (0)