For my research project, the platform I’m using is Altera’s Cyclone IV. It’s only been a month since I have started working with it and it has been I must say, quite challenging to get the whole idea of the design process and how the different softwares work with each other. The resources available on Altera’s website is extremely useful and informative. However, it took me a while to understand how one design aspect developed in one tool fits in with another developed in a another tool.
In this post I will try and break down the steps involved in general.
Design Steps to follow:
- Qsys Design: Qsys is a tool using which you can add different peripherals (SDRAM, Nios II etc) and interconnect them to design your very own custom system. Once your ‘System Contents’ are complete, go to the ‘Generation’ tab and hit ‘Generate’. This will generate a long list of files which will be used later.
- Hardware Design: If you are using any external peripherals like LCD or SDRAM then you would need to define how the different components in your Qsys design will connect to the different pins on the chip. To do this, firstly make sure the ‘Pin Assignments’ file is imported. In the Quartus window, go to Assignments->Import Assignments->Select the Pin Assignments file. (Note:The pin assignments file is available in the CD that comes with Altera board.) When you are defining the entity in the VHDL design make sure you use the exact pin names enlisted in the ‘Pin Assignment’ file. To see the pin description, go to Assignments->Assignment Editor. Once the entity is defined, when defining the architecture, make sure you include the VHDL code generated from the Qsys design. (In Qsys window, go to HDL example tab and copy paste that code into your top level VHDL design.) Once the design is complete, Compile your project.
- Using Quartus Programmer: After compilation of your project, now you need to download this design onto your Altera board. To do this, in the Quartus window, go to Tools->Programmer. In the The first step would be to complete the Hardware Setup. Make sure your development board is powered on and connected to your PC via the USB-Blaster. (The mode I used was JTAG as I included JTAG UART in my Qsys design). You could Auto-Detect or choose Add File. When you click on Add File, go to your_project_folder->output_files->project_name.sof .Then you simply hit Start and wait till the Progress reaches 100%.
- Software Design using Nios SBT for Eclipse: Once the file is downloaded onto the board it is time to move onto the Eclipse tool that you will find again, under the Tools tab. When you start working with SBT, we need to relate our files built here with the ones built in the Quartus project. The .sopc file does exactly that. Therefore in the SBT window, select File->New->Nios II Application and BSP from Template. In the new window that opens, select the sopc file from your project folder. Enter the project name, Hello World as project template (just to keep things simple) and Finish. It will generate a BSP settings file when you Finish. Post this step you will be back on the main Eclipse window after which you can start writing your program in the hello_world.c file. Try simple printf statements for testing. When you want to Compile this program make sure you compile using the Nios II Application which can be setup in Run Configuration.
That’s it! You are done. These are the general steps involved. Next few posts will explain each step in detail and I will take up a simple example that you can try too.
By the time you complete these simple design steps, you may come across many issues/errors. If you do, please ask in the comments and I will do my best to help out. I’ve had my own share of errors and it took me a while to get rid of many.
If you have any suggestions to make please feel free to do that too 🙂