软核开发学习连载一 这是本人第一篇学习帖,我计划是跟着视频学习完整个软核开发的课程,因为这一部分是我最感兴趣的。我的quartus ii版本是15.0,跟课程视频里面用的13.0差别不大。 好了,下面开始连载,第一个项目是点灯 先看看整个项目的大体结构 首先打开quartus ii,先新建一个工程,命名为1,因为之前有些软件用中文就会报错,因此命名还是尽量不要用中文
选择器件 完成建立新工程 进入Qsys界面 右键clk_0,然后选择edit进入编辑这个时钟参数的界面 在左侧的器件列表中找到embadded processor,选择NIOS II,然后进入如下界面 加入这个软核 点击Basic function——on chip memory——on- chip memory,双击进入如下界面 容量改成20K,点击确定增加一个RAM部分,然后按照同样的方法增加一个10K的ROM,改名便于辨认,注意重命名的过程要在英文输入法下完成 再增加一个JTAG UART模块,直接搜索JTAG,找到JTAG UART,不修改参数直接加入即可 然后增加parallel IO模块用于使能IO口,直接搜索PIO,找到PIO,然后修改参数,位数选择1位,方向选择input,选择允许上升沿触发,然后中断条件改成边沿触发(edge)
同样的方法增加一个使能IO口输出的控制LED灯,参数中位数选择1位,方向选择output,不需要中断。 然后开始进行模块之间的连接, 1)将时钟clk全部连接 2)所有的复位端全部连接 3)CPU的数据端口与自身的jtag连上,然后memory类型的器件连接数据端口和指令端口,其余的模块连接到数据端口,不连接指令端口 4)使能与外界的连接。分别双击两个pio的external connection的export,然后改名为key 、LED即可 然后进行地址设置,ROM必须锁定(点击地址旁边的锁头符号锁定)在0地址(0x0000),其余的可以通过上方工具栏的system——Assign base address确定 然后进行中断设置,按键产生的中断与CPU相连接 最后来进行CPU的复位设置,在CPU的参数界面选择,复位后从ROM中0地址开始执行,异常中断后从RAM中0地址开始执行 完成上面的设置之后就可以进行输出了,点工具栏中generate,选择generate HDL,然后选择不用仿真,描述语言选择verilog,点击generate,然后选择存档名和地址即可完成生成一个qsys文件。 然后回到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下应该如图所示 3)开始写代码。注意,一些接口的模板会在之前生成的PLL_inst.v和Qsys界面中的Generate——HDL example中提供,因此在生成PLL模块的时候要记得勾选生成PLL,完成后的代码如下图所示 最后,进行管脚分配,分配方案如下 然后进行编译,只要没有红色的报错就可以了 下面打开eclipse,方法是tools——build tools foreclipse,然后指定路径,建议放在项目文件夹下面新建的一个software文件夹里面。 下面新建一个Nios ii软核的BSP工程,如图 然后在弹出的对话框中指定刚才生成的nios II软核的.sopcinfo文件,这个文件一般放在之前项目保存的文件夹里面,不过这个路径不能有空格,如果有空格的话会识别不了 命名,然后模板选择hello world,后面默认,点击finish生成文件 然后对系统进行优化,主要是对内存方面进行优化,首先打开菜单栏中nios II——BSP editor,然后进行如下几个操作 1)去掉enable c-plus-plus\enable clean_exit前面的勾,因为这里不需要运用C++代码,不需要经常返回main函数 2)选择enable reduce delive driver\enable small clibrary选项前面的勾,这样可以选择减少封装库的尺寸 点击generate,完成整个工程的编译 先将之前的quartus II生成的eof文件下载到开发板上面,然后尝试一下这个eclipse编写的程序,eclipse程序下载到开发板的方法: 1)右键选择工程文件,然后依次选择run as——nios ii hardware,然后会弹出一对话框 2)在对话框的target connection选项卡下refresh connection,会自动找到器件 3)直接点击run开始运行 最后运行结果如下: 至于开发板部分的演示就无法运行了,因为某些未知的原因
|