Commit Graph

2654 Commits (b6fb5a9b5c3065c04346645f6414ec2b7e577af1)

Author SHA1 Message Date
Istvan Csomortani b6fb5a9b5c util_axis_fifo: Fix slave reset interface definition 2021-02-09 12:33:16 +02:00
Laszlo Nagy 5678e72653 jesd204: Increase Rx version to 1.07.a 2021-02-05 15:24:15 +02:00
Laszlo Nagy 6f608b6199 jesd204: Increase Tx version to 1.06.a 2021-02-05 15:24:15 +02:00
Laszlo Nagy dd58759cd8 jesd204: Intel: NP12 support
Dual clock mode is introduced in link layer to support different
datapath widths on the transport layer than on physical layer.

- Link clock : lane rate / 40 for input datapath width of 4 octets 8b10b
- Device clock : Link clock * input data path width / output datapath width

Supports four clock configurations, single or dual clock mode with or
without external device clock.

The configuration interface reflects the dual clock domain.
2021-02-05 15:24:15 +02:00
Laszlo Nagy 6fe6864447 intel/common/up_clock_mon_constr: Make constraint more generic
Support multiple clock monitors in a block.
Before this change the clock monitor had to be named with a fix name
preventing multiple instances of the clock monitor.
2021-02-05 15:24:15 +02:00
Laszlo Nagy f04cb0c640 jesd204/ad_ip_jesd204_tpl:Intel: NP 12 support
Add parameter that describes interface to link layer, this must be
integer multiple of octets per frame.

Add parameter that describes interface to user/DMA, this must be
multiple of bytes so software can process the samples easier.
2021-02-05 15:24:15 +02:00
Laszlo Nagy 941411c17e intel/jesd204_phy: Remove device clock from the interface
The device clock or other clock can be connected to link_clock from the
upper layer scripts, no need for duplicating clock inputs.
2021-02-05 15:24:15 +02:00
Laszlo Nagy 94181206c2 jesd204/tb: Update testbenches 2021-02-05 15:24:15 +02:00
Laszlo Nagy 589cfc6b1b jesd204_tx_static_config: Update to Np 12 interface changes 2021-02-05 15:24:15 +02:00
Laszlo Nagy 93897b4cb5 jesd204_rx_static_config: Update to Np 12 interface changes 2021-02-05 15:24:15 +02:00
Laszlo Nagy 71475e7dd8 jesd204: Expose core synthesis parameters through registers
Make synthesis parameters accessible for the drivers.
Rework implementation to reflect the parameters of the actual core and
not of the AXI interfacing core.
2021-02-05 15:24:15 +02:00
Laszlo Nagy 454b900f90 jesd204: Xilinx: NP=12 support
To support deterministic latency with non-power of two octets per frame
(F=3,6) the interface width towards the transport layer must be resized
to match integer multiple of frames.

e.g  Input datapath width = 4; Output datpath width = 6;
  for F=3 one beat contains 2 frames
  for F=6 one beat contains 1 frame

The width change is realized with a gearbox.

Due the interface width change the single clock domain core is split
in two clock domains.
  - Link clock : lane rate / 40 for input datapath width of 4 octets 8b10b
  -              lane rate / 20 for input datapath width of 8 octets 8b10b
  -              lane rate / 66 for input datapath width of 8 octets 64b66b

  - Device clock : Link clock * input data path width / output datapath width

Interface to transport layer and SYSREF handling is moved to device clock domain.

The configuration interface reflects the dual clock domain.

If Input and Output datapath width matches, the gearbox is no longer
required, a single clock can be connected to both clocks.
2021-02-05 15:24:15 +02:00
Laszlo Nagy e909962fb0 common/ad_upack: Generic unpacker core and testbench
Unpacker:
   - unpack O_W number of data units from I_W number of data units
   - data unit defined in bits by UNIT_W e.g 8 is a byte
2021-02-05 15:24:15 +02:00
Laszlo Nagy b4ebd4357f common/ad_pack: Generic packer core and testbench
Packer:
   - pack I_W number of data units into O_W number of data units
   - data unit defined in bits by UNIT_W e.g 8 is a byte
2021-02-05 15:24:15 +02:00
Laszlo Nagy 6ef803e7ab jesd204: Make character replacement opt in feature
In order to keep resource utilization low and for better timing closure
allow disabling of the character replacement logic.

