原创 nios II标准(Standard)系统的创建(1)

2009-12-3 17:13 2125 9 10 分类: FPGA/CPLD
在此之前,我曾经过介绍过如何建立最小(small)的nios系统(见文章nios无痛入门)。在这儿,我将要介绍如何建立一个常用的标准(Standard)Nios系统。如果本文能对您有一点点帮助,我都会感到非常高兴。     

在本文中,我只挑要点讲一下,关于软件的详细使用指南,请您参考官方提供的help文档。我使用本站设计的ezNiosDK C6B开发板来示范这个实验;如果您采用自己的开发板,请您适当得修改,以适应您的开发板。


第一节:创建并初步配置项目。
1。创建项目。
创建一个空项目,我将他命名为ezC6Be_StdF50(请参考文章“nios无痛入门”,在此不再赘述),器件(Device)设置为EP1C6T144C8。
点击看大图 
 如果采用的是ezNiosDKC3系列,请选择EP1C3T144C8,如下图:
点击看大图 
2。执行如下script,主要目的是一次性映射PIN脚。
# Setup.tcl
# Setup pin setting


set_global_assignment -name RESERVE_ALL_UNUSED_PINS "AS INPUT TRI-STATED"
set_global_assignment -name ENABLE_INIT_DONE_OUTPUT ON
set_global_assignment -name CYCLONE_CONFIGURATION_DEVICE EPCS1


set_location_assignment PIN_16 -to OSC0


set_location_assignment PIN_125 -to RESET_
set_location_assignment PIN_28 -to LED\[0\]
set_location_assignment PIN_85 -to LED\[1\]
set_location_assignment PIN_96 -to LED\[2\]
set_location_assignment PIN_97 -to LED\[3\]


set_location_assignment PIN_27 -to KEY\[1\]
set_location_assignment PIN_17 -to KEY\[2\]
set_location_assignment PIN_92 -to KEY\[3\]
set_location_assignment PIN_93 -to KEY\[4\]


set_location_assignment PIN_51 -to SDRAM_CS_
set_location_assignment PIN_52 -to SDRAM_RAS_
set_location_assignment PIN_53 -to SDRAM_CAS_
set_location_assignment PIN_56 -to SDRAM_WE_


set_location_assignment PIN_39 -to SDRAM_CKE
set_location_assignment PIN_26 -to SDRAM_CLK


set_location_assignment PIN_50 -to SDRAM_BA\[0\]
set_location_assignment PIN_49 -to SDRAM_BA\[1\]


set_location_assignment PIN_47 -to SDRAM_A\[0\]
set_location_assignment PIN_42 -to SDRAM_A\[1\]
set_location_assignment PIN_41 -to SDRAM_A\[2\]
set_location_assignment PIN_40 -to SDRAM_A\[3\]
set_location_assignment PIN_34 -to SDRAM_A\[4\]
set_location_assignment PIN_33 -to SDRAM_A\[5\]
set_location_assignment PIN_32 -to SDRAM_A\[6\]
set_location_assignment PIN_31 -to SDRAM_A\[7\]
set_location_assignment PIN_35 -to SDRAM_A\[8\]
set_location_assignment PIN_36 -to SDRAM_A\[9\]
set_location_assignment PIN_48 -to SDRAM_A\[10\]
set_location_assignment PIN_37 -to SDRAM_A\[11\]
set_location_assignment PIN_38 -to SDRAM_A\[12\]


set_location_assignment PIN_69 -to SDRAM_DQ\[0\]
set_location_assignment PIN_68 -to SDRAM_DQ\[1\]
set_location_assignment PIN_67 -to SDRAM_DQ\[2\]
set_location_assignment PIN_62 -to SDRAM_DQ\[3\]
set_location_assignment PIN_61 -to SDRAM_DQ\[4\]
set_location_assignment PIN_60 -to SDRAM_DQ\[5\]
set_location_assignment PIN_59 -to SDRAM_DQ\[6\]
set_location_assignment PIN_58 -to SDRAM_DQ\[7\]
set_location_assignment PIN_71 -to SDRAM_DQ\[8\]
set_location_assignment PIN_72 -to SDRAM_DQ\[9\]
set_location_assignment PIN_73 -to SDRAM_DQ\[10\]
set_location_assignment PIN_74 -to SDRAM_DQ\[11\]
set_location_assignment PIN_78 -to SDRAM_DQ\[12\]
set_location_assignment PIN_77 -to SDRAM_DQ\[13\]
set_location_assignment PIN_76 -to SDRAM_DQ\[14\]
set_location_assignment PIN_75 -to SDRAM_DQ\[15\]


