All of the previous work was conducted with a 10MSPS clock and ADC. The next step was to increase to 60MSPS. The only changes required were updates to the DDC filters. Due to the increased decimation some of the internal paths experienced bit growth and needed to be widened. The internal test pattern generation capability within the fpga image allowed this to be worked through all of these changes.
Everything worked fine until an actual signal was applied. At that point I had problems with digital values being read twice. This shifts the IQ values by one every now and then which destroys the quadrature relationship. The transfer rate across the IDC was 100k samples per second with each sample being 16 bits. The transfer rate (or down converted bandwidth) was dropped below 50kSPS which still did not fully rectify the problem. Based on numerous experiments and trial and error I think the single ground pin (looking seen in schematics in this post) is causing problems with the SPI port voltage level sensing. Using a single ground is a bit much to ask, I’m using the FPGA board in ways it was not designed for. I believe that as the digital pins begin switching (changing ADC values) the current required through the ground pin increases. A small residual resistance on the ground return with a large current can push the ground reference at the FPGA up. This results in a lower voltage across the SPI digital inputs (i.e. between the IO pin input from the SPI clock or slave select to the FPGA ground reference value). The final confirmation of this was getting error free results with the internally generated test pattern with an open analog input but the same setup began generating errors when a simple wire antenna was attached to the input. I contemplated using a differential converter at the SPI headers but decided against it as I suspected additional problems at this sample rate and a single ground through 0.1 headers.
This project was a great non-trivial introduction to VHDL and could be broken up into purchased pieces (XuLA2) and simple unique analog designs (ADC board). At this point I'm going to have to contemplate my options for alternate approaches.
Prj141 Digital Down Converter
Prj141 Digital Interface
Prj141 Filter Design
Prj141 Filter Evaluation
Prj141 LX9 Utilization
Prj141 Higher Sampling Rates