Commit Graph

2958 Commits (f01d7e5951c62645eca8e30371589a9ad29eade5)

Author SHA1 Message Date
Sergiu Arpadi 369e34425f axi_pwm_gen: Update timing constraints, hw.tcl and sdc files.
Not using util_cdc_constr.tcl
2023-03-30 14:55:59 +03:00
alin724 f945520020 axi_ad7606x: Fix data width and order of ADC channels 2023-03-29 21:33:33 +03:00
AndreiGrozav e883f6ecd6 adi_xilinx_device_info_enc: Enlarge detection
Add detection scenario for xazu*, xczu*, xqzu* and ultrascale+ packages.
2023-03-29 16:44:25 +03:00
laurent-19 2ae09c9808 Check guidelines. Remove redundancies
* Removed empty/commented lines
 * Regenerated Makefiles
 * Removed redundancies adc channels data width
 * Set data width 32-bit: max resolution and CRC header

Signed-off-by: laurent-19 <laurentiu.popa@analog.com>
2023-03-29 15:08:07 +03:00
Sergiu Arpadi 445cca61ef SPI Engine: Update spi_engine.tcl
The SPI Engine cores were named directly inside the script and this
would mean that for multiple SPI Engine instances IPs with the same
name would appear. These updates will introduce the hierarchy name
into the name given to the cores and will therefore allow for
multiple instances of SPI Engine to be added to the same Xilinx
project.

