User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision Both sides next revision
ee:hydrophones:start [2018/01/28 16:11]
Ryan Summers [Analog Design]
ee:hydrophones:start [2018/01/28 16:30]
Ryan Summers [FPGA Design]
Line 42: Line 42:
  
 ==== FPGA Design ==== ==== FPGA Design ====
-The FPGA has a number of parts to it, but its ultimate goal is to take samples sent from the ADC and transfer them into the processor'​s memory. Immediately,​ the differential signals are passed to the FPGA IO buffers to convert them to single-ended. After the single-ended conversion, a custom Verilog block was written that takes in the ADC's clock and data signals to properly digitize the data. It then provides this data on an AXI-Stream interface. Because ADC reader block is driven off an external clock and the rest of the FPGA is clocked internally, care must be taken to cross the clock boundaries to prevent metastability. The Xilinx FIFO generator was used, as it generates an asynchronous read-write FIFO that can be used for synchronizing data with the internal FPGA clock.+{{ :​ee:​hydrophones:​fpga-hydrozynq.jpg |}} 
 + 
 +The FPGA has a number of parts to it, but its ultimate goal is to take samples sent from the ADC and transfer them into the processor'​s memory. Immediately,​ the differential signals are passed to the FPGA IO buffers to convert them to single-ended. After the single-ended conversion, a custom Verilog block was written that takes in the ADC's clock and data signals to properly digitize the data. It then provides this data on an [[https://​www.xilinx.com/​support/​documentation/​ip_documentation/​ug761_axi_reference_guide.pdf|AXI-Stream]] interface. Because ADC reader block is driven off an external clock and the rest of the FPGA is clocked internally, care must be taken to cross the clock boundaries to prevent metastability. The Xilinx FIFO generator was used, as it generates an asynchronous read-write FIFO that can be used for synchronizing data with the internal FPGA clock.
  
 After synchronization,​ the AXI stream is connected to a Stream-To-Multi-Master Direct Memory Access (S2MM DMA) engine. The DMA engine is a software-programmable peripheral that will asynchronously write the ADC samples into the processor'​s RAM. After synchronization,​ the AXI stream is connected to a Stream-To-Multi-Master Direct Memory Access (S2MM DMA) engine. The DMA engine is a software-programmable peripheral that will asynchronously write the ADC samples into the processor'​s RAM.
  
-There are a few other features implemented in the FPGA fabric, including the XSystemMonitor,​ which monitors the FPGA temperature. There is also a SPI module implemented that is used to program the ADC internal registers and verify its functionality. In Rev C of the HydroZynq, the manually adjustable potentiometers have been replaced with SPI-programmable potentiometers,​ which allows the analog gain of the signal to be controlled digitally.+There are a few other features implemented in the FPGA fabric, including the XSystemMonitor,​ which monitors the FPGA temperature, and a SPI module implemented that is used to program the ADC internal registers and verify its functionality. In Rev C of the HydroZynq, the manually adjustable potentiometers have been replaced with SPI-programmable potentiometers,​ which allows the analog gain of the signal to be controlled digitally.