Commit Graph

2813 Commits (6a92bd59258a1e90530913764d28cfc96c358dc7)

Author SHA1 Message Date
Mihaita Nagy 1fe0d5f8e0 data_offload: Fix timing violation 2021-09-22 12:18:33 +03:00
David Winter cdb9a0af2b data_offload: Add sync to cyclic mode
Signed-off-by: David Winter <david.winter@analog.com>
2021-09-21 09:06:03 +03:00
AndreiGrozav 76cd5581bc axi_pwm_gen: Add config in soft reset option 2021-09-17 11:50:46 +03:00
Adrian Costina 591a23156b Makefiles: Update header with the appropriate license 2021-09-16 16:50:53 +03:00
Robin Getz b38747cefc Make system: Be explicit in license that cover the make/build system
The build system is covered under a 1 Clause BSD license. Make sure
users are aware.

Signed-off-by: Robin Getz <robin.getz@analog.com>
2021-09-16 16:50:53 +03:00
Robin Getz 12a3f8799e JESD204 Interface Framework : add logo
Add a small logo for branding purposes.

Signed-off-by: Robin Getz <robin.getz@analog.com>
2021-09-16 16:49:52 +03:00
David Winter 1766b42a93 ad_mem_asym: Add option to control cascade layout
Signed-off-by: David Winter <david.winter@analog.com>
2021-09-15 12:27:49 +03:00
Iacob_Liviu 6763ddcda9 spi_engine_execution: Fix cs signal generation
The cs signal can now accept the IOB TRUE attribute.
2021-09-13 11:39:02 +03:00
David Winter 0392013bd2 util_tdd_sync: Narrow scope of false path to D pin
Signed-off-by: David Winter <david.winter@analog.com>
2021-09-08 11:58:24 +03:00
David Winter 7423ecae14 data_offload: Improve external synchronization
This commit adds a new synthesis option to the design, that controls
whether an internal clock domain crossing will be generated. Disabling
this option allows you to use a synchronization signal that is
synchronized to the write clock domain externally, and possibly shared
between multiple devices.

The default value retains the old behavior.

Signed-off-by: David Winter <david.winter@analog.com>
2021-09-08 11:58:01 +03:00
Filip Gherman 0372ce1821 axi_adxcvr:util_adxcvr: Correctly defined resets. 2021-09-08 11:51:59 +03:00
LIacob106 16a93a804b adrv9001[intel]: Add second pair of DMAs
fix observations for PR
2021-09-01 15:04:14 +03:00
alin724 f8c82c611d axi_adrv9001: Add support for symbol operation mode on Xilinx devices
Add CMOS support for the interface for the following symbol modes on Xilinx devices:

A              B  C       D                     E       F      G            H
CSSI__1-lane   1  16/8    80(SDR)/160(DDR)      80      -      SDR/DDR      SDR/DDR->4/2(C=16), 2/1(C=8)

Columns description:
A - SSI Modes
B - Data Lanes Per Channel
C - Serialization factor Per data lane
D - Max data lane rate(MHz)
E - Max Clock rate (MHz)
F - Max Sample Rate for I/Q (MHz)
G - Data Type
H - DDS Rate

CSSI - CMOS Source Synchronous Interface
2021-08-17 15:33:06 +03:00
Laszlo Nagy 8afc03abab jesd204/ad_ip_jesd204_tpl_dac: Intel: Add support for AD916x preset files 2021-08-16 07:22:50 +03:00
stefan.raus 1f24344620 Update Quartus version to 20.4
Update quartus compilation tools from 20.1 to 20.4.
Remove hardcoded version from axi_adrv9001 ip.
2021-08-12 11:15:01 +03:00
David Winter 235542cac9 data_offload: Fix support for > 4 GiB of storage
This commit changes the transfer length register to work in increments of
64 bytes and without offset. The true transfer length can now be
determined by multiplying the value of the transfer_length register with
64.
A value of zero is interpreted as a request for all available storage.

