返回首页
当前位置: FPGA主页 > 精彩文章 >

如何使用ModelSim-Altera对NiosII仿真?

时间:2010-01-27 11:37来源:网络 作者:芯合 点击:
前言 在刚学习NiosII时,每次在Run As NiosII Hardware下方,看到Run As NiosII ModelSim就觉得很好奇,NiosII明明是嵌入式系統,怎么能用ModelSim仿真呢? Nios II虽然是个嵌入式系统,但毕竟基于FPGA技

前言
      在刚学习NiosII时,每次在Run As NiosII Hardware下方,看到Run As NiosII ModelSim就觉得很好奇,NiosII明明是嵌入式系統,怎么能用ModelSim仿真呢?
      Nios II虽然是个嵌入式系统,但毕竟基于FPGA技术,所以比ARM这类hardcore多了使用ModelSim仿真的方式。这也是Altera四大天王(Quartus II、Nios II EDS、ModelSim-Altera、DSP Builder)中的三大天王首次同台演出。
      Altera在Simulating Nios II Embedded Processor Designs文件中,有谈到如何用ModelSim-Altera对Nios II作仿真,不过一如以往,Altera的文件要在DE2能动,还是得做不少修改。


使用环境
Quartus II 7.2 SP3 + Nios II EDS 7.2 SP3 + ModelSim-Altera 6.1g + DE2(Cyclone II EP2C35F627C6)

 

Quartus II与SOPC Builder部分

第一步:建立一個最简单的Nios II系统
      文件中的那个系统并不适合DE2,用了一定不能动,所以就自己建立一個最简单的Nios II系统。為了要简单,就先使用onchip memory与ledg与button就好,其他IP都先別用,以减少失败的因素。
 

 
 

第二步:JTAG UART设定
      使用ModelSim-Altera仿真后,对于C的printf()要怎么显示呢?这要对JTAG UART做设定。

 

第三步:对PIO做初始值设定
      Button本来是在runtime由user去決定,若你想在testbench就模拟user的按键,可在此设定,此步骤并非必须,只是demo可由此方式设定PIO的初始值。

第四步:在SOPC Builder设定ModelSim-Altera路径
      Tools -> Options -> Category:HDL Simulator

第五步:产生能仿真的Nios II系统
      记得要將『Simulation. Create project simulator files』打勾。
 

 

第六步:DE2_NIOS_ModelSim2.v / Verilog
  1. /*   
  2. (C) OOMusou 2008 http://oomusou.cnblogs.com  
  3.  
  4. Filename    : DE2_NIOS_ModelSim2.v  
  5. Compiler    : Quartus II 7.2 SP3  
  6. Description : Demo how to simulate Nios II by ModelSim-Altera  
  7. Release     : 08/02/2008 1.0  
  8. */ 
  9.  
  10. module DE2_NIOS_ModelSim2 (  
  11.   input CLOCK_50,  
  12.   input [3:0] KEY,  
  13.   output [8:0] LEDG  
  14. );  
  15.  
  16. wire    CPU_CLK;  
  17. wire    CPU_RESET;  
  18.  
  19. Reset_Delay    delay1 (  
  20.   .iRST(KEY[0]),  
  21.   .iCLK(CLOCK_50),  
  22.   .oRESET(CPU_RESET)  
  23. );  
  24.  
  25. SDRAM_PLL PLL1 (  
  26.   .inclk0(CLOCK_50),  
  27.   .c1(CPU_CLK)  
  28. );  
  29.  
  30. nios_ii u0 (  
  31.   .clk(CPU_CLK),  
  32.   .reset_n(CPU_RESET),  
  33.   .in_port_to_the_button_pio(KEY),  
  34.   .out_port_from_the_ledg_pio(LEDG)  
  35. );  
  36.  
  37. endmodule 

25行

  1. SDRAM_PLL PLL1 (  
  2.   .inclk0(CLOCK_50),  
  3.   .c1(CPU_CLK)  
  4. ); 

      別被SDRAM_PLL吓到了,只是借用这个PLL产生100 Mhz的clock给Nios II用,你也可以自己重新产生一个100 Mhz的clock而不用SDRAM_PLL。
      Quartus II与SOPC Builder部分已经完成,编译后可烧进DE2。

 (责任编辑:admin)

顶一下
(2)
100%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
发布者资料
芯合 查看详细资料 发送留言 加为好友 用户等级:注册会员 注册时间:2009-12-17 15:12 最后登录:2010-01-28 14:01
推荐内容