Commit Graph

1233 Commits

Author SHA1 Message Date
Florent Kermarrec 256cc1b78b bench/genesys2: add optional BIST. 2020-10-29 15:12:17 +01:00
enjoy-digital 8169b5412c
Merge pull request #223 from gregdavill/ecp5_delayf_fix
ecp5ddrphy: Fix DELAYF initial value
2020-10-20 18:11:46 +02:00
Greg Davill 0c8c707f24 ecp5ddrphy: Fix DELAYF initial value
I've seen intermittent failures with recent builds. I suspect it is
related to the DELAYF primitive not being correctly loaded with an
initial value. Holding LOADN LOW ensures a value is correctly
loaded.
2020-10-20 16:44:32 +10:30
Florent Kermarrec a39d873946 phy/ecp5ddrphy: remove rst CSR (does not seem to be necessary on ECP5). 2020-10-19 09:48:50 +02:00
Florent Kermarrec 2ea854225f frontend/bist: expose core for observation. 2020-10-19 09:47:33 +02:00
enjoy-digital 7d8f4713d3
Merge pull request #222 from daveshah1/rcd_fine_speed_int
init: Cast DDR4 RCD fine_speed to int
2020-10-13 15:01:20 +02:00
David Shah eb6268a783 init: Cast DDR4 RCD fine_speed to int
Fixes `TypeError: unsupported operand type(s) for |: 'int' and 'float'`
for some clock frequencies.

Signed-off-by: David Shah <dave@ds0.me>
2020-10-13 13:10:31 +01:00
Florent Kermarrec ce2c410965 phy/s7ddrphy/A7DDRPHY: fix cmd_latency parameter (allow user to specify it). 2020-10-13 10:36:22 +02:00
enjoy-digital 85fa02afc7
Merge pull request #221 from enjoy-digital/write_latency
Add dynamic write latency calibration.
2020-10-12 19:42:26 +02:00
Florent Kermarrec 80b5ed30e9 phy/ecp5ddrphy: reintegrate old BitSlip (issue with new one on ECP5). 2020-10-12 19:40:11 +02:00
Florent Kermarrec 1ee4fa25c4 phy/ecp5ddrphy: add rst CSR. 2020-10-12 19:25:34 +02:00
Florent Kermarrec df73b982ee test/reference: update 2020-10-12 18:50:31 +02:00
Florent Kermarrec 60c68bf949 init/get_sdram_phy_c_header: fix ECPDDRPHY case. 2020-10-12 18:47:44 +02:00
Florent Kermarrec a18d04da42 phy/s7ddrphy: simplify cmd_latency (set it to 1 as default except for a7ddrphy). 2020-10-12 18:33:04 +02:00
Florent Kermarrec 97b4029be7 litedram/init: pass write latency calibration capability to software. 2020-10-12 16:05:59 +02:00
Florent Kermarrec a1e8bcb53c phy/s7/usddrphy: reset bitslip modules with rst CSR. 2020-10-12 10:41:33 +02:00
Florent Kermarrec 5d528cbad0 phy/usddrphy: add write leveling bitslip support on dq/dm/dqs (similar to s7ddrphy). 2020-10-08 19:50:18 +02:00
Florent Kermarrec 1d450bac57 common/BitSlip: reset value to value.reset. 2020-10-08 19:40:40 +02:00
Florent Kermarrec 9787b868e8 phy/s7ddrphy: add dynamic control of dq/dm/dqs bitslips. 2020-10-08 18:52:45 +02:00
Florent Kermarrec 83d70a3eb9 phy/s7ddrphy: also add bitslip on dqs. 2020-10-08 18:17:47 +02:00
Florent Kermarrec 0ac23fde52 phy/s7ddrphy: increase write_latency by 1 (now possible with previous BitSlip chantges). 2020-10-08 18:08:36 +02:00
Florent Kermarrec 3fddff3a11 common/BitSlip: shift output by one bit (allow 1 cycle latency on writes), set reset value to cycles*dw-1. 2020-10-08 17:37:24 +02:00
Florent Kermarrec 732df04413 common/Bitslip: add assert on cycles. 2020-10-08 17:16:21 +02:00
Florent Kermarrec 6e8d37c873 phy/s7ddrphy: replace dm/dq delays with BitSlip. 2020-10-08 17:15:22 +02:00
Florent Kermarrec c16628531a common/BitSlip: allow passing i/o signals as parameters. 2020-10-08 16:56:22 +02:00
Florent Kermarrec fcd1b2ca2b phy/s7ddrphy: reduce write_latency on controller by 1 sys_clk (to allow BitSlip). 2020-10-08 16:23:06 +02:00
Florent Kermarrec b24943e691 bench/genesys2: add litescope on ddrphy.dfi. 2020-10-08 16:21:02 +02:00
Florent Kermarrec e5f4f828ad phy/s7ddrphy: fix dynamic rd/wrphase and dq/dqs_oe_delay for nphases=2. 2020-10-07 18:54:43 +02:00
Florent Kermarrec b16e9bfd5c phy/s7/usddrphy: cleanup/uniformize DQ path. 2020-10-02 12:43:02 +02:00
Florent Kermarrec 39178ce460 test: add minimal OSERDESE2/OSERDESE3 simulations to check Data/Tristate latencies. 2020-10-02 12:30:19 +02:00
Florent Kermarrec 329c9904f7 common/DQSPattern: add transmission order, minor simplification on USDDRPHY. 2020-10-02 12:26:57 +02:00
Florent Kermarrec 16480d9aed phy/s7ddrphy: adjust dqs/dq tristate latency.
OSERDESE2 has a latency of 2 sys_clk.
2020-10-02 12:15:32 +02:00
Florent Kermarrec 6a23bd623b phy/ecp5/s7/usddrphy: simplify dq/dqs tristate using TappedDelayLine. 2020-10-02 09:37:32 +02:00
Florent Kermarrec e3461704b5 phy/ecp5/s7/usddrphy: simplify control path using TappedDelayLine. 2020-10-01 18:30:17 +02:00
Florent Kermarrec d12caf1e0c common: add TappedDelayLine to simplify delays on control signals. 2020-10-01 18:29:35 +02:00
Florent Kermarrec a5a4a422dd phy/core: move rd/wrcmdphase and computation to Multiplexer.
rd/wrcmdphases are always computated as (rd/wrphase-1)%nphases so it's not useful
to expose them as PhySettings. rd/wrcmdphases are now directly computated in
Multiplexer and static/dynamic rd/wrphases are supported.
2020-10-01 11:26:04 +02:00
Florent Kermarrec f8ee596464 test/reference: update. 2020-09-30 19:49:38 +02:00
Florent Kermarrec c8f1e80215 phy/s7ddrphy: handle cmd_latency properly (add it to rd/wrphase). 2020-09-30 19:45:23 +02:00
Florent Kermarrec b1c26d996f phy/s7ddrphy: handle cmd_latency properly (add it to rd/wrphase). 2020-09-30 19:40:55 +02:00
Florent Kermarrec 05ed5bf59d phy/ecp5ddrphy: simplify using new get_sys_phase. 2020-09-30 19:39:10 +02:00
Florent Kermarrec 207b8f48bb common: simplify/rename get_sys_phase (cmd_phase is always -1 can be calculated on phys). 2020-09-30 19:38:43 +02:00
Florent Kermarrec a611778e3d litedram/init/get_sdram_phy_c_header: add CL/CWL defines. 2020-09-30 19:19:31 +02:00
Florent Kermarrec 6d063b196c test/reference: update. 2020-09-30 18:06:48 +02:00
Florent Kermarrec 18e8f5c565 phy/usddrphy: add dynamic read/write phase support. 2020-09-30 17:13:55 +02:00
Florent Kermarrec afe29d4231 phy/s7ddrphy: add dynamic read/write phase support. 2020-09-30 17:13:41 +02:00
Florent Kermarrec a67aed2a02 init/get_sdram_phy_c_header: add support for dynamic write/read phases. 2020-09-30 17:07:34 +02:00
Florent Kermarrec c4d7083677 test/reference: update. 2020-09-30 13:29:39 +02:00
Florent Kermarrec d06e2dda23 phy/usddrphy: simplify dq_bitslip.o mapping. 2020-09-30 11:41:43 +02:00
Florent Kermarrec 6b0591920b phy/usddrphy: simplify commands. 2020-09-30 11:39:07 +02:00
Florent Kermarrec 1d756cb209 phy/usddrphy: simplify OSERDESE3/ISERDESE3 data mapping. 2020-09-30 10:44:41 +02:00