Additionally, this commit fixes an off by one issue that was discovered
during testing of the RX path.

Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
David Winter 25038ccb4d data_offload: Fix MEM_SIZE parameter width
Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
David Winter 58953ff40d data_offload: Fix m_axis output stability issue
Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
David Winter 2b55c7453b data_offload: Fix duplicated output samples
Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
David Winter 04f2d19d4b data_offload: Fix data_offload getting stuck on oscillating m_saxis_ready
Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
David Winter 0af50d3f72 data_offload: Fix oneshot mode
Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
David Winter 66748510ea data_offload: write_fsm: Always transition out of idle on high init_req
Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
David Winter 9faef440b2 data_offload: Bump hdl version
Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
David Winter a89d0e6176 data_offload: Fix AXI register map
Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
David Winter 537a284115 data_offload: Fix readme images
Signed-off-by: David Winter <david.winter@analog.com>
2021-08-06 11:55:24 +03:00
Istvan Csomortani 6516b09a31 data_offload: Update README and generic block design 2021-08-06 11:55:24 +03:00
Istvan Csomortani 26518cdace data_offload: Add block diagrams 2021-08-06 11:55:24 +03:00
Istvan Csomortani 9b1108ea87 data_offload: Flush the DMA if the transaction size is bigger than the storage 2021-08-06 11:55:24 +03:00
Istvan Csomortani c82b0fb420 data_offload: Delete fifo_dst_rlast 2021-08-06 11:55:24 +03:00
Istvan Csomortani 0436a82f4e data_offload: Fix alignment of write last beat and write full 2021-08-06 11:55:24 +03:00
Istvan Csomortani 378daf031c data_offload: Improve timing in regmap 2021-08-06 11:55:24 +03:00
Istvan Csomortani c27a0e4add data_offload: Fix fifo_dst_ready generation 2021-08-06 11:55:24 +03:00
Istvan Csomortani 86b611c1f7 data_offload: Initial commit 2021-08-06 11:55:24 +03:00
Istvan Csomortani 6e97803437 ad_axis_inf_rx: Initialize output ports to avoid X propagation in simulation 2021-08-06 11:55:24 +03:00
Istvan Csomortani b9ac3a78a9 interfaces: Add XFER_REQ to fifo_rd_rtl.xml 2021-08-06 11:55:24 +03:00
Istvan Csomortani 157a8dee17 util_fifo2axi_bridge: Initial commit 2021-08-03 23:02:17 +03:00
Istvan Csomortani 0959c2bcad util_axis_fifo_asym: Initial commit 2021-08-03 23:02:17 +03:00
Nick Pillitteri 1543eb8881 axi_generic_adc: pass in number of channels instantiated to up_adc_common. Allows drivers/iio/adc/ad_adc.c driver to be used with this core.
Signed-off-by: Nick Pillitteri <njpillitteri@gmail.com>
2021-08-02 13:10:26 +03:00
stefan.raus 9d5de2fc21 Update Vivado version to 2020.2
Update vivado version to 2020.2:
 - update default vivado version from 2020.1 to 2020.2
 - add conditions to apply specific contraints only in Out Of Context mode.
 - update DDR controler parameters for vcu118 and kcu105 dev boards
2021-07-29 14:06:42 +03:00
Isaac T 569257c4f3 Fix width of device_cfg_octets_per_multiframe
The width of the parameter `device_cfg_octets_per_multiframe` doesn't match the width in the submodules and corresponding slave module jesd204_tx, resulting in a warning generated during validation in Vivado. This patch increases the width of this parameter in axi_jesd204_tx.
2021-07-27 11:34:34 +03:00
Laszlo Nagy 20fc00a811 jesd204/ad_ip_jesd204_tpl_dac: Support for F=64 2021-07-27 11:31:19 +03:00
Laszlo Nagy c39b6b2ac8 jesd20r_rx/jesd204_tx: Support for F=64 2021-07-27 11:31:19 +03:00
Laszlo Nagy 4407d72d42 esd204/ad_ip_jesd204_tpl_adc: Support more datapath widths 2021-07-27 11:31:19 +03:00
Istvan Csomortani c808d8c3c7 ad_ip_jesd204_tpl_adc: Max number of lanes is 32 2021-07-27 10:28:48 +03:00
Istvan Csomortani f0027faf88 adi_jesd204: Add support of 16 lanes 2021-07-27 10:28:48 +03:00
AndreiGrozav 81320b6469 axi_pwm_gen: Fix offset mechanism
Fix offset for pwms with different periods.
The previous version was using an offset scheme based on pwm counter_0.
By using a separate offset counter the user will not be constrained by
pwm_0 period in regards with the offset of other pulses. In this version
offset 0 is used to delay pwm 0 in regards to the offset counter.

The offset counter will start after the load_config signal is asserted
and all active pwm counters finish the previous cycle or by a software
reset.

