Commit Graph

2635 Commits (ab10bd136ed9eff74011f9ebb9e2642bcedafc32)

Author SHA1 Message Date
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
Adrian Costina c3465789b8 up_dac_common: Move the sync status to register 0x1a to mirror adc path 2020-11-05 17:42:41 +02:00
Adrian Costina 9093a8c428 library: Move ad_iobuf to the common library, as it's not Xilinx specific
Updated all system_project and Makefiles
2020-11-02 16:13:35 +02:00
AndreiGrozav 0ddb08070a axi_ad9963: Add last sample hold support
The mechanism is controlled by axi_dac_interpolate.
2020-11-02 15:50:12 +02:00
AndreiGrozav 4f4a4208cd axi_dac_interpolate: Add last sample support
This feature will allow the user to hold(indefinitely) the last sample, from an
ongoing DMA transfer, simple or cyclic(stooped by user or trigger).

This commit also adds as functionality option:
-synchronized stop between the two channels(DMAs)
-stop by trigger
2020-11-02 15:50:12 +02:00
sergiu arpadi 04a694251e axi_ad7616: Update ad_edge_detect port names 2020-10-28 11:31:50 +02:00
sergiu arpadi d6f5c40e8b ad_edge_detect: Change port names
Fix critical warning for using reserved keyword as port name
2020-10-28 11:31:50 +02:00
Istvan Csomortani 0413bea5c1 ad_ip_jesd204_tpl: Extend valid attribute ranges 2020-10-26 18:12:14 +02:00
Istvan Csomortani 7732a365b5 Revert "axi_spi_engine: Add pulse_width and pulse_period registers"
This reverts commit 0402ce85e4
and reverts commit 164aa97ec3.

The trigger pulse generation must be handled outside of the
SPI Engine framework.

It is recommanded to be done in system level using a PWM
generator or an external signal.
2020-10-21 09:59:26 +03:00
Istvan Csomortani 37254358dd makefile: Regenerate make files 2020-10-20 12:51:10 +03:00
sergiu arpadi b44df7a1e9 util_sigma_delta_spi: Fix syntax 2020-10-19 10:45:36 +03:00
Laszlo Nagy f2f599ec60 axi_ad6676: Set data format to twos complement
Set data format to twos complement to reflect the format defined in the
part data sheet.
2020-10-13 12:55:17 +03:00
Laszlo Nagy c3983d779c ad_ip_jesd204_tpl_adc: Fix PN check for twos complement data format
For devices which have twos complement as data format the MSB of the raw
input must not be toggled.
2020-10-13 12:55:17 +03:00
Josh Blum 6da4f61786 ad_ip_jesd204_tpl_dac_framer: fix localparam ordering
The parameters were not in the order of invocation and this causes an
error in the vivado simulator (xsim).
2020-10-10 08:27:00 +03:00
Sergiu Arpadi 681ddc2e25 axi_gpreg: Add ttcl for clock_mon constraints
fixed critical warnings generated when the NUM_OF_CLK_MONS parameter
is set to 0 and the constraints written in up_clock_mon_constr.xdc
cannot be applied; removed up_clock_mon_constr.xdc from ip core.
2020-10-01 16:10:55 +03:00
Laszlo Nagy e759c1855b jesd204: Clean-up combinatorial logic
To correctly model combinatorial logic in always blocks
blocking assignments must be used.
2020-09-29 17:27:42 +03:00
Laszlo Nagy 7c523fbf02 jesd204_rx: Reset frame alignment monitor event generator
If the link is not enabled no event should be generated.
2020-09-29 17:27:42 +03:00
Laszlo Nagy 0ecf4254ec axi_jesd204_rx: Ignore events if link not enabled
When the link is disabled the events can be ignored.
This is required by the free running event counter that can catch
invalid events during startup cased for example by an invalid link clock.
2020-09-29 17:27:42 +03:00
Laszlo Nagy aa4de79045 jesd204/jesd204_rx: Ignore frame alignment errors if lane is not in DATA phase
If the lane looses synchronization due invalid characters or disparity
error the lane alignment monitor checks random input which results in
irrelevant reporting of frame alignment error.
2020-09-29 17:27:42 +03:00
Laszlo Nagy d825fffd62 jesd204/jesd204_rx: Reset error counter once all lanes synced
If all lanes are synchronized (CGS state machine is in DATA phase) for long
enough therefore the link is also synchronized/DATA phase reset the error
counter since the accumulated values during INIT/CHECK are irrelevant.
These errors are handled by the per-lane CGS state machine.

All errors accumulated during INIT/CHECK phase of CGS are relevant only
if the link is unable to reach the DATA phase.
The link stays in DATA phase unless software resets it,
so all errors accumulated during the DATA phase are relevant.
2020-09-29 17:27:42 +03:00