Commit Graph

139 Commits

Author SHA1 Message Date
AngeloJacobo e22c2b1c53 fix whitespaces 2026-01-18 12:17:36 +08:00
AngeloJacobo 2226aa4461 Step 7: Resize registers 2026-01-18 12:01:58 +08:00
AngeloJacobo 859963ad20 Step 6: Optimize wb_stall logic 2026-01-18 11:55:31 +08:00
AngeloJacobo 5066c3d280 Step 5: Optimize stage-1 stall and stage-2 stall logic 2026-01-18 11:40:26 +08:00
AngeloJacobo f724ec0d43 Step 4: Arrange logic (stage-2 pre/act/wr-rd logic) 2026-01-18 11:25:47 +08:00
AngeloJacobo fad0a7b19a Step 3: Register conditions in advance (calibration fsm) 2026-01-18 11:19:04 +08:00
AngeloJacobo 282d9596ca Step 2: Register conditions in advance (2-stage pipeline) 2026-01-18 11:06:49 +08:00
AngeloJacobo 98fe547262 Step 1: Separate _q (sequential) from _d (combinational) logic 2026-01-18 10:52:57 +08:00
AngeloJacobo a653bbeb35 revert ddr3_controller to commit a1258e2 (before optimizing) 2026-01-18 10:19:05 +08:00
AngeloJacobo 3c4c4b9f83 optimize stage1/2 stall logic, optimize size of registers (delay_before_*, added_read_pipe*, delay_read_pipe), register huge conditions, explicit removal of unused states) 2025-12-31 14:35:04 +08:00
AngeloJacobo 3d94fae1e6 separated sequential from combinational logic for pipeline stage logic 2025-12-29 14:36:25 +08:00
AngeloJacobo a3ffeb670f register conditions for anticipate logic; change logic order for stage 2 from r/w-act-pre to pre-act-r/w 2025-12-29 10:26:32 +08:00
AngeloJacobo 0b3bb30fae added define for UART-debugging of BIST exclusively 2025-12-27 13:01:19 +08:00
AngeloJacobo 80da754a64 achieve >40% increase in max frequency 2025-12-26 09:50:12 +08:00
AngeloJacobo 864b8069c3 fix read_data_store_lane logic 2025-12-23 10:01:57 +08:00
AngeloJacobo a3edea5e00 add prep state for ANALYZE_DATA to cut timing path due to indexing with lane 2025-12-22 13:11:20 +08:00
AngeloJacobo c605135dd9 make o_wb_stall/o_wb_stall_calib combinational logic 2025-12-22 08:50:40 +08:00
AngeloJacobo fdf1becc03 register stage2 if-else conditions (2.4% increase in max freq) 2025-12-19 17:39:03 +08:00
AngeloJacobo ba640ca59c optimize wb_stall/wb_stall_calib logic (3.7% increase in max freq) 2025-12-14 11:53:04 +08:00
AngeloJacobo 157cca28d8 fixed late_dq logic 2025-05-12 18:27:57 +08:00
AngeloJacobo 90647a70e0 resolved (again) the verilator lint 2025-05-12 16:28:07 +08:00
AngeloJacobo 50c0a6488d verilator now passing lint even with older verilator version 2025-05-11 20:02:13 +08:00
AngeloJacobo b990372663 added support for DLL_OFF and Lattice ECP5 PHY 2025-04-19 13:24:20 +08:00
AngeloJacobo c0bc4ca48a removed extra semicolon 2025-03-02 18:46:07 +08:00
AngeloJacobo 94b4e0866b added UART for debugging, DQ now support 1 cycle late 2025-03-02 14:15:44 +08:00
AngeloJacobo 5c52351bce uncommented default_nettype 2025-03-01 19:32:35 +08:00
AngeloJacobo e19c6023c4 remove wb2 related logic when SECOND_WISHBONE == 0 to pass DDR3-1600 timing 2025-03-01 15:51:48 +08:00
AngeloJacobo 74f68760a4 removed mark_debug 2025-03-01 14:40:21 +08:00
Angelo Jacobo 3898b1e762
Merge branch 'main' into higher_speed_feature 2025-02-22 11:31:54 +08:00
AngeloJacobo d4ecfee105 improve latency of ack after write 2025-02-09 16:16:42 +08:00
AngeloJacobo 7ada4bcbab add support for BIST_MODE = 0,1,and 2 , write data is also randomized 2025-02-09 09:48:46 +08:00
AngeloJacobo c81f9044d8 add activate-to-activate delay, calibrate-able for both late-write-dq and early-read-dq, simulation passing for ddr3-1600! 2025-01-30 19:07:09 +08:00
AngeloJacobo 760979db27 hardware runs on ddr3-1333! Now working on ddr3-1600 2025-01-19 17:15:40 +08:00
AngeloJacobo d8cb6d16d9 update copyright date 2025-01-02 13:18:42 +08:00
AngeloJacobo f636dcbd2e bring all timing parameters to top 2024-12-29 21:22:52 +08:00
AngeloJacobo 3b2ef2afa8 odt[1] generated by separate oserdes to make it routable 2024-12-21 18:24:12 +08:00
AngeloJacobo 7367182640 dual rank enabled is now passing formal and simulation! 2024-12-20 18:56:21 +08:00
AngeloJacobo 4fdaace899 add dual-rank feature (PHY ongoing changes) 2024-12-02 11:28:21 +08:00
AngeloJacobo 05589c3f83 added self-refresh to vivado IP GUI, tested self-refresh on hardware with microblaze 2024-11-24 17:40:21 +08:00
AngeloJacobo e08612658b self-refresh feature done, passing simulation and formal 2024-11-24 14:31:20 +08:00
AngeloJacobo 1078e2ffe0 Revert "add self-refresh option, passing Simulation, ongoing formal"
This reverts commit a5e2adf4a4.
2024-11-23 11:43:05 +08:00
AngeloJacobo a5e2adf4a4 add self-refresh option, passing Simulation, ongoing formal 2024-11-17 20:47:14 +08:00
AngeloJacobo c58a9d70e6 add self-refresh feature (untested) 2024-11-03 14:52:32 +08:00
AngeloJacobo 65bcf2f621 add option to skip internal test for Microblaze use 2024-10-26 09:07:24 +08:00
Angelo Jacobo aa68c22169
turn off ECC test by default 2024-09-01 09:04:45 +08:00
AngeloJacobo fc963c3c23 simulation and formal are now passing for all ECC types 2024-07-28 17:36:37 +08:00
AngeloJacobo f80d4ac21b simulation passing for ECC_ENABLE = 3 2024-07-15 18:31:49 +08:00
AngeloJacobo de85925681 add support for ECC_ENABLE = 3 2024-07-06 21:24:01 +08:00
AngeloJacobo 71b0383cda add support for other memory address mapping (row_bank_col = 0,1, or 2) 2024-07-06 09:01:34 +08:00
AngeloJacobo c81c51c9f4 add support for ECC = 1 and 2, passing simulation and formal verification 2024-06-29 19:36:01 +08:00