set_location_assignment PIN_57 -to SDRAM_DQM\[0\]
set_location_assignment PIN_70 -to SDRAM_DQM\[1\]


set_location_assignment PIN_99 -to FLASH_CE_
set_location_assignment PIN_100 -to FLASH_OE_
set_location_assignment PIN_128 -to FLASH_WE_


set_location_assignment PIN_98 -to EA\[1\]
set_location_assignment PIN_110 -to EA\[2\]
set_location_assignment PIN_111 -to EA\[3\]
set_location_assignment PIN_112 -to EA\[4\]
set_location_assignment PIN_113 -to EA\[5\]
set_location_assignment PIN_114 -to EA\[6\]
set_location_assignment PIN_119 -to EA\[7\]
set_location_assignment PIN_120 -to EA\[8\]
set_location_assignment PIN_131 -to EA\[9\]
set_location_assignment PIN_132 -to EA\[10\]
set_location_assignment PIN_133 -to EA\[11\]
set_location_assignment PIN_134 -to EA\[12\]
set_location_assignment PIN_139 -to EA\[13\]
set_location_assignment PIN_140 -to EA\[14\]
set_location_assignment PIN_141 -to EA\[15\]
set_location_assignment PIN_142 -to EA\[16\]
set_location_assignment PIN_11 -to EA\[17\]
set_location_assignment PIN_121 -to EA\[18\]
set_location_assignment PIN_122 -to EA\[19\]


set_location_assignment PIN_123 -to RYBY_


set_location_assignment PIN_130 -to EA\[20\]


set_location_assignment PIN_103 -to EDQ\[0\]
set_location_assignment PIN_105 -to EDQ\[1\]
set_location_assignment PIN_107 -to EDQ\[2\]
set_location_assignment PIN_109 -to EDQ\[3\]
set_location_assignment PIN_144 -to EDQ\[4\]
set_location_assignment PIN_3 -to EDQ\[5\]
set_location_assignment PIN_5 -to EDQ\[6\]
set_location_assignment PIN_7 -to EDQ\[7\]
set_location_assignment PIN_104 -to EDQ\[8\]
set_location_assignment PIN_106 -to EDQ\[9\]
set_location_assignment PIN_108 -to EDQ\[10\]
set_location_assignment PIN_143 -to EDQ\[11\]
set_location_assignment PIN_2 -to EDQ\[12\]
set_location_assignment PIN_4 -to EDQ\[13\]
set_location_assignment PIN_6 -to EDQ\[14\]
set_location_assignment PIN_10 -to EDQ\[15\]


set_location_assignment PIN_79 -to RXD1
set_location_assignment PIN_82 -to TXD1


set_location_assignment PIN_83 -to USBDN
set_location_assignment PIN_84 -to USBDP



第二节:创建NiosII系统。
1.选择Tools -> SOPC Builder,我将这个系统命名为sopc_ezC6Be_StdF50,就是在项目名前加上sopc_,您可以依据需要,为他命名。 


2。配置Component/Kit Library Search Path。
目的是在系统中增加本站设计的Flash编程器目录,请把光盘CD1上的/Example/ezNiosC6 拷贝到您的电脑的硬盘上。比如,我把他放在h:/DB2005/project/niosDK/CD/CD1/Example/中,然后在Altera SOPC Builder中,选择File -> SOPC Builder Setup,增加如下搜索路径:+h:/DB2005/project/niosDK/CD/CD1/Example/ezNiosC6


ezNiosC3 的用户如下操作:请把光盘CD1上的/Example/ezNiosC3 拷贝到您的电脑的硬盘上。比如,我把他放在h:/DB2005/project/niosDK/CD/CD1/Example/中,然后在Altera SOPC Builder中,选择File -> SOPC Builder Setup,增加如下搜索路径:+h:/DB2005/project/niosDK/CD/CD1/Example/ezNiosC3


并顺便检察Modelsim Directory是否正确:比如,我的是 g:/w2k/eda/fpga/altera/modeltech_6.0/win32


然后,你需要关闭Altera SOPC Builder,然后再重新通过QuartusII的Tools ->SOPC Builder来开启SOPC Builder,这样上述修改才能生效。  
 
