This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
resources:fpga:xilinx:fmc:ad9434 [09 Jan 2021 00:39] – user interwiki links Robin Getz | resources:fpga:xilinx:fmc:ad9434 [30 Oct 2023 17:47] (current) – [AD9434-FMC] Added a port for ZEDBOARD and updated the whole page. Cristian Mihai Popa | ||
---|---|---|---|
Line 2: | Line 2: | ||
====== AD9434 Native FMC Card ====== | ====== AD9434 Native FMC Card ====== | ||
- | ===== Introduction | + | ===== Overview |
- | The [[adi> | + | The [[adi> |
+ | The part operates at up to a 500 MSPS conversion rate and is optimized for outstanding dynamic performance in wideband carrier and broadband systems. | ||
+ | All necessary functions, including a sample-and-hold and voltage reference, are included on the chip to provide a complete signal conversion solution. | ||
+ | This reference design includes a data capture interface and the external DDR-DRAM interface for sample storage. It allows programming the device and | ||
+ | monitoring | ||
===== Supported Devices ===== | ===== Supported Devices ===== | ||
* [[adi> | * [[adi> | ||
- | |||
- | ===== Functional Description ====== | ||
- | |||
- | The reference design is built on a Zynq based system parameterized for linux. It consists of three functional modules, a LVDS interface, a PN monitor and a DMA interface. The LVDS interface captures and buffers data from the ADC. The data is captured using ISERDES primitives and is captured 4 samples wide at 1/4th of the ADC clock (125MHz at 500MHz ADC clock). The DMA interface then transfers the samples to the external DDR-DRAM. The capture is initiated by the software. The status of capture (overflow, over the range) are reported back to the software. | ||
- | By default, the board is configured to use the onboard clock. | ||
- | |||
===== Supported Carriers ===== | ===== Supported Carriers ===== | ||
* [[xilinx> | * [[xilinx> | ||
- | * [[xilinx> | + | * [[https:// |
- | ===== Downloads | + | ===== Block Design ====== |
+ | |||
+ | ==== Block diagram ==== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | ==== Clock scheme ==== | ||
+ | |||
+ | An external clock source can be connected to J201, but this need to be done by configuring P100. See schematic for more info. See **Board files** section below. | ||
+ | |||
+ | ==== CPU/Memory interconnects ==== | ||
+ | |||
+ | The addresses are dependent on the architecture of the FPGA, having an offset added to the base address from HDL. Check-out the tables below: | ||
+ | |||
+ | CPU: | ||
+ | |||
+ | <WRAP round 80%> | ||
+ | |< 100% 20% 18% 12% 25% 25%>| | ||
+ | ^Instance ^Zynq address ^ | ||
+ | | axi_ad9434 | 0x44A0_0000 | | ||
+ | | axi_ad9434_dma| 0x44A3_0000 | | ||
+ | </ | ||
+ | |||
+ | ==== SPI connections ==== | ||
+ | |||
+ | <WRAP round 80%> | ||
+ | |< 100% 20% 18% 12% 25% 25%>| | ||
+ | ^SPI Type ^SPI manager instance ^SPI subordinate ^CSB ^ | ||
+ | | PS | SPI 0 | AD9517 | ||
+ | | PS | SPI 0 | AD9434BCPZ | 0 | | ||
+ | </ | ||
+ | |||
+ | ==== Interrupts ==== | ||
+ | |||
+ | Below are the Programmable Logic interrupts used in this project. | ||
+ | |||
+ | <WRAP round 80%> | ||
+ | |< 100% 20% 18% 12% 25% 25%>| | ||
+ | ^Instance name ^HDL ^Linux Zynq ^Actual Zynq ^ | ||
+ | | axi_ad9783_dma | 13 | 57 | 89 | | ||
+ | </ | ||
+ | |||
+ | ===== Building the HDL projects ====== | ||
+ | |||
+ | The design is built upon ADI's generic HDL reference design framework. ADI does not distribute the bit/elf files of these projects so they must be built from the sources available | ||
+ | [[https:// | ||
+ | |||
+ | On Linux/ | ||
+ | < | ||
+ | user@analog: | ||
+ | user@analog: | ||
+ | </ | ||
+ | |||
+ | A more comprehensive build guide can be found in the [[https:// | ||
+ | |||
+ | ===== AD9434_FMC Board files ===== | ||
Board Files: | Board Files: | ||
Line 30: | Line 83: | ||
</ | </ | ||
- | {{page> | + | ==== Setup guide ===== |
- | + | ||
- | {{page> | + | |
- | + | ||
- | ===== ML605 Xilinx Reference Design (Obsolete) | + | |
- | + | ||
- | ==== Quick Start Guide ==== | + | |
- | + | ||
- | The reference design has been tested with ML605. It should be easily portable to other boards such as KC705 and VC707, only the ISERDES primitive, UCF and MHS files need to be changed. The bit file provided combines the FPGA bit file and the SDK elf files. It may be used for a quick check on the system. All you need is the hardware and a PC running a UART terminal and the programmer (IMPACT). This bit file configuration also captures the test mode outputs of ADC. | + | |
==== Required Hardware ==== | ==== Required Hardware ==== | ||
- | * ML605 board | + | * ZC706/ |
* AD9434-FMC board (the default setup uses onboard clock) | * AD9434-FMC board (the default setup uses onboard clock) | ||
+ | * SD card (at least 16gb) | ||
* Signal generator (for data) | * Signal generator (for data) | ||
+ | * 1x SMA cable to connect the signal generator to the ad9434_fmc | ||
+ | * 1x Ethernet cable | ||
==== Required Software ==== | ==== Required Software ==== | ||
- | | + | * A UART terminal (Tera Term/ |
- | | + | * IIO Oscilloscope to capture |
- | * Xilinx Chipscope Analyzer (for signal | + | |
- | ==== Running Demo (SDK) Program | + | ==== Hardware configuration |
- | To begin, connect | + | For the ZC706 to boot from the SD card, the SW11 switch should be configured like this: **0110**, from left to right(see [[https://docs.xilinx.com/v/u/en-US/ug954-zc706-eval-board-xc7z045-ap-soc|ZC706 user guide]], Device Configuration section). |
- | + | The VADJ required: 2.5V. | |
- | {{:resources: | + | |
- | Start IMPACT, and initialize | + | For ZEDBOARD place the VADJ Jumper |
- | {{:resources: | + | The ad9434_fmc should be configured this way: |
- | After patterns | + | This is and example of configuration for the AD9434-FMC-500EBZ board. In this configuration we don't need an external source of signal generator for the CLKIN |
+ | port, because it will be configured to use the internal oscillator. | ||
- | {{:resources:fpga:xilinx:fmc: | + | * Jumper P100: on pins 1 and 2 (this Jumper configures the source of clock; as it this now, it uses the internal signal generator) |
+ | * Jumper J300: on row pins 3 and 4, or PD and AGND(see jumper schematic next to it on the board) | ||
+ | * Jumper P400: on pins 5 and 6 | ||
+ | * Jumper P300: no configuration | ||
- | ==== Using the Reference Design | + | ==== First time running |
+ | |||
+ | To begin, connect the AD9434-FMC board to the FMC-LPC connector of ZC706. Connect the power source for ZC706, | ||
+ | the Ethernet cable and the USB cable for UART communication. Program the SD card with the latest image of Analog Devices | ||
+ | Kuiper Linux. Then, from projects folder, copy the **BOOT.BIN** file and the **devicetree.dtb** file in the /root folder. | ||
+ | Also, from the **zynq-common** folder copy the uImage file in the /root folder. Insert the SD card in the card | ||
+ | slot of the ZC706 and start the FPGA. Using a program for UART communication, | ||
+ | booting up the Kuiper system. After the boot, you will be able to find the ip address and other files of the system. Below, is a photo of the setup. | ||
+ | |||
+ | {{: | ||
+ | |||
+ | After finding the IP address, open IIO Oscilloscope and choose manual connection. Write **ip: | ||
+ | you should see the name of the carrier and the name of the FMC. After connecting to the ZC706, you may proceed with the testing of the board. Click on **File-> | ||
+ | you need a external signal generator. If you generate a signal with a 10MHz frequency and 100mVpp amplitude, you should get something like this: | ||
+ | |||
+ | {{: | ||
==== Functional Description ==== | ==== Functional Description ==== | ||
- | The reference design is built on a microblaze based system parameterized for linux. It consists of three functional modules, a LVDS interface, a PN monitor and a DMA interface. The LVDS interface captures and buffers data from the ADC. The data is captured using ISERDES primitives and is captured 4 samples wide at 1/4th of the ADC clock (125MHz at 500MHz ADC clock). The DMA interface then transfers the samples to the external DDR-DRAM. The capture is initiated by the software. The status of capture (overflow, over the range) are reported back to the software. | + | The reference design is built on a microblaze based system parameterized for Linux. It consists of three functional modules, a LVDS interface, a PN monitor and a DMA interface. The LVDS interface captures and buffers data from the ADC. The data is captured using ISERDES primitives and is captured 4 samples wide at 1/4th of the ADC clock (125MHz at 500MHz ADC clock). The DMA interface then transfers the samples to the external DDR-DRAM. The capture is initiated by the software. The status of capture (overflow, over the range) are reported back to the software. |
==== Registers ==== | ==== Registers ==== | ||
- | Refer to the regmap.txt file inside the pcores directory. | + | Refer to the regmap.txt file inside the pcores directory |
==== Clock Selection ==== | ==== Clock Selection ==== | ||
- | The board provides different | + | The board provides different possible clock path for clocking the AD9434(some modification may be necessary). |
- | ==== Downloads | + | ===== Resources ===== |
- | FPGA Referece Designs: | + | |
- | <WRAP round download 80%> | + | |
- | + | ||
- | * **ML605 (Source files):** {{: | + | |
- | * **ML605 (Bit/SW files):** {{: | + | |
+ | Hardware related: | ||
+ | <WRAP 80%> | ||
+ | * [[adi> | ||
+ | * [[adi> | ||
</ | </ | ||
- | Only Xilinx coregen xco files are provided with the reference design. You must regenerate the IP core files using this file. See [[/ | + | HDL related: |
- | ==== Tar File Contents ==== | + | [[https:// |
- | The tar file contains, in most cases, the following files and/or directories. To rebuild the reference design simply double click the XMP file and run the tool. To build SDK, select a workspace and use the C file to build the elf file. Please refer to [[xilinx> | + | <WRAP 80%> |
+ | |< 100% 20% 18% 12% 25% 25%>| | ||
+ | ^IP name ^Source code link ^Documentation link ^ | ||
+ | | axi_ad9434 | [[https://github.com/ | ||
+ | | axi_dmac | [[https:// | ||
+ | | axi_clkgen | [[https://github.com/ | ||
+ | | axi_hdmi_tx | [[https:// | ||
+ | | axi_spdif_tx | [[https:// | ||
+ | | axi_sysid | [[https:// | ||
+ | | sysid_rom | [[https:// | ||
+ | </ | ||
- | | license.txt | ADI license & copyright information. | | + | Software related: |
- | | system.mhs | MHS file. | | + | <WRAP 80%> |
- | | system.xmp | XMP file (use this file to build the reference design). | | + | * [[https://github.com/ |
- | | data/ | UCF file and/or DDR MIG project files. | | + | * [[https://github.com/analogdevicesinc/linux/blob/9197af5e6cfe0f804df581581348cbb81e5f0190/ |
- | | docs/ | Documentation files (Please note that this wiki page is the documentation for the reference design). | | + | </ |
- | | sw/ | Software (Xilinx SDK) & bit file(s). | | + | |
- | | ../cf_lib/edk/pcores/* | The pcores directory. | | + | |