The software reset should also be used when using external_sync.
2021-07-13 15:49:42 +03:00
Iacob_Liviu 30b491fff7 tb: jesd204: update and automate frame_align_tb
Fix jesd204 frame_aligh_tb by adding a fifo to solve rx and tx delay.
It saves the data from tx and compares it with the recieved ones from
rx.
2021-07-12 10:30:49 +01:00
Josh Blum e1829a061d adrv9001: fixes for reset metastability on xilinx ioserdes
* fixes DRC warning that the clocking configuration may result in data errors
* fixes ioserdes reset issue with synchronous de-assert in data clock domain
2021-07-09 11:11:04 +03:00
alin724 e61cadb2ca axi_dmac: Restore axi_dmac_regmap_request to f7b8a2d version 2021-07-02 15:52:48 +03:00
David Winter 30cc7d7420 axi_tdd: Add standalone axi_tdd IP core
This commit adds a standalone TDD IP core based on the
existing up_tdd_cntrl module and the up_axi pcore <-> axi bridge.

Signed-off-by: David Winter <david.winter@analog.com>
2021-06-26 08:27:54 +03:00
Laszlo Nagy 20161cf458 xilinx/axi_adxcvr/axi_adxcvr_mdrp: Fix read if all channels are selected
If all channels are selected for read the values and ready signals from every
transceiver are combined. Each element merges his signals with the previous.
The first element of the chain must assume the previous channel is always ready.
2021-06-25 14:15:59 +03:00
Laszlo Nagy 2995f78751 Revert "modified transceiver configuration files"
This reverts commit 829e4155ca.

The first element of the read chain must assume there is no valid element
in front of it.  For each element the ready signal of the transceiver should be
routed if the channel is selected either by channel number or broadcast.
When the current element is not selected it should forward the ready signal from
the previous element, however this is not the case for the first one.

Having a constant 1'b1 connected to the ready input of the first element
corrupts the first read of the first channel after a channel switch.

This change will break broadcast reads.
2021-06-25 14:15:59 +03:00
David Winter 386afd8511 up_tdd_cntrl: Add magic value "TDDC"
Adds a magic identification value of 0x54444443 at word address 0x3.
It is derived from the ASCII String "TDDC" interpreted as a big-endian
32-bit unsigned integer.

Signed-off-by: David Winter <david.winter@analog.com>
2021-06-14 16:50:59 +03:00
David Winter f2017050ed axi_ad9361: Fix typo in tdd interface
As alluded to in the subject, this commit simply fixes what appears
to be a copy-paste bug.

Signed-off-by: David Winter <david.winter@analog.com>
2021-06-14 16:50:47 +03:00
Laszlo Nagy bf77271fb3 axi_adxcvr: Increase version to 17.4.a
Add support for:
  - 204C support for GTH
  - added second clock output for util_xcvr used in case for GTH
  - PROG_DIV support for GTH and GTY
2021-06-10 09:53:43 +03:00
Laszlo Nagy 505142f7f8 xilinx/axi_adxcvr: Expose PLL status in status bit 2021-06-10 09:53:43 +03:00
Laszlo Nagy b4c8a559fc util_adxcvr: Hook up RXPROGDIVRESET 2021-06-10 09:53:43 +03:00
Laszlo Nagy d743406ecd util_adxcvr: Add 204C support for GTH3/4
For GTH3/4  64b66b mode add a second clock that drives CLKUSR with a clock
that is 2x of the CLKUSR2 (lane rate/66),
   CLKUSR = 2 x CLKUSR2
   CLKUSR = lane rate / 33

This can be driven from the GT reference clock or second out clock div2.

This commit also:
- fix eyescan scale on GTY
- remove irrelevant parameters
2021-06-10 09:53:43 +03:00
Laszlo Nagy c0775adac3 util_adxcvr/util_adxcvr_xch: Place 204C logic to a common place 2021-06-10 09:53:43 +03:00
Alin-Tudor Sferle 54c65013aa
Fix registers mismatches in regmap_tb from jesd 204 rx/tx and dmac
* dmac_tb: Fix regmap_tb registers mismatches

* jesd204: Fix jes204 rx and tx regmap_tb Octets per multiframe mismatch
2021-05-31 16:47:12 +03:00
Laszlo Nagy aa180fb272 axi_adrv9001: Let gate signals have initial value, useful for simulation 2021-05-26 15:44:45 +03:00
Laszlo Nagy b85784ebe8 axi_adrv9001: rx: calculate ramp value based on received value 2021-05-26 15:44:45 +03:00
Laszlo Nagy 9a93b56882 axi_adrv9001:rx: Add reset to link layer
Fix random valid signals after resets on the Rx interface.
2021-05-26 15:44:45 +03:00
Laszlo Nagy 4c35af74d4 axi_adrv9001:rx:phy: do not generate valid while in reset 2021-05-26 15:44:45 +03:00
Laszlo Nagy 32dbde6945 axi_adrv9001: Allow running Rx2/Tx2 channels in R1 mode without Rx1/Tx1
This commit removes the deadlock created while trying to use the Rx2/Tx2
channels without the Rx1/Tx1 channels enabled first.
2021-05-26 15:44:45 +03:00
Laszlo Nagy 1502b940d3 common/up_dac_common: Expose r1_mode in up clock domain to prevent deadlock
If R1 mode is first syncronized to the dac clock domain will prevent its
usage if the dac clock is missing. In such case the synchronization will not
propagate.
2021-05-26 15:44:45 +03:00
Laszlo Nagy 08b0d19731 axi_adrv9001: Populate correct ratio of the SSI interface and user interface clocks
Depending on FPGA technology the physical layer uses different
deserialization factors and corresponding clock division factors to
divide the source synchronous interface clock. This must be
exposed to software so it can act on it while setting the DDS rate.

Xilinx CMOS clock ratio - 4
Xilinx LVDS clock ratio - 4
Intel  CMOS clock ratio - 1
2021-05-26 15:44:45 +03:00
Laszlo Nagy 9b50e2baa5 util_adxcvr/util_adxcvr_xch: Fix typo 2021-05-14 15:39:40 +03:00
Laszlo Nagy e1b73545e4 util_adxcvr: GTY TX phase and delay alignment circuit power down.
Tied High when a) TX buffer bypass is not in use;
see UG578
2021-05-14 15:39:40 +03:00
Laszlo Nagy ef69fe36db util_adxcvr: Add PPF1_CFG parameter 2021-05-14 15:39:40 +03:00
Laszlo Nagy 001e7a52b1 util_adxcvr: Add LANE_RATE parameter so it can be used for automatic constraint generation
Add separate LANE_RATE for TX and RX
2021-05-14 15:39:40 +03:00
Laszlo Nagy cb5e66ff9c xilinx/util_adxcvr: 204C link support for GTY4
Set channel parameters based on link mode (1 - 204b or 2 - 204c).
2021-05-14 15:39:40 +03:00
Laszlo Nagy 2d13b5b8cd xilinx/axi_adxcvr: Add 204C support, increase version to 17.3.a 2021-05-14 15:39:40 +03:00
Laszlo Nagy 60612720cd jesd204/jesd204_common/sync_header_align: Initial version
This module creates sync header alignment described in section 7.6.1 of
the JESD 204C specification.

The alignment relies on the bitslip capability of the connected
transceiver.
2021-05-14 15:39:40 +03:00
Laszlo Nagy 0c0c6843e3 jesd204/axi_jesd204: Complete clock definitions in out of context mode 2021-05-14 15:39:40 +03:00
Laszlo Nagy e08ca2fc20 jesd204: Add out of context constraint file for link layer cores
For the out of context flow it is important to have all clocks defined
at the interface, especially if the clock are used in the other constraints.
2021-05-14 15:39:40 +03:00
AndreiGrozav b4c5031272 axi_pulse_gen: Fix typo introduced in c235e5e58 2021-05-10 13:26:30 +03:00
stefan.raus 37238916df Testbenches: Unify and optimize HDL testbenches
Create a common 'run_tb.sh' script to be called by every testbench.
Unify file and testbenches names.
Fix util_pack/cpack_tb.
Add parameters '-batch' and '-gui' for modelsim and xsim simulators (default is gui)
Add ascript for that generates output in xml format (used by CI tools).
2021-05-07 19:53:14 +03:00
AndreiGrozav c235e5e583 axi_pwm_gen: Initial commit
axi_pwm_gen is based on util_pulse_gen, it introduces the option of
phase option between pulses(PWMs) and external synchronization.
Documentation available at
https://wiki.analog.com/resources/fpga/docs/axi_pwm_gen
2021-05-07 19:09:32 +03:00
stefan.raus 9413afa41c jesd204_rx_constr.ttcl: Remove ASYNC_REG constraint from i_lmfc/cdc_sync_stage1_reg
get_cell on i_lmfc/cdc_sync_stage1_reg doesn't return anything because design was updated.
This generates a CRITICAL WARNING and since the constraint it not necessary anymore, it can be deleted.
2021-03-22 10:55:00 +02:00
Laszlo Nagy cdd6c92357 xilinx/axi_adxcvr: Increase version to 17.02.a to show PRBS capability 2021-03-22 10:17:10 +02:00
Laszlo Nagy 5f2681314f xilinx/axi_adxcvr/axi_adxcvr_up: Fix force error control bit 2021-03-22 10:17:10 +02:00
Istvan Csomortani 93044adddf axi_spi_engine: almost full and almost empty is generated by the util_axis_fifo 2021-03-18 18:53:35 +02:00
Istvan Csomortani d91b50071f axi_spi_engine: Fix IRQ generation 2021-03-18 18:53:35 +02:00
Istvan Csomortani 22ce3ef9ce axi_spi_engine: Fix level/room width for the CDC FIFOs 2021-03-18 18:53:35 +02:00
Laszlo Nagy c718ba91f1 axi_adrv9001: Add status bit for Tx clocking
If Tx source synchronous clock is not routed through clock capable pins
the interface and driving logic must run on the Rx interface clock.
This introduces a dependency, Rx interface must be bring up before the
Tx. In this mode a Tx only operation is not possible.

