Commit Graph

2553 Commits (eb2f211d30b52ab60523477c49a6dad2e231a8f1)

Author SHA1 Message Date
Rodrigo Alencar 99fec4fab3 axi_i2s_adi: create friendly xgui files
Signed-off-by: Rodrigo Alencar <455.rodrigo.alencar@gmail.com>
2020-08-25 09:55:31 +03:00
Laszlo Nagy 64f6762a05 library:axi_adrv9001: Initial version
ADRV9001 interfacing IP supports the following modes on Xilinx devices:

A              B  C       D       E       F      G        H
CSSI__1-lane   1  32      80      80      2.5    SDR      8
CSSI__1-lane   1  32      160     80      5      DDR      4
CSSI__4-lane   4  8       80      80      10     SDR      2
CSSI__4-lane   4  8       160     80      20     DDR      1
LSSI__1-lane   1  32      983.04  491.52  30.72  DDR      4
LSSI__2-lane   2  16      983.04  491.52  61.44  DDR      2

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
LSSI - LVDS Source Synchronous Interface

Intel devices supports only CSSI modes.
2020-08-24 17:49:12 +03:00
Laszlo Nagy 8e243b6d32 up_adc_common: Expose up version of r1_mode 2020-08-24 17:49:12 +03:00
Laszlo Nagy 7023639b8f library/common/up_dac_common: Sync dac_rst to control set
De-assert dac_rst together with an updated control set.
This allows writing the control registers before releasing the reset.
This is important at start-up when stable set of controls is required.
2020-08-24 17:49:12 +03:00
Laszlo Nagy f886c246cd library/common/up_dac_common: Add registers to control interface
DDR/SDR - selectable input rate
 number of lanes - number of active lanes that transport data
                  (2 LVDS diff lanes counts as one)
2020-08-24 17:49:12 +03:00
Laszlo Nagy 32be451b98 library/common/up_adc_common: Sync adc_rst to control set
De-assert adc_rst together with an updated control set.
This allows writing the control registers before releasing the reset.
This is important at start-up when stable set of controls is required.
2020-08-24 17:49:12 +03:00
Laszlo Nagy 75c037fcca library/common/up_adc_common: Add registers to control interface
DDR/SDR - selectable input rate
number of lanes - number of active lanes that transport data
                  (2 LVDS diff lanes counts as one)
2020-08-24 17:49:12 +03:00
Laszlo Nagy 05167e2c2b ad_pnmon: Allow patterns with zero as valid data
Allow monitoring of non-PN patterns which have zeros in it.
e.g. nible-ramp, full range ramp.

Singular zeros got ignored if not out of sync, while OOS_THRESHOLD
consecutive zeros or non-matching data asserts the out of sync line.
2020-08-24 17:49:12 +03:00
Laszlo Nagy bf06a5c08f ad_pngen: Generic PN generator
Parametrizable PN generator, can generate any polynomial with the help of a mask.
2020-08-24 17:49:12 +03:00
Istvan Csomortani 3bd8b73028 axi_spi_engine: Fix value range for ID parameter 2020-08-24 16:45:02 +03:00
Istvan Csomortani 46419f8d09 spi_engine: Fix ip scripts for regmap, offload and execution
Fix the *_ip.tcl scripts for axi_spi_engine and spi_engine_offload
module.

In case of a bool parameters the value_format and value properties must
be set for both user and hdl paramters. If not, in the generated verilog
code the tool will use "true" or "false" strings, instead of 0 or 1.
2020-08-24 16:45:02 +03:00
Istvan Csomortani 1c7043c707 axi_spi_engine: Update IPXACT GUI layout 2020-08-19 10:46:46 +03:00
Istvan Csomortani c8fb3a1846 spi_engine_execution: Update IPXACT GUI layout 2020-08-18 08:53:32 +03:00
Istvan Csomortani d1a6f87adb spi_engine_interconnect: Update IPXACT GUI layout 2020-08-18 08:53:14 +03:00
Istvan Csomortani eaf3e97450 spi_engine_offload: Update IPXACT GUI layout 2020-08-18 08:52:58 +03:00
Stanca Pop 5d4d34477c spi_engine: Add Intel Support 2020-08-17 16:37:21 +03:00
Istvan Csomortani 11947f2e7e spi_engine_execution: code refactoring
The added modification do not chnage the functionality of the module.
2020-08-13 10:01:16 +03:00
Istvan Csomortani 45d806ff11 spi_engine_execution: Fix sdi_shift_reg reset and command latching 2020-08-13 10:01:16 +03:00
AndreiGrozav 26224186c1 ad_dds: Fix typo
Fix for Intel projects
2020-08-13 09:40:46 +03:00
AndreiGrozav 47fa86cfd6 axi_logic_analyzer: Optimize the input data path
The input data path has a delay section that compensates for the ADC path delay.
By using a Dynamic Shift Registers coding style we can improve/change the
resource utilization on m2k:
          Before     After    Resources
LUT       10097      10048     48 (0.28%)
LUTRAM    516        540      -24 (-0.4%)
FF        15285      14803    482 (1.37%)
2020-08-13 07:01:19 +03:00
AndreiGrozav 58e0044643 axi_adc_trigger: Use valid in data delay stage
This is required to match the delays in the data path to internal/external
trigger path.
2020-08-13 07:01:19 +03:00
AndreiGrozav c797a2e14f axi_adc_decimate: Export signals indicating the rate
- oversampling_en signal
- filter mask value

Those signals will be used by the axi_adc_trigger.
2020-08-13 07:01:19 +03:00
AndreiGrozav 2e0ba5bffd axi_logic_analyzer: Auto sync to ADC path
The number of delay taps in the LA data path can be controlled manually, from
the regmap or automatically, according to the axi_adc_decimate's rate.

Moreover, because the rate is configure by software, and the time of
initialization, is different for the ADC path and LA path. There is an
uncertainty of plus/minus one sample between the two. Because ADC and LA
paths share the same clock we can easily synchronize the two paths. We
can't use reset, because the rate generation mechanism is different
between the two. So the ADC path is used as master valid generator and we
can use it to drive the LA path.
The synchronization is done by setting the rate source bit. This
mechanism can only be used if the desired rate for both path is equal,
including oversampling fom ADC decimation.
2020-08-13 07:01:19 +03:00
Laszlo Nagy d2b1164567 axi_dmac: Add interface description register
Adds information on:
  - Log 2 of interface data widths in bits
  - Interface type (0 - Axi MemoryMap, 1 -  AXI Stream, 2 - FIFO ) .
Lets the driver discover interface widths and interface type settings,
this will deprecate the corresponding device tree properties.

This is useful in case of parametrized projects where the width of
the datapath is changing. This change will allow the use of a generic
device tree node.

Updated version to 4.3.a
2020-08-12 17:50:16 +03:00
Laszlo Nagy 04fed45e54 util_cpack2: support for 64 channels 2020-08-11 10:37:59 +03:00
Laszlo Nagy b49928fca6 ad_ip_jesd204_tpl_adc: add support for 64 channels 2020-08-11 10:37:59 +03:00
Laszlo Nagy 2ca09adaf7 ad_ip_jesd204_tpl_dac: expand address space to accomodate 64 channels 2020-08-11 10:37:59 +03:00
Laszlo Nagy 59c2e581a2 util_upack2: support for 64 channels 2020-08-11 10:37:59 +03:00
Laszlo Nagy e698b286e5 jesd204: DAC TPL to support 64 channels 2020-08-11 10:37:59 +03:00
Istvan Csomortani fe90fc7e57 axi_ad9361: add_instance command must have a version attribute 2020-08-11 10:14:18 +03:00
Istvan Csomortani 0c7d85ac87 axi_laser_driver: Fix IP paramtere editor error
The parameter property 'type' cannot be modified after
adding the parameter.
2020-08-11 10:14:18 +03:00
Istvan Csomortani f38b9d44b9 util_adcfifo: Update the interfaces for the asymetric memory 2020-08-11 10:14:18 +03:00
Istvan Csomortani f624d5df40 intel_mem_asym: Update the interface definitions
The ram_2port IP has different interface names in Quartus PRO and
Quartus Standard.

