| ||Core ID should be unique for each ad7768 IP in the system||0|
| ||Select number of ADC channels. 8 for AD7768 and 4 for AD7768-4||8|
| ||ADC data interface signals|
| || ||input clock|
| || ||input ready signal|
| || ||serial input data|
| || ||syncronization input signal|
| || ||syncronization output signal|
| || ||Data overflow input, from the DMA|
| ||AXI Slave Memory Map interface|
| ||FIFO interface for connecting to the DMA|
| || ||This is the clock domain that most of the modules of the core run on.|
| || ||Output reset, on the adc_clk domain|
| || ||Set when the channel is enabled, activated by software|
| || ||Set when valid data is available on the bus|
| || ||Parallel output data|
| || ||Serial output data|
| || ||Start of transfer flag for serial data|
| || ||Channels CRC mismatch flags register|
The top module, axi_ad7768, instantiates:
The ad7768 interface module has as input the serial data lines, the ready_in signal and the interface clock. Data is deserialized according to the number of active lanes. The interface module also implements a parallel CRC check algorithm.
The data from the interface module is processed by the adc channel module.
Up_adc_common module implements the ADC COMMON register map, allowing for basic monitoring and control of the ADC.
Up_adc_channel module implements the ADC CHANNEL register map, allowing for basic monitoring and control of the ADC's channel.
The control of the ad7768 chip is done through a SPI interface, which is needed at system level.
The ADC interface signals must be connected directly to the top file of the design, as IO primitives are part of the IP.
The example design uses a DMA to move the data from the output of the IP to memory.
If the data needs to be processed in HDL before moved to the memory, it can be done at the output of the IP (at system level) or inside of the adc interface module (at IP level).
The example design uses a processor to program all the registers. If no processor is available in your system, you can create your own IP starting from the interface module.
Linux is supported also using ADI Linux repository