Florent Kermarrec
431e563a39
common: move cmd/wdata/rdata descriptions and add minimal description of signals.
2020-11-09 12:06:02 +01:00
Florent Kermarrec
1d450bac57
common/BitSlip: reset value to value.reset.
2020-10-08 19:40:40 +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
c16628531a
common/BitSlip: allow passing i/o signals as parameters.
2020-10-08 16:56:22 +02:00
Florent Kermarrec
329c9904f7
common/DQSPattern: add transmission order, minor simplification on USDDRPHY.
2020-10-02 12:26:57 +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
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
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
68e9a02a55
litedram/common: add cl/cwl values for DDR4 data rates from 1333MT/s to 2666MT/s.
2020-09-29 19:46:39 +02:00
Florent Kermarrec
cf45ca48bc
s7ddrphy/usddrphy: add cmd_delay parameter and pass cmd_latency/cmd_delay to PhySettings/Software.
2020-09-07 18:50:01 +02:00
Florent Kermarrec
3bab6f2024
common/PHYPadsReducer: make Cat optional (disabled by default).
2020-09-04 11:10:48 +02:00
Florent Kermarrec
41c8ac637d
common/PHYPadsReducer: add Cat around Array (helps for standalone core integration).
2020-09-02 09:40:14 +02:00
Florent Kermarrec
ac825e5112
add SPDX License identifier to header and specify file is part of LiteDRAM.
2020-08-23 15:52:08 +02:00
Florent Kermarrec
9c5ce52b88
common: add connect method to LiteDRAMNativePort and use it in adapter for identify converter.
2020-08-05 12:17:25 +02:00
Owen Kirby
805a37447c
Add support for TDQS mode.
...
This adds an optional argument to add_electrical_settings() that can
enable the TDQS mode for x8 DDR3 modules. Normally this would be used
when mixing x4 and x8 modules (eg: heterogenous DIMMS), but it can
also workaround boards with missing or broken DM signals.
2020-07-26 15:51:07 -07:00
Florent Kermarrec
639a31fdd2
test/test_timing: update test_txxd_controller.
2020-05-20 23:40:01 +02:00
Florent Kermarrec
3c1ab76bbc
litedram/common/tXXDController: only set reset to 1 when txxd is None.
...
This avoids triggering a warning/error with Yosys.
2020-05-19 13:10:32 +02:00
enjoy-digital
b2a5685396
Merge pull request #189 from daveshah1/ddr4_rdimm_init
...
Add support for DDR4 RDIMMs
2020-05-15 21:34:43 +02:00
Florent Kermarrec
5c0231d929
common/BitSlip: add cycles parameter to extend bitstlip to multiple system clock cycles.
2020-05-08 13:09:54 +02:00
David Shah
70054bacdb
Add support for DDR4 RDIMMs
...
Signed-off-by: David Shah <dave@ds0.me>
2020-04-29 12:34:41 +01:00
Florent Kermarrec
9a2d3f0eb9
common: add PHYPadsReducer to only use specific DRAM modules.
...
For example on KC705, to only use the 4 first modules (bytes):
from litedram.common import PHYPadsReducer
ddram_pads = platform.request("ddram")
ddram_pads = PHYPadsReducer(ddram_pads, modules=[0, 1, 2, 3])
self.submodules.ddrphy = s7ddrphy.K7DDRPHY(ddram_pads,
[...]
On Arty, to only use the second module (byte):
from litedram.common import PHYPadsReducer
ddram_pads = platform.request("ddram")
ddram_pads = PHYPadsReducer(ddram_pads, modules=[1])
self.submodules.ddrphy = s7ddrphy.A7DDRPHY(ddram_pads,
[...]
2020-04-29 10:34:34 +02:00
Florent Kermarrec
48c2fc2cad
phy: simplify/improve dqs preamble/postamble.
...
Add some FIXMEs on ECP5DDRPHY.
2020-04-17 19:50:34 +02:00
Florent Kermarrec
62915cd777
phy: rework BitSlip to simplify integration, add DQSPattern module.
2020-04-16 17:13:37 +02:00
Florent Kermarrec
45a03dff53
phy/init: add phytype to PhySettings and export more parameters to C header to simplify software.
...
Also:
- rename some paramters exported to software.
- simplify wlevel registers on A7DDRPHY (add then even if not used).
- move parameters computation in separate section.
2020-04-16 10:20:34 +02:00
Florent Kermarrec
96b273c523
common/BitSlip: use reset_less on intermediate signal.
2020-04-06 11:59:34 +02:00
Mariusz Glebocki
a04b407c81
common: PHYPadsCombiner: add "dqs" to the list
...
S6HalfRateDDRPHY uses "dqs" instead of "dqs_p"
2020-03-11 15:01:25 +01:00
Florent Kermarrec
5e068f412b
common: add PHYPadsCombiner to allow using fully dissociated DRAM chips and combine them to in single DRAM controller.
...
Most generally, DRAM chips are sharing command/address lines between chips (using a fly-by
topology since DDR3). On some boards, the DRAM chips are using separate command/address lines
and this combiner can be used to re-create a single pads structure (that will be compatible with
LiteDRAM's PHYs) to create a single DRAM controller from multiple fully dissociated DRAMs chips.
2020-03-06 18:46:07 +01:00
Florent Kermarrec
d646e2a6a7
common: add BitSlip module (with reduced latency)
2020-02-17 12:40:06 +01:00
Florent Kermarrec
aa1ce68896
global: improve presentation/readability
2019-11-30 10:53:11 +01:00
Florent Kermarrec
dc1bb53a88
phys: move get_cl_cw/get_sys_latency/get_sys_phases helpers to common
2019-09-11 08:00:54 +02:00
Florent Kermarrec
188b6a8feb
add ZQ periodic short calibration support (default to 1s)
2019-09-09 15:07:38 +02:00
Florent Kermarrec
6e3f7691c5
core: move timing controllers to common
2019-07-23 12:39:14 +02:00
Florent Kermarrec
f018c9e268
add CONTRIBUTORS file and add copyright header to all files.
2019-06-23 23:59:10 +02:00
Florent Kermarrec
50e1d478db
PhySettings: add databits to allow SoC to compute memory size more easily
2019-05-10 15:44:44 +02:00
Florent Kermarrec
3caaa2eb13
common/tXXDController: revert Yosys workarounds
...
Now fixed with https://github.com/YosysHQ/yosys/pull/850
2019-04-29 14:24:31 +02:00
Florent Kermarrec
69afaf5a19
common: add separators, reorganize a bit
2019-03-15 20:08:08 +01:00
Florent Kermarrec
4274db809e
common/TXXDcontroller: fix for compatibility with Yosys and vendor tools
2019-03-04 12:48:42 +01:00
Florent Kermarrec
a74d5c9d9e
common/TXXDcontroller: set ready default value to 1 with self.comb instead of reset value
...
Fix SDRAM build with Yosys
2019-03-04 09:22:03 +01:00
Florent Kermarrec
224a423082
common: allow setting electrical settings with DDR4
2019-01-08 17:00:57 +01:00
Florent Kermarrec
af344897eb
common: add DDR4 burst_length
2018-11-05 10:46:34 +01:00
Florent Kermarrec
ab0d519ebb
core: change cba_shift parameter to more explicit address_mapping parameter
2018-10-19 17:38:04 +02:00
Florent Kermarrec
230ea24113
core: simplify/cleanup pass
2018-10-19 17:21:06 +02:00
Florent Kermarrec
167c0c91f6
remove partial reordering code in master, keep things in bank_reordering branch.
...
we'll try to stabilize master without reordering, then do some refactoring/adding a test suite to ease adding proper reordering later
2018-10-11 19:40:31 +02:00
John Sully
bce411ec95
common: move tXXDController to common
2018-10-10 17:28:32 +02:00
208f5562d1
Merge branch 'master' of https://github.com/enjoy-digital/litedram
2018-10-01 19:36:05 -04:00
69eaf844e8
Fix DDR2 and below compilation failure
2018-10-01 19:35:20 -04:00
Florent Kermarrec
8de1d91eac
core: add with_bank paramteter to NativePort (cause issues on adaptation is bank is always exposed)
2018-10-01 11:18:39 +02:00
Florent Kermarrec
5984eaa6da
core: change api for out-of-order. (with_reordering passed to controller and not ports).
...
We are not going to mix in-order/out-of-order ports
2018-09-28 23:16:54 +02:00