Jeremy W. Langston

Personal Website

DE2-70 SOPC Tutorial Introduction – A list of problems…and solutions!

I recently purchased a Terasic DE2-70 Cyclone II development board.  The makers have two prices:  $599 commercial and $349 academic.  If you’re a college student, the academic price is still too much.  After I got a job, made some money, and saved up, I sent the Taiwanese company Terasic a little email.  I told them I recently graduated and wanted to get the academic price, stating that I would be using it for personal learning, etc.  They were more than happy to offer the discount, so I’m now the proud owner of a DE2-70.  (By the way, they ship from Taiwan – viz. $40 shipping from the other side of the world.)

Well, having gone through Altera’s “Introduction to the Altera SOPC Builder Using VHDL Design” to remember how to use the software, I found multiple problems with the tutorial as it is.  I hope that listing the solutions here will help people in the same situation.  Some of these issues are obvious, and some are a bit more subtle.

I am using Quartus II 7.2 and  NiosII 7.2.

  1. In Step 1: “In your project, choose the EP2C35F672C6 chip as the target device, because this is the FPGA on the DE2 board”. Well, the DE2-70 uses a different chip.  Choose the EP2C70F896C6.  This can be verified by simply looking at the text printed on the FPGA.
  2. In Step 1: “You can choose a different directory or project name, but be aware that the SOPC Builder software does not permit the use of spaces in file names”. This is true and I just wanted to make it obvious that you can’t have a space *anywhere* in the pathname.  For example, you would have problems in SOPC  Builder if your project was in “C:\Program Files\…” since that path contains a space.
  3. In Step 6: “In the On-Chip Memory Configuration Wizard window, shown in Figure 8, set the memory width to 32 bits and the total memory size to 4 Kbytes”. As I’ll be getting to shortly, the 4kB is not enough for the NiosII project.  Crank it up to 64kB for plenty of breathing room.
  4. In Step 7: The PIO is under Peripherals -> Microcontroller Peripherals -> PIO (Parallel I/O).
  5. In Step 9: The JTAG UART is under Interface Protocols -> Serial -> JTAG UART.
  6. After Step 11: Write down the base addresses of the PIOs after auto-assigning the addresses.  These will be needed for NiosII, as they are treated as memory-mapped I/O.
  7. Before Step 12: There are a couple “To Do”‘s in the message window of SOPC Builder about the NiosII CPU that need to be addressed:  the reset and exception vectors.  Double-click the NiosII component you instantiated to open up the properties window you were at before.  Now that you have on-chip memory instantiated, click on the Reset Vector and Exception Vector Memory drop-down boxes and select the name of your memory (e.g. “onchip_mem”).  Leave the offsets the way they are (0x0 and 0x20).  Don’t worry about the “Warning: Switches: PIO inputs are not hardwired in test bench. Undefined values will be read from PIO inputs during simulation.”, this tutorial doesn’t do any test benches.
  8. Importing DE2_70_pin_assignments.csv.  This comma-separated file is located on the DE2-70 CD included with the kit, and it can also be found on the internets.  Mmm, google.  The naming convention for this Altera-supplied file changed from DE2 to DE2-70.  Open it and take a look.  There are now lower-case ‘i’s and ‘o’s before many of the hard-wired signals denoting them as input and output.  Remember this!  The HDL code needs to change reflecting this.  Otherwise the .csv needs changing, but I don’t suggest it.  Here’s my resulting code (remember, the port names may be different for your SOPC component):
    • LIBRARY ieee;
      USE ieee.std_logic_1164.all;
      USE ieee.std_logic_arith.all;
      USE ieee.std_logic_unsigned.all;

      ENTITY lights IS
      PORT (
      iSW        : IN    STD_LOGIC_VECTOR(7 DOWNTO 0);
      iKEY    : IN    STD_LOGIC_VECTOR(0 DOWNTO 0);
      iCLK_50 : IN    STD_LOGIC;
      oLEDG    : OUT    STD_LOGIC_VECTOR(7 DOWNTO 0)
      );
      END lights;

      ARCHITECTURE Structure OF lights IS
      COMPONENT nios_system is
      port (
      — 1) global signals:
      signal clk : IN STD_LOGIC;
      signal reset_n : IN STD_LOGIC;

      — the_LEDs
      signal out_port_from_the_LEDs : OUT STD_LOGIC_VECTOR (7 DOWNTO 0);

      — the_Switches
      signal in_port_to_the_Switches : IN STD_LOGIC_VECTOR (7 DOWNTO 0)
      );
      END COMPONENT;

      BEGIN
      NiosII:        nios_system PORT MAP(iCLK_50, iKEY(0), oLEDG, iSW);
      END Structure;

  9. Before Section 3.2: If you’ve tried to do a full compilation at this point, you will probably see an unexpected error:
    • Error: Can’t place pins assigned to pin location Pin_AD25 (IOC_X95_Y2_N1)
      Info: Pin iSW[7] is assigned to pin location Pin_AD25 (IOC_X95_Y2_N1)
      Info: Pin ~LVDS195p/nCEO~ is assigned to pin location Pin_AD25 (IOC_X95_Y2_N1)
      Error: Can’t fit design in device
      Error: Quartus II Fitter was unsuccessful. 2 errors, 3 warnings
      Info: Allocated 215 megabytes of memory during processing
      Error: Processing ended: Sun Oct 18 19:11:13 2009
      Error: Elapsed time: 00:00:03
      Error: Quartus II Full Compilation was unsuccessful. 2 errors, 152 warnings
    • Here is the fix:
      • In Quartus-II select menu Assignments>Device…
      • Select button “Device and Pin Options…
      • Select the tab “Dual-Purpose Pins”
      • Under the list of “Dual-purpose pins:” change the “Value” property of nCEO to “Use as regular I/O”.
      • Click OK
  10. After Section 3.2:  If you are using the Web edition or didn’t buy the full license for the Altera IP, you probably got a pop-up window after programming the device stating “OpenCore Plus Status Click Cancel to stop using OpenCore Plus IP.  Time remaining:  unlimited”.  Do not close this window if you intend on using the NiosII IDE to run on the hardware.  Just leave the window up and close when you are done, or have a problem with Quartus or SOPC Builder.
  11. I skipped over the Assembly programming section because this tutorial already gave me a headache.  I’m not a masochist.
  12. In Section 4.2: When you create a new project, create it in the following way:  File -> New -> Project… and select “Nios II C/C++ Application”.  Also, use the Hello World template.  It sets everything up for you, gives you printf functionality to the console, but takes up a bit more space.
  13. lights.c:  Here’s what I have in my file.  Again, it might be a bit different for the base addresses.
    • #include <stdio.h>
      #define Switches (volatile char*) 0x21000
      #define LEDs (char*) 0x21010

      int main()
      {
      printf(“Hello from Nios II!\n”);
      while (1){
      *LEDs = *Switches;
      }
      return 0;
      }

  14. After all of that is done, you right-click on your project in NiosII IDE (e.g. hello_world_0) and click “Run As -> Nios II Hardware”.
  15. Done!  You can now move the switches (SW7 – 0) and see the LEDG7-0 change.  You can also reset the CPU using KEY0.