Update the interface names for the support Quartus PRO.
2020-08-11 10:14:18 +03:00
Istvan Csomortani 2198320981 intel_mem_asym: add_instance command must have a version attribute 2020-08-11 10:14:18 +03:00
Istvan Csomortani 0de5039b96 avl_dacfifo: add_intance command must have a version attribute 2020-08-11 10:14:18 +03:00
Istvan Csomortani 3e6d9ee019 adi_jesd204: Delete redundant connections 2020-08-11 10:14:18 +03:00
Istvan Csomortani e856a99e49 adi_jesd204: add_instance command must have a version attribute 2020-08-11 10:14:18 +03:00
Istvan Csomortani 53e07c5d29 quartus_pro: Parameter property TYPE is not supported 2020-08-11 10:14:18 +03:00
AndreiGrozav 9122d98132 adi_intel_device_info_enc.tcl: Fix typo 2020-08-10 18:30:46 +03:00
Laszlo Nagy 4e438261aa ad_serdes_out: Add CMOS support 2020-08-07 08:31:19 +03:00
Laszlo Nagy 837475db0d ad_serdes_in: Add CMOS support 2020-08-07 08:31:19 +03:00
Laszlo Nagy e6b9e21ad1 ad_serdes_out: Add tristate option 2020-08-07 08:31:19 +03:00
Laszlo Nagy c5c772127d up_delay_cntrl:ad_serdes_in: Make delay value width parametrizable
US/US+ devices have IDELAY/ODELAY with 512 taps. This requires wider
control value for delay selection. 9 bits contrary to 5 on 7series.
2020-08-07 08:31:19 +03:00
Laszlo Nagy 37d378c753 common/ad_serdes_out.v: Add US/US+ support 2020-08-07 08:31:19 +03:00
Laszlo Nagy 65d39b9164 common/ad_serdes_in.v: Add US/US+ support 2020-08-07 08:31:19 +03:00
AndreiGrozav 4972e5c42d axi_dac_interpolate: oversampling optimization
Optimize the oversampling mechanism.
The behavior of the axi_dac_interpolate was changing if a debug module was
added to the core.
The current code has a better utilization and reliability.
2020-08-05 13:01:05 +03:00
AndreiGrozav d39ed3d4db axi_dac_interpolate: Fix oversampling by 2
When using an oversampling of 2 for axi_dac_interpolate the rate was
the same as with oversampling by 1(bypassing).

This commit removes the bypass for the ratio of 2.
2020-08-05 13:01:05 +03:00
AndreiGrozav a7a131cb36 ad_dds: Fix noise caused by dac_data_sync
For projects where the clock ratio between the sampling clock and core clock
is higher than 2, the ad_dds generates a number of samples equal with
the clock ratio. There is a phase offset between the samples, proportional
with the requested DDS frequency.
In scenarios where the DDS out frequency is closer to the upper
limit(Nyquist) and/or the clock ratio is also greater than 2 and the
dac_data_sync reminds low for an extended period of time, the DAC will
receive at each core clock period, a number of samples equal with the
clock ratio and with an amplitude influenced by the DDS out frequency.
In most cases similar with a sawtooth signal.

With this commit we ensures that samples received by the DAC are 0 for
the period where dac_data_sync signal is high. Only when the signal
transitions to low, the phase accumulator is initialized and the phase
information is passed to the phase to amplitude converter.

Another issue can appear when the sync signal is too short; less then
CLK_RATIO * clock cycles. Because the phase accumulator will not
synchronize at all stages, the final result will be a random combination of
sine-waves. Added a minimum sync pulse after the dac_data_sync is set
low.
2020-08-04 13:08:07 +03:00
Laszlo Nagy 6ca6257341 jesd204_rx: Increment version to 1.04.a
- support for frame alignment check
- support for interrupt on frame alignment error
- support for interrupt on unexpected lane status error
2020-07-31 11:43:41 +03:00
Laszlo Nagy 87b67ced17 jesd204_rx: Interrupt for unexpected lane status error 2020-07-31 11:43:41 +03:00