Projects which use spi_engine.tcl will be updated to account for
these changes.
2023-03-29 15:08:07 +03:00
laurent-19 83284107a2 library/axi_pwm_gen: Assign correct reg value to offset_0
Signed-off-by: laurent-19 <laurentiu.popa@analog.com>
2023-03-22 17:58:18 +02:00
PopPaul2021 e94df1d7da library/axi_ad7768: Data valid signal updates
If the sampling clock is lower than dclk*number_of_active_lines*32 the interface should wait for the next adc_ready signal to reset the counter.
The adc_valid_p signal should be set high just for a clock period after the sample was captured.
2023-03-01 15:52:05 +02:00
Jem Geronimo 2db944396f
axi_pwm_gen: add: intel support (#1080)
Signed-off-by: Jem Geronimo <johnerasmusmari.geronimo@analog.com>
2023-02-07 18:27:04 +08:00
Istvan-Zsolt Szekely 15e9c65c83 library/common/util_pulse_gen: Fix for unupdateable registers
- Fixed an issue where if Pulse Period is set to 0, the load_config won't work

Signed-off-by: Istvan-Zsolt Szekely <istvan.szekely@analog.com>
2023-02-02 11:33:08 +02:00
Iulia Moldovan db94628cc6 library & projects: Update Makefiles
Signed-off-by: Iulia Moldovan <Iulia.Moldovan@analog.com>
2023-01-27 11:54:05 +02:00
Iulia Moldovan a88215abc1 axi_adrv9001/intel: Add dummy parameter IODELAY_ENABLE in adrv9001_rx
- Issue introduced by commit 173f4a83d4
 - When IODELAY_ENABLE was inserted in axi_adrv9001_if for adrv9001_rx (Xilinx instance),
   for Intel instance (intel/adrv9001_rx.v) was omitted and caused a build error for
   adrv9001/a10soc

Signed-off-by: Iulia Moldovan <Iulia.Moldovan@analog.com>
2023-01-18 14:52:30 +02:00
alin724 cd448ea0d0 axi_ad7606x: Initial commit 2023-01-12 17:38:14 +02:00
AndreiGrozav 22fbb05256 Update IPs based on up_adc_common changes 2023-01-12 13:09:35 +02:00
alin724 8ad959c16f up_adc_common: Update custom RD/WR mechanism 2023-01-12 13:09:35 +02:00
Filip Gherman 4257a47b7a intel/adi_jesd204: Enable master clock generation block for S10 H-Tile 2023-01-10 13:07:04 +02:00
Iulia Moldovan 45346b1957 library: Cosmetic changes for modules that use ad_serdes_*
Edited in:
 * axi_ad9122
 * axi_ad9434
 * axi_ad9684
 * axi_ad9739a
 * axi_ad9783
 * axi_adrv9001
 * ad_serdes_clk
 * ad_serdes_in
 * ad_serdes_out

Signed-off-by: Iulia Moldovan <Iulia.Moldovan@analog.com>
2022-12-15 14:22:40 +02:00
Iulia Moldovan 173f4a83d4 ad_serdes: Add features and update their instances in /library
- ad_serdes_in:
  * Removed unused ports: loaden, phase, locked
  * Added IODELAY_ENABLE is set to be by default 1
  * Added conditional instantiation (using IODELAY_ENABLE) to IDELAY modules
  * Added conditional instantiation (using IODELAY_CTRL_ENABLED) to IDELAYCTRL module, based on IODELAY_ENABLE

- library: Update ad_serdes_in instances: add IODELAY_ENABLE
   * Edited in:
     * axi_ad9434
     * axi_ad9684
     * axi_adrv9001

- ad_serdes_out:
  * Removed unused port: loaden

- library: Update ad_serdes_out instances
   * Edited in:
     * axi_ad9122
     * axi_ad9739a
     * axi_ad9783
     * axi_adrv9001

- ad_serdes_clk:
  * Remove unused ports: loaden, phase

- library: Update ad_serdes_clk instances
   * Edited in:
     * axi_ad9122
     * axi_ad9434
     * axi_ad9684

Signed-off-by: Iulia Moldovan <Iulia.Moldovan@analog.com>
2022-12-15 14:22:40 +02:00
Ionut Podgoreanu ef278e1c88 library/axi_tdd: Add generic TDD engine
Replaced the existing axi_tdd with the new version
* Added DEFAULT_POLARITY synth parameter and RO register
* Added TDD_STATUS register
* Added TDD_SYNC_RST feature
* Used the asy_ prefix for signals which are not synced
* Added logic to force the state from ARMED to RUNNING when startup_delay=0
* Added feature to finish the burst when the module is disabled before its completion

Signed-off-by: Ionut Podgoreanu <ionut.podgoreanu@analog.com>
2022-12-13 16:26:02 +02:00
Ionut Podgoreanu 7faefab1be library/scripts: Add SV support for Intel boards
Signed-off-by: Ionut Podgoreanu <ionut.podgoreanu@analog.com>
2022-12-13 16:26:02 +02:00
PopPaul2021 eb663876d7 axi_ad7768: modified adc_format values and crc_err flag has to be RW1C 2022-11-15 15:43:46 +02:00
Filip Gherman cef4adb81d axi_dmac: Add suport for 64 bit address width
New improvements for the ADI DMAC IP:
1)The capability to manually overwrite the DMA_AXI_ADDR_WIDTH(from GUI or from tcl)
2)DMA_AXI_ADDR_WIDTH attribute is now visible in the Vivado GUI:
-"Auto mode": Automatically calculated by the core tcl files based on the existing attached address segments.
-"Manual mode": Specify the desired dma_width between 32-64 bits.
3)Added two new debug registers that return higher part of the current source/destination address.

Signed-off-by: Filip Gherman <Filip.Gherman@analog.com>
2022-10-18 16:59:18 +03:00
alin724 28ace647d1 up_adc_common: Update IPs and adi_regmap_adc definition file to latest up_adc_common module 2022-10-05 14:56:36 +03:00
alin724 5008999bea up_adc_common: Add register data reading/writing functionality 2022-10-05 14:56:36 +03:00
alin724 775a23ebf2 up_adc_channel: Update IPs and adi_regmap_adc definition file to latest up_adc_channel module 2022-10-05 14:27:51 +03:00
alin724 045327c8db common/up_adc_channel: Add raw data reading functionality 2022-10-05 14:27:51 +03:00
stefan.raus 19c76d1d4f run_tb.sh:don't run xsim if previous commands fail
If 'xvlog' or 'xelab' xilinx commands are failing, exit from
run_tb.sh script without trying to run simulation.

