Forum Discussion

Altera_Forum's avatar
Altera_Forum
Icon for Honored Contributor rankHonored Contributor
14 years ago

Newbie - Where to put my Time/Energy

Hi All,

I am new to FPGAs with a strong background in embedded micros. I have a new project where an FPGA would be a good fit. I have started into the FPGA world having:

Installed Quartus and developed the 4-bit counter/LED blinker, no problem. (DE0 board)

Studying Verilog.

The application will be reading parallel output from a couple of high speed ADCs and processing that data into a serial stream. It will incorporate a UART for handling commands and to provide a debug output.

I would like to start with the UART. I believe that I will require the NIOS processor to do computational manipulation of the data.

There are many paths that can take all my time like studying the avalon interface specifications etc. I have to be efficient with my time.

I am looking for advice on what would be a reasonable path to take to to get going to avoid heading down dead ends or "rabbit holes".

Thanks

Rich

13 Replies

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    The data will be IQ data from an RF front end and I am not sure what processing will be required. The ADCs will run between 15-20 MSPS.

    --- Quote End ---

    This is quite 'slow' compared to what FPGAs can achieve. If you need multiple ADCs, with lots of bits, then you might want to consider using a JEDEC JESD204 ADC (NXP and TI have them). They multiplex the outputs onto LVDS or SERDES signals. You need a higher I/O rate FPGA, but you have less board routing and signal switching issues. The DE0 can be used for parallel output devices to start with.

    --- Quote Start ---

    This is good to know. I think I will try to get the UART working first without the NIOS uC. How would reccommend proceeding? SOPC tool to try to incorporate the UART with the JTAG-to-Avalon-MM bridge? Does that even make sense?

    --- Quote End ---

    The components will both use the JTAG interface. I have not used the JTAG-UART, but you'd talk to that with the nios2-terminal program. The Avalon-MM master would be communicated with using SystemConsole. The Altera tools are bad when it comes to 'sharing' the JTAG interface, so you might run into issues. I'd say go for it ... if you have trouble, come back here and complain, and we can see what to try next.

    Alternatively, you can talk to an FTDI UART (or another USB-to-Serial device, with the RS232 translators removed) via the DE0 I/O pins, and use the Avalon-MM master to talk to that. The FTDI FT245 module is about $20 on Digikey. That has a parallel output to the FPGA, but its pretty simple to interface to.

    Cheers,

    Dave
  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    How fast (clock rate) and what signal processing are you doing with the data?

    Dave

    --- Quote End ---

    That is to be determined. The data will be IQ data from an RF front end and I am not sure what processing will be required. The ADCs will run between 15-20 MSPS.

    --- Quote Start ---

    Since you have a background in micros, this is probably a good place to start. Though you do not need to have a NIOS II processor as a master. The JTAG-to-Avalon-MM bridge allows you to read and write from an FPGA design via the USB interface.

    Dave

    --- Quote End ---

    This is good to know. I think I will try to get the UART working first without the NIOS uC. How would reccommend proceeding? SOPC tool to try to incorporate the UART with the JTAG-to-Avalon-MM bridge? Does that even make sense?

    --- Quote Start ---

    Learn how to use Modelsim, and learn how to write testbenches.

    You should use Modelsim and a testbench to check that each of the components you design work, and then integrate them into a larger system and check that they work there. The Avalon master can be your NIOS core, or it can be the Avalon-MM BFM (bus functional model - a simulation only component).

    Dave

    --- Quote End ---

    OK, I have work to do. I am flying solo on this project and it is way overwhelming.

    Thank you!

    Rich

    --- Quote Start ---

    If you get stuck, just ask questions.

    Cheers,

    Dave

    --- Quote End ---

  • Altera_Forum's avatar
    Altera_Forum
    Icon for Honored Contributor rankHonored Contributor

    --- Quote Start ---

    The application will be reading parallel output from a couple of high speed ADCs and processing that data into a serial stream.

    --- Quote End ---

    How fast (clock rate) and what signal processing are you doing with the data?

    --- Quote Start ---

    I would like to start with the UART. I believe that I will require the NIOS processor to do computational manipulation of the data.

    --- Quote End ---

    Since you have a background in micros, this is probably a good place to start. Though you do not need to have a NIOS II processor as a master. The JTAG-to-Avalon-MM bridge allows you to read and write from an FPGA design via the USB interface.

    --- Quote Start ---

    There are many paths that can take all my time like studying the avalon interface specifications etc. I have to be efficient with my time.

    I am looking for advice on what would be a reasonable path to take to to get going to avoid heading down dead ends or "rabbit holes".

    --- Quote End ---

    Learn how to use Modelsim, and learn how to write testbenches.

    You should use Modelsim and a testbench to check that each of the components you design work, and then integrate them into a larger system and check that they work there. The Avalon master can be your NIOS core, or it can be the Avalon-MM BFM (bus functional model - a simulation only component).

    If you get stuck, just ask questions.

    Cheers,

    Dave