If the parameter is set the frame alignment monitoring is limited to links
where scrambling is on.
2021-02-05 15:24:15 +02:00
Matt Blanton 7093e10ebf jesd204: Fixed TX frame mark timing. Added start and end of multiframe signals as RX and TX ports 2021-02-05 15:24:15 +02:00
Matt Blanton 400c3927f7 jesd204: Add support for 8-byte JESD204B, frame alignment character insertion/replacement
Add support to JESD204 RX and TX core for 8-byte 8b/10b link mode,
and frame alignment character replace/insert with or without scrambling.
Add support for xcelium simulator to jesd204/tb
Increased cores minor version.
2021-02-05 15:24:15 +02:00
Istvan Csomortani 769b195800 util_axis_fifo: Add support for tlast 2021-02-05 13:35:06 +02:00
Istvan Csomortani 93f46ef6e3 spi_engine_execution: Add constraints file 2021-02-04 11:04:32 +02:00
Istvan Csomortani ab10bd136e spi_engine_execution: Add echoed SCLK support
There are boards (e.g. AD4630-24) which take the SCLK and echo back to
the FPGA through a level shifter - doing this removes the effect of
round-trip timing delays from the level shifter. This is commonly done
whenever isolators are used since they are very slow.

By setting the ECHO_SCLK parameter to 1, the IP will use the incoming
echoed SCLK clock to latch the SDI line(s). The sdi_data_valid is still
synchronous to the SPI clock, and it's generated after the last valid
SDI latch.

The designer's responsibility is to time the SDI shift registers in order to
respect the design requirements.
2021-02-04 11:04:32 +02:00
Laszlo Nagy 6f4053f3b0 util_adxcvr: Fix PRBS synchroniser typo
The control lines for TX PRBS must be synchronized using the TX clock.
2021-01-29 14:01:25 +02:00
Laszlo Nagy 714d557245 axi_adrv9001: Add opt-in synthesis parameters 2021-01-26 15:22:41 +02:00
Laszlo Nagy 31929167d3 axi_adrv9001: Use global clocks for divided down clock 2021-01-26 15:22:41 +02:00
Laszlo Nagy 8476993c1b ad_pnmon: Fix zero checking when valid not constant 2021-01-26 15:22:41 +02:00
Laszlo Nagy c7046a6d72 axi_adrv9001:axi_adrv9001_rx_channel: fix ramp signal checking 2021-01-26 15:22:41 +02:00
Laszlo Nagy 669217db8b ad_tdd_control: Avoid single pulses if tx_only or rx_only 2021-01-20 13:00:01 +02:00
Laszlo Nagy 843c2565f7 up_tdd_cntrl: Split large synchronizer in smaller ones
This will help placement.
2021-01-20 13:00:01 +02:00
Laszlo Nagy 54c2cf7d12 ad_tdd_control: Fix rx/tx only behavior
When tx_only disable rx_enable and vice-versa
2021-01-20 13:00:01 +02:00
Laszlo Nagy a47cc59c67 common/up_tdd_cntrl: Fix read data when read is idle 2021-01-20 13:00:01 +02:00
Laszlo Nagy 58f2eec127 axi_adrv9001: Export TDD mode 2021-01-20 13:00:01 +02:00
Laszlo Nagy afa3f11206 axi_adrv9001: Add TDD support 2021-01-20 13:00:01 +02:00
Laszlo Nagy 7e63113734 library/common/up_tdd_cntrl: Make address generic 2021-01-20 13:00:01 +02:00
sergiu arpadi acbbd4636a sysid: Upgrade framework, header/ip are now at 2/1.1.a
Unify tcl scripts; rename adi_pd_intel.tcl to adi_pd.tcl
add git branch to internal use area; update log prints;
update xilixn projects; fix cn0506 sysid script;
2021-01-20 01:02:56 +02:00
Istvan Csomortani d82f61b9af util_axis_fifo: Add KEEP synthesis attribute for zerodeep CDC
Vivado synthesis is optimizing out the zerodeep block, resulting untreated
clock domain crossing. Set KEEP attribute for the registers.
2021-01-19 14:28:07 +02:00
Sergiu Arpadi e252d538c2 adi_ip_xilinx: Add env var
add ADI_DISABLE_MESSAGE_SUPPRESION which
disables adi_xilinx_msg.tcl
2021-01-15 13:50:53 +02:00
Arpadi 51b5e4f58b tcl: Change Vivado version to 2020.1
handoff is now exported as .xsa
2021-01-15 13:50:53 +02:00
Istvan Csomortani b8d294cdd9 intel/jesd204: clock_source instance version is 19.3 2021-01-12 19:34:44 +02:00
Laszlo Nagy 14307856ea xilinx:adxcvr: PRBS support
The new REG_PRBS_CNTRL and REG_PRBS_STATUS registers expose controls of internal
PRBS generators and checkers allowing the testing the multi-gigabit serial link
at the physical layer without the need of the link layer bringup.
2021-01-12 13:40:42 +02:00
Istvan Csomortani b989ba36d1 axi_spi_engine: Fix util_axis_fifo instance related issues 2021-01-08 12:29:26 +02:00
Lars-Peter Clausen c6c45fe1d5 adi_jesd204: Configure fPLL phase aligned mode
In phase aligned mode the fPLL uses an external feedback path to better
align the phase of the PLL output to the phase of the external reference
clock.

