DSP

Qsys+NIOSII+SDRAM+DE2_115样例具体实现

2019-07-13 19:57发布

 平台背景: 操作系统:Windows7 64bit QuartusII版本:13.0 开发板:Altera DE2-115   具体步骤: 1.新建工程: 2新建顶层文件,本例以bdf构建: 3.点击Qsys(旧版本中的DSPbuilder),新建一个nios芯片: 默认会有一个时钟,这个是芯片共用的时钟,可以点击右键rename,为了查看方便,可以改为clk_50(输入频率50MHz)clk_100(输入频率100MHz)。 然后加入nios核,可以直接在左边元件库搜索 选择f型,其他保持默认设置然后点击finish添加,改名为cpu 用相同方法添加sdram-controller 配置如下,注意修改宽度32bitbank4,阵列为13*10 切换到timing,选择等级3,如下图 点击finish,完成添加,然后renamesdram 然后添加串口调试jtag_uart,直接finish,添加后renamejtag_uart 然后添加系统标示符sys_id,自己可以改动数字,亦可以保持不变,点击finish添加并改名。 添加完成后如下所示: 点击system下的Run SOPC Builder to Qsys upgrade,完成基本连线 由于Qsys取消了SOPCbuilder的自动连线功能,所以必须手工连线。需要连接的主要是: 1)每个器件的时钟 2)非存储器类的数据总线接口 3)存储类器件的数据总线接口和指令总线接口 4)中断接口 连接后配置如下: 然后双击cpu,修改其中的异常向量地址和复位地址,都选择为sdram 点击system菜单下的assigne base address,分配基地址 最后完成如下图 点击标签页最右边的generation,去掉simulation的选项,然后点击generation生产文件 在弹出的保存中,自己命名并保存。 退出Qsys,进入quartusII的主界面中 Qsys生产的文件手工加入到工程中,(quartusII低版本的可以自动加入,高版本需手动加入)。 在顶层文件的bdf中,单击右键,选择insert symbol 点击ok完成添加 以同样的方法,打开插入符号窗口,点击左下方MegaWizard Plug-in manager添加pll 选择第一个,next,然后找到pll如下图所示: 然后命名,比如命名为pll,点击next,此时会出现下图,将入口频率调整为50MHz 一直点击next,直到outputclock选项页面 clk c0的乘法系数改为2其他不变,此时pllc0输出为100MHz,可以充当cpu的时钟: 然后点击c1,如上图中2标示的,修改其中的乘法系数为2,使得频率也为100MHz,另一方面,修改相移为-65(实际值为-63),这点很重要,此时钟输出作为SDRAM内存的时钟信号。 点击finish,完成pll构建。回到symbol窗口,点击ok,加入此器件。 pllc0输出连接到cpu的时钟输入端口,如下图所示: 分别右键单击pllcpu两个模块,然后点击generate pins for symbol ports 得到效果如下图: 按照用户手册修改管脚名称,以便于导入管脚配置,注意为pllassertcpureset安排两个开关。注意将c1管脚定位到SDRAM的时钟端口,修改后如下:   然后编译 编译后导入管脚分配,可以使用csv文件导入,在DE2_115的光盘中有此配置文件,如果没有,请使用pin planner手工对照名字添加管脚。 然后启动NIOS for eclipse,新建工程,选择Nios II Application and BSP from templare SOPC信息文件指向刚刚生成的cpu文件, 点击open,然后选定工程名字,如cc,点击finish,生成文件得到结果如下: 连接FPGA开发板,切换到quartus,点击programmer,将sof文件写入 切换到eclipse,点击第一个工程,邮件单机项目,然后选择Run AS,选择NiosII hardware,请在点击之前确保与pllassert管教相连的开关处于低电平,与cpu相连的开关处于高电平,否则cpu无法正常工作! 如果弹出错误对话框,如下图: 选择refresh connection,如有必要请勾选下图中的23选项: 设置完成后点击Run,如果一切工作正常,将会在eclipse中现实如下结果: 如有任何相关的问题,请关注我的个人公众号hearwithlisten,直接留言。 欢迎交流指正。 扫码可以关注我的微信公众号: