Commit Graph

2615 Commits (5c87e5b1a7bd9a29fdfbb68badff1e158d29b912)

Author SHA1 Message Date
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
Laszlo Nagy ee143d80d6 jesd204_rx/jesd204_rx_ctrl: Fix de-glitch mechanism
The previous implementation of the de-glitch only delayed the assertion
of the SYNC phase by 64 clock cycles with the DEGLITCH state but if meanwhile
one of the lanes got into a bad state cgs_ready de-asserted the state machine
continued to go SYNCHRONIZED (DATA) state.
This change extends the required number of consecutive cycles while all lanes
must stay in data phase before moving the link to SYNCHRONIZED state from 8 to 256;
This increases the reliability of link bring-up without needing extra
link restarts from software side.
2020-09-29 17:27:42 +03:00
Laszlo Nagy 5edc798b6b axi_jesd204_common/jesd204_up_common: Add event stats
Add statistics for :
 - number of link enable events
 - number of interrupt events (regardless of mask)

0x0B0 0x2C0 Stats Control Register
  [0] - Write 1 to clear stat registers

0x0B1 0x2C4 Link Enable Stat Register
  [15:0] Number of times the link was enabled from power-on or from last
         stat clear

0x0B4 0x2D0 IRQ Stat Register 0
  [31:16] IRQ 1 counter
  [15:0]  IRQ 0 counter

0x0B5 0x2D4 IRQ Stat Register 1
  [31:16] IRQ 3 counter
  [15:0]  IRQ 2 counter

0x0B6 0x2D8 IRQ Stat Register 2
  [31:16] IRQ 5 counter
  [15:0]  IRQ 4 counter

0x0B7 0x2DC IRQ Stat Register 3
  [31:16] IRQ 7 counter
  [15:0]  IRQ 6 counter
2020-09-29 17:27:42 +03:00
Sergiu Arpadi 33f612091b spi_engine: Add spi_engine.tcl 2020-09-25 16:41:33 +03:00
Istvan Csomortani 1b713d8265 axi_hdmi_tx: Update register initialization
Quartus Standard 19.1 throw a critical warning for registers that have
different reset and initial power-up level.

Do not initialize those registers so we can get rid of the warning.
2020-09-25 12:56:53 +03:00
stefan.raus d2ef1bcef5 library/commmon: Fix data width warnings
ad_tdd_control.v: Set ON and OFF local parameters on just one bit.
up_dac_common.v: Set CLK_EDGE_SEL parameter on just one bit.
2020-09-23 09:16:48 +03:00
Istvan Csomortani cba3c0f4f1 spi_engine_offload: Define status_sync interface 2020-09-15 18:14:23 +03:00
Istvan Csomortani 780579f3e9 spi_engine_offload: Delete trailing whitespaces 2020-09-15 18:14:23 +03:00
Istvan Csomortani b827322917 spi_engine_execution: Add missing parameter definition into hw.tcl script 2020-09-15 18:14:23 +03:00
Istvan Csomortani f67209e125 axi_spi_engine: Fix the hw.tcl script
Define both AXI4 Memory Mapped and microprocessor interface for the
reigster map, then activate/deactive one of it in fucntion of the memory
interface type parameter.

Define the missing status_sync interface, which should be connected to
the offload.
2020-09-15 18:14:23 +03:00
Istvan Csomortani f934ff7e4e axi_spi_engine: Add missing ports to every sub-module instance 2020-09-15 18:14:23 +03:00
Istvan Csomortani a5326cb3d2 axi_spi_engine: Refactoring sdi_fifo read outs
Context switching with a parameter is not a good idea. The simulator
may evaluate both branch of the IF statement, even though the inactive
branch may not be valid.

Use if..generate to make the code more robust for both synthesizers and
simulators.
2020-09-15 18:14:23 +03:00
AndreiGrozav 422d7c949c axi_hdmi_tx_vdma: Use only synchronous reset 2020-09-15 18:14:23 +03:00
AndreiGrozav 520a7ea972 axi_hdmi_tx: Update IP to latest HDL flow
Conflicts:
	library/axi_hdmi_tx/axi_hdmi_tx_hw.tcl
2020-09-15 18:14:23 +03:00
AndreiGrozav 585ed44983 Add 'SE Base' family to the supported FPGAs 2020-09-15 18:14:23 +03:00
Istvan Csomortani 85aeb915b4 spi_engine_offload: Start offload when DMA is ready 2020-09-15 12:03:48 +03:00
Istvan Csomortani 121ac2e97a spi_engine_interconnect: always construct must not contains mixed assignment types 2020-09-15 12:01:58 +03:00
Arpadi 4a28a4e856 sysid_intel: Added hw.tcl for sysid IP cores 2020-09-11 15:46:06 +03:00
AndreiGrozav 1e537b1083 axi_ad9963: Fix warnings
-fix missing connection warnings
-fix wrong bus width warning
2020-09-11 10:24:22 +03:00
AndreiGrozav 3d407a3ba5 axi_ad9467: Fix missing connection warnings 2020-09-11 10:24:22 +03:00
AndreiGrozav 5f0abc5099 axi_ad9361: Fix missing connection warnings 2020-09-11 10:24:22 +03:00