Signed-off-by: stefan.raus <stefan.raus@analog.com>
2022-09-28 14:25:21 +03:00
PopPaul2021 8960652c5a
library/jesd204/ad_ip_jesd204_tpl_adc: Added support for PN7 and PN15 (#1019) 2022-09-28 13:07:36 +03:00
stefan.raus 88f48cba61 library/scripts/library.mk: clean files form tb
Update clean command to delete also files generated by simulation,
from 'tb' folders, covering cases for Xsim and ModelSim simulators.

Signed-off-by: stefan.raus <stefan.raus@analog.com>
2022-09-26 13:09:21 +03:00
Iulia Moldovan f3f4686759 axi_ltc2387: Update up_adc_common and up_adc_channel instances
* Cosmetic changes also

Signed-off-by: Iulia Moldovan <iulia.moldovan@analog.com>
2022-09-21 09:42:40 +03:00
Iulia Moldovan bc94402b91 axi_ltc2387: Make adc_valid to represent the current sample
* Before, adc_valid was for the previous sample. This said that
   at the second rising edge of clk_gate - the first sample is valid,
   which is not true

 * Alongside with the software issue that will be solved, these fixes
   will make the first 2 samples to be with valid data, otherwise the
   user has to always keep in mind that the first 2 ones are invalid

Signed-off-by: Iulia Moldovan <iulia.moldovan@analog.com>
2022-09-21 09:42:40 +03:00
Laszlo Nagy 8905147698 common/tb/ad_pack_tb: Add non random scenario as first test for easier debug 2022-08-25 12:35:59 +03:00
Laszlo Nagy ee3af4c9c6 axi_jesd204: Cleanup unused parameter 2022-08-25 12:35:42 +03:00
Laszlo Nagy a1d31b4913 axi_jesd204_rx/jesd204_up_rx: Set buffer delay in beats of device clock 2022-08-25 12:35:42 +03:00
Ionut Podgoreanu 5c86c15ff3 library/jesd204: Add support for a gearbox ratio in which the TPL width is smaller than the PHY interface 2022-08-25 12:35:42 +03:00
Ionut Podgoreanu 567be16bf6 library/jesd204: Update the script which computes the TPL width to be able to assign custom values 2022-08-25 12:35:42 +03:00
PopPaul2021 cc18f90579
Added axi_ad7768 IP Core (#989)
* projects/ad7768evb: Initial commit with axi_ad7768 IP

* library/axi_ad7768: Initial commit for AD7768/AD7768-4
2022-08-24 16:57:14 +03:00
LIacob106 a824bbfdbe library/scripts/adi_ip_xilinx.tcl: remove duplicate adi_env.tcl source
Signed-off-by: LIacob106 <liviu.iacob@analog.com>
2022-08-23 17:55:27 +03:00
Iulia Moldovan e02d31cdfd scripts: Set required Vivado version only in adi_env.tcl
Signed-off-by: Iulia Moldovan <iulia.moldovan@analog.com>
2022-08-18 15:41:58 +03:00
Iulia Moldovan dde37124a4 scripts: Update Vivado version to 2021.2
Signed-off-by: Iulia Moldovan <iulia.moldovan@analog.com>
2022-08-18 15:41:58 +03:00
Ionut Podgoreanu 214cf5896e library/common: Enable automatic logging of simulation output 2022-08-10 12:00:15 +03:00
Ionut Podgoreanu 79579f65df library/common: Update the packing IPs to be more generic 2022-08-10 12:00:15 +03:00
PopPaul2021 0595f93452
AD777x support for ZedBoard and DE10Nano (#937)
* library/common: Ad adc_status_header, adc_crc_err and adc_crc_enable.

* library/axi_ad777x: Initial commit for Xilinx and Intel

* projects/ad777x_ardz: Initial commit for ZedBoard and DE10Nano
2022-08-10 11:29:05 +03:00
Laszlo Nagy ab29f21f7a axi_ltc2387: Update data formatter instance to use bits instead of octets 2022-08-08 14:22:24 +03:00
Laszlo Nagy d8a6e81c7e jesd204/ad_ip_jesd204_tpl_adc: Fix data formater for N'=12 if DMA interface is also 12 2022-08-08 14:22:24 +03:00
Iacob_Liviu 482f0489a3 scripts: Merge adi_env.tcl into a single file
Move the new adi_env.tcl file from hdl/projects/scripts into hdl/scrips
2022-08-08 13:52:54 +03:00
Filip Gherman 929f80cd31 library/jesd204: Updated jesd to support more lanes
Modified the maximum number of supported lanes up to 32 lanes for every JESD layer

Signed-off-by: Filip Gherman <Filip.Gherman@analog.com>
2022-08-04 13:10:53 +03:00
Laszlo Nagy 7a48f1beb9 util_do_ram: Fix Rx path for interrupted transfers
When capture length is not programmed the DMA will interrupt the
transfer once it received all the samples he was set in its descriptor,
this case must be handled by resetting the read process and returning
an end of transfer (eot) to the data offload control logic.
2022-08-04 09:45:52 +03:00
Laszlo Nagy 1d4b27ea8c util_axis_fifo_asym: Fixes for simulation
Initialization of regs was not executed in always(*) blocks since
the block is not triggered due missing inputs.
2022-08-04 09:45:52 +03:00
Laszlo Nagy 4982104982 data_offload: Fix Tx bypass
Tx path was gated by the FSM also in bypass mode. This must be avoided
since the bypass mode should be independent of the FSM.

Write to bypass fifo only when bypass is enabled
2022-08-04 09:45:52 +03:00
Laszlo Nagy bdaa0f086b data_offload: Increase bypass FIFO size 2022-08-01 12:47:26 +03:00
LIacob106 472f41ad2c ad_ip_jesd204_tpl_adc_hw.tcl: Add 14 bit option for converter resolution 2022-07-25 14:14:28 +03:00
Iulia Moldovan 0c0617d49e libraries: Update modules according to guideline
* Added header license for the files that didn't have
* Modified parentheses
* Removed extra spaces at the end of lines
* Fixed parameters list to be each parameter on its line
* Deleted lines after endmodule and consecutive empty lines
* Fixed indentation

Signed-off-by: Iulia Moldovan <iulia.moldovan@analog.com>
2022-06-28 18:06:56 +03:00
Adrian Costina 9357b0c987 axi_ltc2387: Intial commit 2022-05-18 18:23:38 +03:00
Benjamin Menkuec 56a65b717c mark axi_gpreg.v as systemverilog, otherwise it gives an error with vivado 2022.1 2022-05-17 21:13:11 +03:00
Mathias Tausen cd04141ffd axi_dmac: Add parameter controlling AWCACHE
On architectures with ports that support cache coherency, the AWCACHE
signal must be set to indicate that transactions are cached. This patch
adds a parameter allowing AWCACHE to be set on an AXI4 destination port.
2022-05-10 11:50:55 +03:00
Filip Gherman 302e59e109 data_offload_constr.ttcl: Fix false_paths for i_sync_src_transfer_length registers 2022-05-10 09:46:03 +03:00
Ionut Podgoreanu faf5f90299 library/axi_dmac: Add the BYTES_PER_BURST_WIDTH interface parameter in INTERFACE_DESCRIPTION 2022-05-06 12:32:41 +03:00
PopPaul2021 619e8043d0
Adaq8092 on ZedBoard LVDS output mode (#921)
* common/up_adc_common: Add adc_custom_control register

* library/axi_adaq8092: Initial commit

* projects/adaq8092_fmc: Initial commit for ZedBoard
2022-04-28 15:39:59 +03:00
Laszlo Nagy 97b92565b2 Makefile: Replace util_fifo2axi_bridge with util_hbm 2022-04-28 14:31:32 +03:00
Laszlo Nagy 8399301c6a util_fifo2axi_bridge: Deprecate module, replaced by util_hbm 2022-04-28 14:31:32 +03:00
Laszlo Nagy c3ae609bc8 data_offload: Refactor core
Deprecate unused parameters.

Change to MEM_SIZE_LOG2, to support only power of 2 storage sizes for
now. However in the future we might want to add support for non pow2
sizes so register map is not changed.

Change transfer length to -1 value to spare logic.

Change FIFO interface to AXIS to have backpressure, this allows the
implementation of data movement logic in the storage unit and let the
FSM handle high level control an synchronization and control the storage
unit through a control interface.

Refactor FSM to have preparation states where slow storages can be
configured and started ahead of the data handling.

Make bypasss FIFO optional since in some cases causes timing failures
due the missing output register of the memory. This can be targeted in
a later commit.

Hook up underflow/overflow to regmap useful in case of external memory
where rate drops due misconfiguration can be detected.

Cleanup for verilator.

Scripting:
Add HBM and DDR external memory support using util_hbm IP
Replace asym_block_ram with util_do_ram IP
2022-04-28 14:31:32 +03:00
Laszlo Nagy 35d32e0143 util_do_ram: Initial version
This IP replaces the ad_mem_asym module as storage element for the data
offload.
Having standard AXIS interface for data will allow
implementation of storages on UltraRAM.
2022-04-28 14:31:32 +03:00
Laszlo Nagy 3209b9d840 interfaces: Data offload control interface
Have a control interface between the data offload and storage units.
2022-04-28 14:31:32 +03:00
Laszlo Nagy 3bf7b6c80f util_hbm: Initial version
This IP serves as storage interfacing element for external memories like
HBM or DDR4 which have AXI3 or AXI4 data interfaces.

The core leverages the axi_dmac as building blocks by merging an array of
simplex DMA channels into duplex AXI channels. The core will split the
incoming data from the source AXIS interface to multiple AXI channels,
and in the read phase will merge the multiple AXI channels into a single
AXIS destination interface.
The number of duplex channels is set by syntheses parameter and must be
set with the ratio of AXIS and AXI3/4 interface.

Underflow or Overflow conditions are reported back to the data offload
through the control/status interface.

In case multiple AXI channels are used the source and destination AXIS
interfaces widths must match.
2022-04-28 14:31:32 +03:00
David Winter 6be4ea92a7 library: axi_tdd: Make synchronization stage optional
Signed-off-by: David Winter <david.winter@analog.com>
2022-04-20 10:54:53 +03:00
David Winter 73468d662b axi_tdd: Add false paths to tdd sync input
This allows the external synchronization input to be driven from
asynchronous sources like a 1 PPS signal or just signals from different
clock domains in general.

Signed-off-by: David Winter <david.winter@analog.com>
2022-04-20 10:54:53 +03:00
Iulia Moldovan 63089a7c5d library/axi_ad9361/intel: Update I/O format 2022-04-08 11:00:04 +03:00
Iulia Moldovan 7a5ecb592e library/data_offload: Remove empty module data_offload_control 2022-04-07 17:17:47 +03:00
Adrian Costina 18b5fabde0 library: Remove unused IPs 2022-04-06 14:57:37 +03:00
AndrDragomir 60be01f2eb axi_clock_monitor: Fix various issues
- Replace .xdc file
- Remove parameter dependency for wire signals
- Fix typo
- Remove unnecessary comments
- Fix signal width
2022-04-05 12:23:33 +03:00
Iulia Moldovan fe713a5e98 library/axi_dmac: Rename 2d_transfer to dmac_2d_transfer
Update the file according to HDL guideline.
Replace all occurrences of 2d_transfer with dmac_2d_transfer.
Update axi_dmac/Makefile.
2022-04-01 16:02:46 +03:00
Iulia Moldovan d9ec44657f libraries: Correct module name according to the filename 2022-04-01 16:02:46 +03:00
PopPaul2021 0d44bfb4dd
axi_hdmi_tx update for: ZedBoard, ZC706, ZC702, de10nano, ADRV9361-Z7035 (#897) 2022-03-29 16:51:21 +03:00
Adrian Costina de70157e3a xilinx/common:ad_data_out.v: Fix typo 2022-03-29 16:50:20 +03:00
AndrDragomir 204dff3b73 library: Adding axi_clock_monitor ip core 2022-03-29 10:02:42 +03:00
Adrian Costina 31c21cad7f xilinx/common: Add CLKEDGE parameter to ad_data_* module 2022-03-25 15:10:12 +02:00
Nick Pillitteri c1721e18dd account for ADI_VIVADO_IP_LIBRARY global variable when adding subcores 2022-03-24 16:29:49 +02:00
alin724 6a252ec067 util_mii_to_rmii: Fix 100 Mbps configuration functionality 2022-03-22 14:30:24 +02:00
Nick Pillitteri 084d44c978 add ability to customize Xilinx IP library version to value other than "user" from a global variable. 2022-03-17 09:43:39 +02:00
Laszlo Nagy e66c5282bc axi_adrv9001: Expose IODELAY_CTRL parameter to top level 2022-03-02 11:06:12 +02:00
Laszlo Nagy 4c7be950d1 ad_ip_jesd204_tpl_adc: Fix latency of valid signal 2022-02-16 10:27:50 +02:00
Laszlo Nagy f245448976 ad_ip_jesd204_tpl_ : Add missing dependency 2022-02-07 19:14:01 +02:00
Laszlo Nagy b5092662d5 ad_ip_jesd204_tpl_adc: Refactor external sync
- Add EXT_SYNC option
- Gate valid while in reset
2022-02-07 19:14:01 +02:00
Laszlo Nagy 8c7cca4277 common/up_adc_common: Add ext sync regs 2022-02-07 19:14:01 +02:00
Laszlo Nagy 1b06c74919 common/up_dac_common: Add manual sync request 2022-02-07 19:14:01 +02:00
Laszlo Nagy db49aa652f common/up_dac_common: Add support for explicit disarm control 2022-02-07 19:14:01 +02:00
Laszlo Nagy 4e644e4e74 jesd204/ad_ip_jesd204_tpl_dac: External sync refactor
- Expose EXT_SYNC parameter to sw
- Add external manual sync request
- Add rst to interface
2022-02-07 19:14:01 +02:00
Laszlo Nagy 1ca5abc91e common/up_xfer_cntrl: Fix transfer done timing
up_xfer_done should signalize when a previous control set is
transferred to the other clock domain and the current control set is latched.

If a bit from the up_data_cntrl changes, it should stay in that state until
the up_xfer_done asserts.
2022-02-07 19:14:01 +02:00
alin724 170ce42e3e util_mii_to_rmii: Initial commit 2022-02-03 10:23:12 +02:00
AndreiGrozav 38f3627695 ad_dds: Fix DDS start samples
When using a CLK_RATIO > 1 the first n samples(n=CLK_RATIO) after sync, are
noisy. This is because the phase accumulator data is passed to the phase to
amplitude converter, during the phase synchronization step.
2022-01-31 14:07:11 +02:00
Iulia Moldovan b26b4c00f0 ad9783: Clean-up parameters and module instances 2022-01-25 18:24:43 +02:00
Laszlo Nagy 889447e900 axi_ad9361: make IODELAYCTRL insertion optional 2022-01-25 09:50:31 +02:00
Laszlo Nagy bc8e7881f2 axi_dmac: Hook up ID
Signed-off-by: Laszlo Nagy <laszlo.nagy@analog.com>
2022-01-25 09:50:22 +02:00
Iulia Moldovan f3cf7508c8 ad9783: Update Makefile 2022-01-20 12:31:57 +02:00
LIacob106 9d94f21d89 scripts/adi_xilinx_device_info_enc.tcl: Change regex for vcu128
The regex does not match vcu128 as Ultrascale+. It matches for Ultrascale.
2022-01-12 17:32:47 +02:00
Filip Gherman 9d8097389c library/jesd204/jesd204_common/pipeline_stage.v: Initialize pipeline stage register 2022-01-12 13:43:20 +02:00
Filip Gherman 080925e8fe library/jesd204: tpl timing bug fix 2022-01-12 10:14:55 +02:00
Iulia Moldovan 08f029c757 axi_ad9783: Initial commit 2022-01-07 14:04:08 +02:00
David Winter fcd3bfd349 util_pulse_gen: Reload registers when counter is at one
This patch fixes an issue where the pulse width is only updated two
periods after the current one.

Signed-off-by: David Winter <david.winter@analog.com>
2022-01-04 15:02:05 +02:00
AndreiGrozav c2d960e029 axi_adrv9001: Add external sync support
The external sync must be synchronous to the reference clock, in order
to obtain a deterministic synchronization of the interface.
2021-12-16 15:16:30 +02:00