查看: 138|回复: 0

[原创] 软核开发学习连载一

[复制链接]

4

主题

0

好友

252

积分

秀才

Rank: 3Rank: 3

  • TA的每日心情
    郁闷
    2016-5-25 12:31
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    发表于 2016-8-14 22:28:41 |显示全部楼层
    软核开发学习连载一
    这是本人第一篇学习帖,我计划是跟着视频学习完整个软核开发的课程,因为这一部分是我最感兴趣的。我的quartus ii版本是15.0,跟课程视频里面用的13.0差别不大。
    好了,下面开始连载,第一个项目是点灯
    先看看整个项目的大体结构
    1.jpg
    首先打开quartus ii,先新建一个工程,命名为1,因为之前有些软件用中文就会报错,因此命名还是尽量不要用中文

    2.jpg
    选择器件
    3.jpg
    完成建立新工程
    4.jpg
    进入Qsys界面
    5.jpg
    右键clk_0,然后选择edit进入编辑这个时钟参数的界面
    6.jpg
    在左侧的器件列表中找到embadded processor,选择NIOS II,然后进入如下界面
    7.jpg
    加入这个软核
    8.jpg
    点击Basic function——on chip memory——on- chip memory,双击进入如下界面
    10.jpg
    容量改成20K,点击确定增加一个RAM部分,然后按照同样的方法增加一个10K的ROM,改名便于辨认,注意重命名的过程要在英文输入法下完成
    11.jpg
    再增加一个JTAG UART模块,直接搜索JTAG,找到JTAG UART,不修改参数直接加入即可
    12.jpg
    然后增加parallel IO模块用于使能IO口,直接搜索PIO,找到PIO,然后修改参数,位数选择1位,方向选择input,选择允许上升沿触发,然后中断条件改成边沿触发(edge)
    13.jpg

    同样的方法增加一个使能IO口输出的控制LED灯,参数中位数选择1位,方向选择output,不需要中断。
    然后开始进行模块之间的连接,
    1)将时钟clk全部连接
    2)所有的复位端全部连接
    3)CPU的数据端口与自身的jtag连上,然后memory类型的器件连接数据端口和指令端口,其余的模块连接到数据端口,连接指令端口
    4)使能与外界的连接。分别双击两个pio的external connection的export,然后改名为key 、LED即可
    14.jpg
    然后进行地址设置,ROM必须锁定(点击地址旁边的锁头符号锁定)在0地址(0x0000),其余的可以通过上方工具栏的system——Assign base address确定
    然后进行中断设置,按键产生的中断与CPU相连接
    最后来进行CPU的复位设置,在CPU的参数界面选择,复位后从ROM中0地址开始执行,异常中断后从RAM中0地址开始执行
    完成上面的设置之后就可以进行输出了,点工具栏中generate,选择generate HDL,然后选择不用仿真,描述语言选择verilog,点击generate,然后选择存档名和地址即可完成生成一个qsys文件。
    15.jpg
    然后回到quartus ii界面,新建立一个verilog HDL文件。进行如下编辑
    1)quartus ii15.0中,在主界面右侧IP catalog中找到library——basic function——PLL,选择altPLL,然后在弹出的对话框中General输入输入时钟为50MHz,input中不选择PLL使用复位和锁相环,在output选项卡中选择输出时钟为100MHz,最后在Summary选项卡中选择PLL_nst.v与PLL_bb.v,然后点击确定即可完成创建一个倍频的PLL器件
    2)在左侧的files选项卡下添加上刚刚编写的Nios ii内核的v文件,完成之后files下应该如图所示
    17.jpg
    3)开始写代码。注意,一些接口的模板会在之前生成的PLL_inst.v和Qsys界面中的Generate——HDL example中提供,因此在生成PLL模块的时候要记得勾选生成PLL,完成后的代码如下图所示
    18.jpg
    最后,进行管脚分配,分配方案如下
    19.jpg
    然后进行编译,只要没有红色的报错就可以了
    下面打开eclipse,方法是tools——build tools foreclipse,然后指定路径,建议放在项目文件夹下面新建的一个software文件夹里面。
    下面新建一个Nios ii软核的BSP工程,如图
    20.jpg
    然后在弹出的对话框中指定刚才生成的nios II软核的.sopcinfo文件,这个文件一般放在之前项目保存的文件夹里面,不过这个路径不能有空格,如果有空格的话会识别不了
    21.jpg
    命名,然后模板选择hello world,后面默认,点击finish生成文件
    22.jpg
    然后对系统进行优化,主要是对内存方面进行优化,首先打开菜单栏中nios II——BSP editor,然后进行如下几个操作
    1)去掉enable c-plus-plus\enable clean_exit前面的勾,因为这里不需要运用C++代码,不需要经常返回main函数
    2)选择enable reduce delive driver\enable small clibrary选项前面的勾,这样可以选择减少封装库的尺寸
    点击generate,完成整个工程的编译
    23.jpg
    先将之前的quartus II生成的eof文件下载到开发板上面,然后尝试一下这个eclipse编写的程序,eclipse程序下载到开发板的方法:
    1)右键选择工程文件,然后依次选择run as——nios ii hardware,然后会弹出一对话框
    2)在对话框的target connection选项卡下refresh connection,会自动找到器件
    3)直接点击run开始运行
    24.jpg
    最后运行结果如下:
    25.jpg
    至于开发板部分的演示就无法运行了,因为某些未知的原因

    9.jpg
    16.jpg
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /6 下一条


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-5 10:30 , Processed in 0.238792 second(s), 11 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部