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
Previous revision
Next revision Both sides next revision
ee:hydrophones:start [2018/01/28 16:06]
Ryan Summers [Analog Design]
ee:hydrophones:start [2018/01/28 16:30]
Ryan Summers [FPGA Design]
Line 38: Line 38:
 The analog signal goes through a five-stage amplification and filtering process. First, the signal is sent through two gain stages, each of which apply an adjustable gain to the signal. After the signal is gained into a reasonable voltage range, it is passed through a low-pass filter and then a high-pass filter to result in a bandpass filter of the signal. The analog signal goes through a five-stage amplification and filtering process. First, the signal is sent through two gain stages, each of which apply an adjustable gain to the signal. After the signal is gained into a reasonable voltage range, it is passed through a low-pass filter and then a high-pass filter to result in a bandpass filter of the signal.
  
-Once the signal has been filtered and gained, it is preprocessed for the ADC. In order to acquire more accurate measurements,​ the ADC requires signals to be differential. The analog signals are therefore put through a single-ended to differential converter. Immediately before the signals enter the ADC, there is a low-pass anti-aliasing filtering (Low-pass differential RC).+Once the signal has been filtered and gained, it is preprocessed for the ADC. In order to acquire more accurate measurements,​ the ADC requires signals to be differential. The analog signals are therefore put through a single-ended to differential converter ​and biased around a DC voltage supplied by the ADC. Immediately before the signals enter the ADC, there is a low-pass anti-aliasing filtering (Low-pass differential RC).
  
  
 ==== 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.