原创 Nios II开发环境中如何添加客户定制逻辑

2009-12-3 17:10 3162 9 9 分类: FPGA/CPLD

    相比于MCS51,或者ARM,Nios II这种软核处理器的第一个特别有用的特性是可以方便得添加客户定制逻辑。这是一个非常有趣并且重要的特性。在这里,我粗略得介绍一下在Nios II开发环境中如何添加客户定制逻辑;更加详细的帮助信息请您参考Altera公司提供的文档。如果本文能对您有一点点帮助,我都会感到非常高兴。


1、准备工作:
    在这前,有几个准备工作要做:



  1. 需要熟练地创建并使用NiosII系统。
  2. 通开发板至少要有两路LED输出,用来观察PWM的输出。

     我使用ezNiosDKC6B作为待调试的开发板,向其中添加PWM输出,因为PWM也确实是一个很有用的功能。你可以举一反三,在自己的系统中引入客户逻辑。


2、创建自己的客户逻辑:
    1.首先,在QuartusII中打开任意一个项目,然后,打开Tools -> Sopc Builder,在这里,我们只是为了打开sopc builder这个组件而已。
    2.选择File -> New Component,
 
    3.这样就会打开New Component先导
点击看大图 
    4.在HDL Files选项卡中,选择Add HDL File,然后打开avalon_slave_pwem_source目录(本站提供),选中下图中的三个文件(avalon_slave_pwm.v, pwm.v,reg_file.v)。(一次只能选中一个文件,需要按住Crtl键,然后依次选择三个文件,就可以像下图中,同时选中三个文件了)。然后选择 打开
点击看大图 
    5.可以看到添加三个文件,绿色的闪烁的条纹表明系统正在分析该文件。Top Level Module:默认是alalon_slave_pwm.v:alalon_slave_pwm,如果不是,请改正为alalon_slave_pwm。
点击看大图 
    6.下面进入Signals选项卡,进行输入、输出信号的设置。
如下图,首先把resetn的类型设置为reset_n,
点击看大图 
    7.请按照设置resetn的方法,设置各个信号。设置完成以后,如下图所示。
点击看大图 
    8.然后进入Interfaces选项卡,修改Read Wait = 0, Write Wait = 0,如下图所示。
 
    9.进入SW Files选项卡,选择Add SW File,为系统添加SW Files;首先打开 avalon_slave_pwm_source\HAL\inc下的altera_avalon_pwm_routines.h,为系统添加该文件。
点击看大图 
     10.依次添加avalon_slave_pwm_source\inc\altera_avalon_pwm00.h ,avalon_slave_pwm_source\HAL\src\altera_avalon_pwm_routines.c,并请按照下图设置 Type。
点击看大图 
    11.最后选择Finish,生成系统。系统会在您运行该软件的目录下生成一个文件夹:avalon_slave_pwm。

    12.然后,把该文件夹拷贝到系统的默认搜索路径:安装路径\components\下,比如G:\w2k\EDA\FPGA\altera\kits\niosII1_1B131\components,这样可以省去许多麻烦。


3、使用上述客户逻辑:
        接下来,请您参考我之前写的文章“FPGA也疯狂(五)--Step By Step创建标准(Standard)niosII系统”,生成一个标准系统。比如,我生成一个系统,ezC6Be_PWM,来使用该PWM。
       在sopc_builder中,可以看到,在components列表中,已经有了该组件(如果没有看到,请选择File->refrech刷新componments列表)。
 
    1 双击avalon_slave_pwm,添加该组件到您的sopc系统中。
 
    2 我为这个sopc系统添加了两个pwm,分别命名为:avalon_slave_pwm_0以及avalon_slave_pwm_1,如下图:
点击看大图 
    3 然后,我修改led_pio,把修改为2,这样可以释放出两个led来给PWM使用。
 
    4 然后,使用上一步生成的sopc系统。比如,我创建了ezC6Be_PWM.bdf来使用sopc_ezC6Be_PWM.bsf。如下图:
 
    5 我把pwm_out_from_the_avalon_slave_pwm_0接到LED[2],pwm_out_from_the_avalon_slave_pwm_0接到LED[3],这样可以通过LED的亮度来观察PWM的输出。
点击看大图 
    6 其余步骤请您参考我之前写的文章“FPGA也疯狂(五)--Step By Step创建标准(Standard)niosII系统”,


最后选择Start Compilation来编译这个系统。应该又是漫长的等待之后。


    7 常见问题:
 许多朋友可能会遇到如下问题: 
点击看大图 
   提示找不到register_file,这通常是因为Sopc Builder没有正确得拷贝文件到当前目录下,或者QuartusII傻得找不到该文件了。


   请按照如下方法处理:


  1 检查当前项目的文件夹下(比如我检查ezC6Be_PWM),是否有如下文件:pwm.v,reg_file.v。如果没有,可能是创建客户逻辑的时候有问题,SOPC Builder没有自动拷贝这些文件,请手动从avalon_slave_pwm_source拷贝一下吧!


  2 如果检查当前项目的文件夹下(比如我检查ezC6Be_PWM),已经有如下文件 pwm.v,reg_file.v。那么是QuartusII傻得找不到该文件了。 请打开QuartusII中的Assignments -> Settings,在Files选项卡中,手动增加pwm.v,reg_file.v两个文件,即可以解决。
点击看大图 


4、通过软件访问、使用客户逻辑:
      1。编译成功之后,可以打开Nios IDE,首先请参考我之前写的文章“FPGA也疯狂(五)--Step By Step创建标准(Standard)niosII系统”,基于上述系统(比如我的cpu名字cpu_ezC6Be_PWM),创建一个以 hello_world为模板的项目。我把这个项目命名为ezC6Be_PWM_hello_2pwm_0
   
      2。然后,删除hello_world.c。把文件hello_2pwm.c(本站提供,在avalon_slave_pwem_source目录下)拷贝到项目ezC6Be_PWM_hello_2pwm_0的目录下,比如我把它放到H:\DB2005\project\niosDK\CD\CD1\ Example\ezNiosC6B\ezC6Be_PWM\software\ezC6Be_PWM_hello_2pwm_0中。

      3。请按照如下设置系统library属性:
 
      4。最后选择Project -> Build Project,编译整个项目。

文章评论1条评论)

登录后参与讨论

用户266228 2010-10-21 16:02

avalon_slave_pwem_source目录去哪找啊?

用户42640 2007-10-10 08:15

你这应该是51的汇编指令吧
相关推荐阅读
用户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组合导航系统的实现形式,依应用领域的不同而复杂多样,但是导航计算机板卡负责的工作则相对固定,其主要包括:采集各路传感器输入信号;滤波、融合计算;将计算结果输送给机...
我要评论
1
9
关闭 站长推荐上一条 /2 下一条