This mode is required for deterministic latency to be able to sample SYSREF
which is source synchronous to the external reference clock signal.

So far phase aligned mode had been disabled since manual PLL calibration
would fail in this mode under certain (unknown) circumstances and dynamic
reconfiguration of the PLL would not work.

The latest Intel Arria 10 transceiver datasheet contains instructions for
the proper calibration sequence to make it work when the PLL is configured
for phase aligned mode. Software has been updated accordingly, so enable
phase aligned mode.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
2020-12-14 13:59:11 +02:00
AndreiGrozav c0de649e2e axi_hdmi_tx: Remove deprecated constraint 2020-12-08 14:38:04 +02:00
Istvan Csomortani f7b8a2dfb5 axi_dmac: Update IP with the new util_axis_fifo
Update instantiation, false path definitions and make file.
2020-12-04 11:00:53 +02:00
Istvan Csomortani eb7e533d66 spi_engine: Update util_axis_fifo instances 2020-12-04 11:00:53 +02:00
Istvan Csomortani 5ac728392d util_axis_fifo: Refactoring
Refactor the AXI4 stream FIFO implementation.

  - Define a single address generator which supports both single and double
clock mode. (synchronous and asynchronous)
  - Fix FIFO status bits (empty/full). NOTE: In asynchronous mode the
flags can have a several clock cycle delay in function of the upstream/downstream
clock ratio.
  - In synchronous none FIFO mode (ADDRESS_WIDTH==0), the module acts as
    an AXI4 stream pipeline.
2020-12-04 11:00:53 +02:00
Laszlo Nagy 5df2961624 ad_mux: another fix cases where channel number is not power of mux size 2020-11-27 09:45:11 +02:00
Laszlo Nagy 0badfdfa31 ad_mux: fix cases where channel number is not power of mux size 2020-11-27 09:45:11 +02:00
Laszlo Nagy 01f4576fcd ad_ip_jesd204_tpl_dac: added xbar for user channels (dma data)
Allow channels received from dma to re-map to other channels, e.g. allowing
broadcasting the same channel to all channels.

The feature is selectable with synthesis parameter and disabled by default.
2020-11-27 09:45:11 +02:00
Laszlo Nagy 5c561665b0 common/ad_mux: Pipelined mux, rtl and TB
Build a large mux from smaller ones defined by the REQ_MUX_SZ parameter
 Use EN_REG to add a register at the output of the small muxes to help
 timing closure.
2020-11-27 09:45:11 +02:00
Laszlo Nagy 1c71815bd7 up_dac_channel: add register for dma data xbar
This commit adds two fields:
1. source channel selection -  Sets the channel number the for the source data.
2. DMA enable mask - When this bit is set do not drive the enable line
   towards the DMA interface.
2020-11-27 09:45:11 +02:00
Adrian Costina 7309da59d1 ad_ip_jesd204_tpl_dac: Switch to sync arm toggling instead of setting only
Added the second flip flop for timing reasons
2020-11-05 17:42:41 +02:00