Showing results for 
Search instead for 
Did you mean: 
Honored Contributor I

Compiled SOF file doesn't work with Linux reference design for 3c120

I am working with the Cyclone III Development Board (EP3c120) and the reference design found at This is the design that should run a matching version of Linux built for the Nios II. I am hoping to find someone who has been able to build Linux and build an SOF file and get them working together. 


I successfully installed Quartus 9.0 on Ubuntu Linux 9.10. It seems to be working okay. 


I was able to get the pre-built Linux to work with the pre-built SOF file. I brought up the terminal and saw the Linux prompt in all its glory. 


So, then I wanted to build my own SOF file. So, I generated the system in SOPC Builder using the existing settings in the reference design's Quartus archive. So, basically, I hit the "Generate System" button. Then, I ran the compiler. After about 25 minutes, I had an my own SOF file. However, when I ran it, it did not work at all. I got a " Pausing target processor: not responding" message as shown in the log below. 


~/wrlinux3/niosII_cycloneIII_3c120/default $ nios2-configure-sof dave.sofSearching for SOF file: in . dave.sof Info: ******************************************************************* Info: Running Quartus II Programmer Info: Command: quartus_pgm --no_banner --mode=jtag -o p;./dave.sof Info: Using programming cable "USB-Blaster " Info: Started Programmer operation at Fri Nov 20 04:21:42 2009 Info: Configuring device index 1 Info: Device 1 contains JTAG ID code 0x020F70DD Info: Configuration succeeded -- 1 device(s) configured Info: Successfully performed operation(s) Info: Ended Programmer operation at Fri Nov 20 04:21:48 2009 Info: Quartus II Programmer was successful. 0 errors, 0 warnings Info: Peak virtual memory: 61 megabytes Info: Processing ended: Fri Nov 20 04:21:48 2009 Info: Elapsed time: 00:00:13 Info: Total CPU time (on all processors): 00:00:07 ~/wrlinux3/niosII_cycloneIII_3c120/default $ ~/wrlinux3/niosII_cycloneIII_3c120/default $ nios2-download -g /home/dave/nios/Nios2-Linux/Linux_source/uclinux-dist/images/linux.initramfs.gz Using cable "USB-Blaster ", device 1, instance 0x00 Pausing target processor: not responding. Resetting and trying again: FAILED Leaving target processor paused ~/wrlinux3/niosII_cycloneIII_3c120/default $ When I downloaded the pre-built SOF, the output from nios2-configure-sof looked the same as mine. However, when I downloaded the Linux image, it ran normally and I could connect using 'nios2-terminal'. 


My SOF was almost the exact size as the pre-built version that came with the Quartus archive for the reference design, but it was about 11 bytes bigger out of about 3.5 million. I did a quick 'hexdiff' on the two SOF files and found that the header for the one I created very clearly said that it used Quartus Compiler 8.1, whereas the pre-built said it used Quartus Compiler version 9.0. 


As I said before, I installed Quartus 9.0 so I assume that means I should be using the 9.0 version of the compiler. My questions are many: 


1. Why does Quartus 9.0 for Linux generate SOF files that say they used compiler version 8.1? 


2. Is there an obvious step I missed in Quartus to compile the SOF? (I am 100% noob here). 


3. Has anyone successfully compiled the reference design and built Linux? If so, did you use Quartus for Linux and which version? 


Thanks for any help on any of these. 


Dave ...
0 Kudos
1 Reply
Honored Contributor I

I realize now that I am not doing any schematic capture in my tool flow. I was hoping the reference design would have some of this done for me.  


Has anyone worked with this reference design?  


The documenation for it is very software focused and refers you to the Quartus docs for all of the real hardware work. 


Can anyone with experience point me in the right direction?  


I've written a lot of software and some verilog, but this whole FPGA thing is new to me. Perhaps, I just need to do a couple Quartus tutorials. 



Dave ...