3常见错误:有许多朋友往往在设置路径的时候,犯与下图类似的错误。错误在于第一个路径前面是不需要 + 号的!要去掉第一个路径前面的 + 号
 

3。Board Target 选择:ezC6_Programmer,clk选择 50.0 
点击看大图 
ezNiosC3的用户如下操作:Board Target 选择:ezC3_Programmer,clk选择 64.0
 

4。为系统添加Nios II处理器。
在Nios II core选项卡中,选择Nios II /e 。
点击看大图 
JTAG Debug Module选项卡中,选择Debug Level 1
 
Custom Instructions选项卡中空着即可。
 
最后选择Finish确认!    我把这个处理器改名(rename)为cpu_ezC6Be_StdF50,您可以依据需要,为其命名。

5.为系统添加onchip_ram。
双击左边的Memory -> On-Chip Memory,为系统添加2K byte onchip RAM,按照如下配置。我把它改名为onchip_ram_0,您可以依据需要,为其命名。
 


6。为系统添加DRAM控制器。


双击左边的Memory -> SDRAM Crontroller,为系统添加8M byte DRAM,请按照如下图片配置。
 
 


7。 为系统添加Tri-State Bridge。
双击左边的Bridge -> Avalon Tri-State Bridge,为系统添加Tri-State Bridge,请按照如下图片配置。  
 

8。为系统添加Flash接口。
双击左边的Memory -> Flash Memory(Common Flash Interface),为系统添加Flash,请按照如下图片配置。我把它改名(rename)为ext_flash,您可以依据需要,为其命名,但最好还是取名为ext_flash。ezNiosC3A,ezNiosC3B,ezNiosC6A的用户由于开发板上不带Flash,可以跳过此步。  
 
 

9。为系统添加EPCS Serial Flash Controller。
双击左边的Memory -> EPCS Serial Flash Controller,为系统添加EPCS Serial Flash Controller,请按照如下图片配置。ezNiosC3A,ezNiosC6A的用户由于开发板上不带该器件,可以跳过此步。

文章评论2条评论)

登录后参与讨论

用户39557 2009-12-5 15:53

6.0 现在是6.5啦

用户411972 2009-12-4 11:21

老兄 你用的nios ide是什么版本的??? 我的版本根本就找不到sopc builder setup
相关推荐阅读
用户39557 2009-12-14 21:02
如何把文件压缩到最小
                                     如何把文件压缩到最小 第一步:压缩为ZIP文件。右键单击需压缩文件(如“数字图像噪声和去除.htm”文件),选择“WinRAR...
用户39557 2009-12-07 10:43
(转载) 如何在Nios II顯示8位數的七段顯示器? (IC Design) (DE2) (Nio
之前討論用硬體Verilog顯示8位數的七段顯示器,本文要討論在Nios II用軟體C語言控制8位數的七段顯示器。Introduction使用環境:Quartus II 7.2 SP1 + Nios ...
用户39557 2009-12-07 10:42
(转载) 如何在Nios II顯示8位數的七段顯示器? (IC Design) (DE2) (Nio
之前討論用硬體Verilog顯示8位數的七段顯示器,本文要討論在Nios II用軟體C語言控制8位數的七段顯示器。Introduction使用環境:Quartus II 7.2 SP1 + Nios ...
用户39557 2009-12-07 01:08
(原創) 如何在Nios II顯示8位數的七段顯示器? (SOC) (Nios II) (SOPC
本文討論如何在Nios II控制8位數的七段顯示器。Introduction使用環境:Quartus II 8.0 + Nios II EDS 8.0 + DE2-70 (Cyclone II EP2...
用户39557 2009-12-06 10:45
8051 IP核的应用开发系统研究
摘要:随着片上可编程系统SOPC技术的日趋成熟,利用IP核重用技术设计可定制的微处理系统使得嵌入式系统设计变得简单灵活,本文介绍了8051 IP核的设计过程,提出了以8051 IP核为基础的MCU片上...
用户39557 2009-12-06 10:42
基于NIOS II的导航系统平台的设计
引言  目前广泛应用的MIMU/GPS组合导航系统的实现形式,依应用领域的不同而复杂多样,但是导航计算机板卡负责的工作则相对固定,其主要包括:采集各路传感器输入信号;滤波、融合计算;将计算结果输送给机...
我要评论
2
9
关闭 站长推荐上一条 /2 下一条