This is done through a synthesis parameter.
Expose this parameter to the software so it can query if the limitations
exists in the implementation.
2021-03-17 16:34:12 +02:00
Istvan Csomortani c9ca1ac00a util_axis_fifo: Improve GUI layout in Vivado 2021-03-12 15:06:45 +02:00
Istvan Csomortani 61c07ff9f1 util_axis_fifo: Add REMOVE_NULL_BEAT_EN feature
If the REMOVE_NULL_BEAT_EN is set, in FIFO mode, all the beats with a
NULL TKEEP will be removed from the AXI stream.

This feature is used initially in data_offload, to create a continues and
cyclic TX data stream for DACs, when the IPs in the path have different data
widths.
2021-03-08 11:32:40 +02:00
Istvan Csomortani 9611be9ded util_axis_fifo: Add TKEEP support 2021-03-08 11:32:40 +02:00
Istvan Csomortani 0d3d099beb util_axis_fifo: Fix FIFO is full alignment 2021-03-08 11:32:40 +02:00
Istvan Csomortani 8ce1d6bf36 util_axis_fifo: Switch data and tlast order, improve maintainability 2021-03-08 11:32:40 +02:00
stefan.raus 4a772265a9 Update Quartus Prime version from 19.3.0 to 20.1.0
adi_project_intel.tcl: Change quartus version to 20.1.0.
library: Set qsys version so that IP instances won't require a specific version.
2021-03-08 11:29:33 +02:00
Laszlo Nagy e2a111d74b jesd204/ad_ip_jesd204_tpl_dac: Drop LSBs from wider bus to be compatible with previous implementations
Add selectable synthesis option for dropping LSBs or MSBs
2021-03-08 10:46:52 +02:00
Laszlo Nagy 69bb9df515 jesd204_rx: Set ASYNC_REG attribute for double syncs 2021-03-08 10:46:52 +02:00
Laszlo Nagy 8d388dd4f2 jesd204_rx:jesd204_rx_ctrl_64b: Improve timing closure 2021-03-08 10:46:52 +02:00
Laszlo Nagy c2f703f56b jesd204/jesd204_rx: Make output pipeline stages opt in feature 2021-03-08 10:46:52 +02:00
Laszlo Nagy fd714c181a jesd204/ad_ip_jesd204_tpl_adc: Make frame alignment opt-in feature 2021-03-08 10:46:52 +02:00
Laszlo Nagy 0db7519c18 jesd204_tx:64b: Remove reset
Remove synchronous reset from datapath to reduce fanout on reset and
help timing closure.
2021-03-08 10:46:52 +02:00
Laszlo Nagy 2545e53b0b jesd204_rx:64b: Remove reset
Remove synchronous reset from datapath to reduce fanout on reset and
help timing closure.
2021-03-08 10:46:52 +02:00
Laszlo Nagy 7b4fa390db ad_ip_jesd204_tpl_dac: fix capability reg 2021-03-08 10:46:52 +02:00