I know how frustrating it can be trying to learn something when the tutorial is wrong.  Hope this helps!

50 Comments

  1. Very nice blog and article, thanks for sharing your experience with us!

    Best regards

    Nomes de bebês e significado dos nomes

    Escolher um nome para seu bebê pode parecer uma das tarefas dificeis durante a gravidez. Nomes estrangeiros para bebês onde você encontra uma infinidade de nomes de diversas culturas e origens, o nome lembra você de alguém ou tem alguma associação positiva ao nome de seu bebê. É por isso que navegar nas principais listas de nomes de bebês como esta pode ajudar a inspirar você e até mesmo alertá-lo sobre nomes que você pode não ter considerado antes. Além de nomes de bebês, também temos os países em inglês, onde você encontra todos os países do mundo no idioma inglês.

    best Regards and thanks again

  2. Thanks for sharing such problem and solution. If you want to know about health and pharmacy related info, Visit us: PharmaEducation :Simplifying Pharma Learning.

  3. شركة تعقيم بالمدينة المنورة

  4. You still able to overcome it even the tutorial is wrong. Good job

  5. Look like it’s something related to programming. But which application normally it is used for?

  6. Thanks for this great content.

  7. I like your post. It is good to see you verbalize from the heart and clarity on this important subject can be easily observed…

  8. Congratulations on receiving a great response to your post! We at the Myassignmenthelpau platform understand how difficult it can be for the students to manage complicated assignments in high school, college, or university, therefore, we have introduced an exclusive Assignment Help Los Angeles facility that will cater to all your writing requirements precisely.

  9. Moreover, to change flights within 24 hours of the reservations there are no charges in the flight. And if you make reservations at the last moment, you have to pay extra charges apart from the flight fare in addition.
    visit Talk to Live Person at Frontier Airlines

  10. Excellent work. Yours appreciate able efforts in this blog are really helpful and satisfactory for me. You mentioned quality information. I will suggest your blog to others. This article will be helpful to them. For more quality, unique information I use the (Package point)guide its also a helpful guide regarding different bundle updates like SMS or Jazz Call Package etc. keep sharing your informative and unique knowledge with us. I will wait for your more unique articles.

  11. “Sfull.net Download Facebook video to your phone, PC, or tablet with highest quality. Use our Facebook video downloader with your browser. No need to install any software. Support both Android, and iOS.
    – Địa chỉ: 59 Lê Đức Thọ, Nam Từ Liêm, Mỹ Đình, Hà Nội
    – Email : sfull.net@gmail.com
    #sfull, #downloadvideofacebook, #facebookdownloader”

  12. We find a word software has just been updated to bring the best experience to the web community.

  13. When it comes to printing then canon mx490 wireless printer is the users first choice but in general, people may face common printer error which can be resolved with simple steps follow the link to know more.

  14. compress2impress

    January 29, 2021 at 12:41 pm

    The article has some good and serviceable information. It was very well authored and easy to understand. cpr training

  15. The article has some good and serviceable information. It was very well authored and easy to understand.

  16. خرید کاندوم یکی از جذاب ترین جنبه های خرید در زندگی زناشویی است اگر نیاز به خرید کاندوم یا بهداشت جنسی دارید. می توانید از کامش تهیه کنید

  17. Hi,
    I haven’t seen such an excellent article before. It is really very useful & amazing. Visit our site 123.hp.com/ojpro8710 for much useful information about printer setup, driver download & wireless setup.

  18. Hi,
    I haven’t seen such an excellent article before. It is really very useful & amazing. Visit our site 123.hp.com/ojpro9015 for much useful information about printer setup, driver download & wireless setup.

  19. Hai,
    Thank You for the information . it is very useful , visit our page123hpcomsetup
    123-hp-com-setup
    how-to-print

  20. I enjoyed over read your blog post. Your blog have nice information. Myself Jordy, I am a Sr. Accounting Consultant and I have 10 years of experience in providing complete accounting solutions for small and mid-sized managed businesses. I’ve been worked with many reputed companies including fortune 500 organizations.
    Today, I give you information regarding Quickbooks errors like quickbooks error 15311, quickbooks update error 15311

  21. Dumps4Expert offers real exam dumps with actual exam dumps questions that will help you to prepare according to the real certification exams
    SAA-C02 exam dumps

  22. Quickbooks Web Connector Error QBWC:
    If you are getting Quickbooks Web Connector Error QBWC then you will get either “Quickbooks web Connector Error QBWC1085” or “Exception error”.

    the QB Web Connector will not allow you to write down the log files.
    Without even a Log file the Quickbooks software will open.
    The issue with your log file.
    Quickbooks Web Connector will start working automatically without a log file.

  23. The article has some good and serviceable informatio

  24. In order to talk to a real person at Lufthansa airlines, you may use Lufthansa’s phone number 802-532-5150 or 1 (800) 645-3880. Lufthansa customer service team provides prompt services to the customers, But in case you can not able to get in touch with Lufthansa customer service by phone then opt for email service or live chat with a Lufthansa representative.

  25. Intellectual Property Law can be complex, and, depending on your particular issue, you might need to consult with an immigration

  26. Great post, thank you

  27. Thanks for this article

  28. isimli çakmak tesbih takımı modelleri

  29. Law Essay Writers

    August 11, 2021 at 1:02 am

    Thanks for sharing such a problem and solution. If you want to know how to write a law essay and get good grades. For good grades, you have to contact professional law essay writers who provide information and help you to complete your essay.
    Thank you for sharing this issue and its solution. If you want to learn how to create a legal essay that will get you high scores, keep reading. To get high scores, you need to hire professional law essay writers” that can provide you with knowledge and assist you in finishing your essay.

  30. Today, the phenomena of using internet network
    and multimedia application had increasing growth.
    Transformation and transmission of information or image over
    the network can be easily done by public. Therefore, security is
    an important issue in communication and storage of data;
    particularly images. Due on this issue, encryption is found to be
    one of the efficient ways to ensure security. Thus, this research
    was proposed to implement an image encryption algorithm on
    the Altera DE2-70 FPGA board (Cyclone II EP2C70F896).

  31. El servicio por las llamadas es el servicio más preferido por todos los pasajeros. Este servicio de la aerolínea viene con muchos beneficios y facilita muchos servicios solo por una llamada.

    Si está pensando sobre, ¿Cómo se puede llamar a Delta Airlines?, no se preocupe, solo necesita pasar unos pasos para hacerlo.

    Marque al Número de teléfono de Delta Airlines.
    Responda a las preguntas automatizadas para seguir con el proceso IVR.
    Seleccione su lengua preferida para acceder a este servicio.
    Entre la lista de los servicios facilitados por una llamada, elija el servicio que quiere acceder.
    Si necesita el servicio de un representante, haga clic en 5.

  32. El servicio por las llamadas es el servicio más preferido por todos los pasajeros. Este servicio de la aerolínea viene con muchos beneficios y facilita muchos servicios solo por una llamada.

    Si está pensando sobre, ¿Cómo se puede llamar a Delta Airlines?, no se preocupe, solo necesita pasar unos pasos para hacerlo.

    Marque al Número de teléfono de Delta Airlines.
    Responda a las preguntas automatizadas para seguir con el proceso IVR.
    Seleccione su lengua preferida para acceder a este servicio.
    Entre la lista de los servicios facilitados por una llamada, elija el servicio que quiere acceder.
    Si necesita el servicio de un representante, haga clic en 5.

  33. If you are feel boring to see your system fonts then install there mentioned fonts and make stylish in your system. jual hot water boiler here you have no need any type of requirement

  34. Waw… What a list! thanks

  35. Excellent Blog! I would like to thank for the efforts you have made in writing this post. I am hoping the same best work from you in the future as well.

  36. Thanks for this article it help me a lot.

  37. THANKS FOR YOUR ARTICLE. IT WAS INTERESTING AND INFORMATIVE.

  38. This is an example of edu website link. though it is not that worthy.

  39. Your article is very good, I have read a lot of articles but I am really impressed with your writing style. I will review this post.

  40. Your article is very good, I have read a lot of articles but I am really impressed with your writing style. Check the new uk lottery result is all about the recent result.health lottery results

  41. icustomerservicenumber.net is a one-stop platform that facilitates flyers with incredible deals and discounts. Get hands on jaw-dropping deals and fly without shelling out your dollars. Endless flight options are available, pick the right one and feed the wanderer in you to the maximum extent.

  42. Your article is very good, I have read a lot of articles but I am really impressed with your writing style Also check the UK lottery result is all about the recent Thunderball result.

  43. Hi there,

    Very nice post and blog, I found it very explanatory and informative, thank you very much for sharing your knowledge and wisdom with us.

    take care and stay positive

    Your follower

    Lisa from Middle Names ideias for a lot of baby names.

    regards

  44. Thanks for sharing all these solutions. It’s a great help in solving the probs. I appreciate your efforts & help.

  45. Welcome to a reputable SEO agency Melbourne. We never get bored of inventing new ideas by stepping into Google’s and other search engines’ new algorithm shoes. Furthermore, we leave our doors open at all times to allow a fresh breeze of ideas and creativity to pass through.

  46. Your chat with Taiwan’s company quite so interesting love your blogs

Leave a Reply

Your email address will not be published.

© 2024 Jeremy W. Langston

Theme by Anders NorenUp ↑