平台背景:操作系统:Windows7 64bitQuartusII版本: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配置如下,注意修改宽度32bit,bank为4,阵列为13*10:切换到timing,选择等级3,如下图点击finish,完成添加,然后rename为sdram然后添加串口调试jtag_uart,直接finish,添加后rename为jtag_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其他不变,此时pll的c0输出为100MHz,可以充当cpu的时钟:然后点击c1,如上图中2标示的,修改其中的乘法系数为2,使得频率也为100MHz,另一方面,修改相移为-65(实际值为-63),这点很重要,此时钟输出作为SDRAM内存的时钟信号。点击finish,完成pll构建。回到symbol窗口,点击ok,加入此器件。将pll的c0输出连接到cpu的时钟输入端口,如下图所示:分别右键单击pll和cpu两个模块,然后点击generate
pins for symbol ports得到效果如下图:按照用户手册修改管脚名称,以便于导入管脚配置,注意为pll的assert和cpu的reset安排两个开关。注意将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,请在点击之前确保与pll的assert管教相连的开关处于低电平,与cpu相连的开关处于高电平,否则cpu无法正常工作!如果弹出错误对话框,如下图:选择refresh connection,如有必要请勾选下图中的2和3选项:设置完成后点击Run,如果一切工作正常,将会在eclipse中现实如下结果:如有任何相关的问题,请关注我的个人公众号hearwithlisten,直接留言。欢迎交流指正。扫码可以关注我的微信公众号: