fpga新建nios
[FPGA]基于Qsys的第一个Nios II系统设计
一、基本说明
1、软件平台:Quartus II 13.0(64-bit)
Nios II 13.0 Software Build Tools for Eclipse
2、硬件平台:Altera Cyclone II EP2C8Q208C8N
二、设计目标
完成FPGA平台上的“Hello Word”实现,实现方式:基于Qsys的Nios II系统设计。
三、具体步骤
1、打开Quartus II 13.0(64-bit),新建一个工程,File -> New Project Wizard…,忽略Introduction,之间单击 Next> 进入下一步。分别设置工程工作目录、工程名称。这里需要注意的是工程工作目录中请使用英文,不要含有空格等,否则在后面使用Nios II IDE的时候会出现问题。设置好后如图1所示。然后进行下一步。
图 1 设置工程工作目录、工程名称
2、添加已经存在的文件,这里我们没有需要添加的文件,直接单击 Next> 进入下一步。进行器件设置。我们使用的 Cyclone II 家族的 EP2C8Q208C8 芯片,选择好后直接进入下一步。进行EDA工具设置,由于我们工程中不进行仿真等,故不进行设置,如果需要进行ModelSim仿真,则在Simulation行中,选择Tool Name 为ModelSim-Altera(这里根据所安装的ModelSim版本进行选择),Format(s)选择为Verilog HDL(这里也是根据所掌握的硬件描述语言进行选择)。点击 Next> ,进入了Summary(摘要)页面,然后单击 Finish 完成即可。
3、新建 Block Diagram/Schematic File (方块图/原理图文件)。单击 File -> New..,选择Design Files中的Block Diagram/Schematic File,单击OK即可。完成后结果如图2所示。
图 2 新建Block Diagram/Schematic File
4、启动Qsys 工具,进行硬件部分设计。单击 Tools -> Qsys ,进入Qsys设置界面,如图3所示。系统已经默认添加了时钟模块,名称为 clk_0 ,这里我们选中 clk_0,右击,选择Rename,将其名称更改为clk。以下再添加任何模块,我们都进行类似的名称更改,更改名称的方法类似,就不在重复叙述了。
5、添加软核处理器的各部分模块。我们总共需要添加Nios II Processor、On_ChipMemory(RAM or ROM)、JTAG UART、System ID Peripheral这4个模块。首先熟悉一下 Qsys 的界面。左面Component Library,是系统提供的元件库,里面有一些构成处理器的常用模块。右面是已经添加到系统的模块,也就是说,Nios II 软核处理器是可以定制的,根据具体需要来。我们在Component Library中搜索Nios II Processor,双击即可进行配置。首先需要选择的是Nios II 核心的类型。Nios II 软核的核心共分成三种,为e型、s型以及f型。
图 3 Qsys设置界面
e型核占用的资源最少,功能也最简单,速度最慢。s型核占用资源其次,功能和速度较前者都有所提升,f型核的功能最多,速度最快,相应的占用资源也最多,选择的时候根据需求和芯片资源来决定,这里我们选择s核。然后单击 Finish,结束当前配置。
下面添加片内存储器,在元件库中搜索 On Chip Memory。双击进行设置。我们主要设置Size中的Data width和Total memoy size。Data width设置的是数据位宽,这里我们设置成16位。Total memoy size设置的是片内资源的大小,需要根据芯片资源进行合理设置,这里我们设置为10240 bytes。单击 Finish,结束当前配置。
下面添加Jtag下载调试接口。在元件库中搜索 jtag uart。双击进行设置。由于我们的系统没有特殊要求,因此这里我们选择默认配置即可。单击 Finish 结束当前配置。
下面添加系统ID模块。系统ID是系统与其他系统区别的唯一标识。在元件库中搜索 system id peripheral,双击进行设置。这里我们随便进行设置,如设置为1234。单击 Finish,结束当前配置。
下面需要进行的连线,即将右面 Connections栏目中的相关线通过设置节点进行连接。首先所有模块的clk和复位reset需要连接起来。然后片内存储器On-Chip Memory的s1和处理器nios2_qsys的data_master和instruction_master相连。JTAG调试模块jtag_uart的avalon_jtag_slave和处理器nios2_qsys的data_master相连。系统ID模块sysid_qsys的control_slave和处理器nios2_qsys的data_master相连。最后,处理器nios2_qsys的中断和jtag_uart的中断相连接。最终的完成效果如图4所示。
图 4 Qsys Connections完成效果
6、进行软核的相关设置。首先双击nios2_qsys,进入处理器设置模块。在Core Nios II栏目下,将Reset vector memory 和 Exception vector memory 设置为onchip_memory.s1。
7、然后,单击 System -> Assign Base Addresses,这时候我们会发现下部Messages窗口中原先的错误全部没有了,变为0 Errors,0 Warnings。如果不是这个结果,返回去按步骤检查。
8、接着,单击 File -> Save,进行保存,这里我们保存文件名为nios_qsys。
9、最后,选择Generation选项卡,设置Create simulation model为None,然后单击下面的Generate,进行生成。时间较长,大家耐心等待。生成完成后单击close即可,然后关闭Qsys回到Quartus II界面。
10、双击Block1.bdf的空白处,打开Symbol对话框。单击右下角的MegaWizard Plug-In Manager…,进入宏模块调用界面,选择Creat a new custom megafunction variation,单击 Next> 进入下一步,在What name do you want for the output file下面的地址后面添加输出文件的名称,如原来内容为
F:/FPGAandCPLD/Demo/NIOS/HelloWord_nios/,
添加后为F:/FPGAandCPLD/Demo/NIOS/HelloWord_nios/pll_nios 。然后在右侧搜索框中搜索ALTPLL,选中即可,这一步主要为系统添加时钟模块,然后单击 Next>进入下一步。
11、弹出ALTPLL设置对话框,这里我们在 General栏目的What is the frequency of the inclk0 input?地方,将时钟更改为50MHz,然后连续单击 Finish完成操作,这时会弹出一个Quartus II IP Files对话框,单击Yes完成即可,不需要进行任何操作。然后单击Symbol对话框中的OK即可,然后将模块放在Block1.bdf中即可。
12、再次双击打开Symbol对话框,方法同第10步。选择左侧的Libraries -> Project –> nios_qsys,然后单击OK即可,将nios_qsys放置在空白处。
13、再次双击打开Symbol对话框,方法同第10步。在Name中输入input,这时右侧会显示输入信号图标,单击OK完成将其放置在空白处即可。重复此步骤,共添加两个输入到空白处,然后按照同样步骤添加两输入与门(and2)到空白处。
14、将两个输入信号图标更名为sys_clk和reset_n,然后按照图5所示连接摆放好。
图 5 连接图示
15、单击File -> Save,进行文件保存,名称默认即可,如helloword.bdf。
16、单击Assignments –> Pin Planner,添加两个Node Name为sys_clk和reset_n,对应的引脚为28和112。然后关闭Pin Planner对话框即可。
17、单击 Project -> Add/Remove Files in Project…,单击File name后面的浏览按钮,选择.qsys文件,单击Add将其添加进来,然后单击OK。
18、现在进行编译即可。单击Processing -> Start Complilation,进行编译。编译时间过长,大家耐心等待,通过后,将其下载到FPGA中,具体的下载过程,这里就不在追溯,大家可以参考其他资料学习。注意一点:下载后,不要断电,否则下载的东西全部丢失,这是由FPGA特点决定的,大家可以自己了解一下。
硬件部分到此结束,下面进行软件部分设计。
19、打开Nios II 13.0 Software Build Tools for Eclipse,首先,需要进行Workspace Launcher(工作空间)路径的设置,接触过Eclipse的朋友都熟悉,自己设定即可,需要注意的是路径中不要含有空格等,然后单击OK即可。
20、新建工程。单击File -> New -> Nios II Application and BSP from Template,弹出Nios II Application and BSP from Template对话框。先选择对应的SOPC系统,单击SOPC Information File name后面的浏览按钮,选择我们之前硬件部分做好的软核文件,后缀名为.sopcinfo,这里一定要注意,选择的文件一定要对应起来,否则会因为软硬不匹配导致系统失败。我这里选择的nios_qsys.sopcinfo,然后系统会自动读取CPU name,我们不用再进行设置,下面填写Project name,这里我们填
写为helloword,工程模板(Project template)使用默认的即可。然后单击Finish完成即可。这时候会在左侧的Project Explorer中生成两个工程文件,如图6所示。
图 6 生成的工程文件
我们双击打开helloword工程下面的hello_word.c文件,就可以看到c语言代码,我们添加一句printf("Hello word! \n"); 然后,右击我们的helloword工程,选择Nios II -> BSP Editor,进入Nios II BSP Editor配置界面。我们主要在main选项卡下hall中进行配置。具体配置内容见图7。然后单击Generate,生成BSP库。生成完成后,单击Exit退出即可。
21、下面我们编译helloword工程。右击选择Build Project。第一次编译的话,时间也会比较常,耐心等待一下。
图 7 Nios II BSP Editor配置
22、编译完成后,右击工程,选择Run As -> Nios II Hardware,弹出Run Configurations对话框,默认Project选项卡中Project name和Project ELF file name应该都是有内容的,没有的选一下。然后进入Target Connection选项卡,Connections中如果没有东西的话,单击右侧的Refresh Connection来查找我们的下载器,查找后我们单击System ID Prroperties…,进行系统ID检测,检查是否是我们之前设置的ID号,无误后点击Apply,然后再点击Run,这是程序会被自动下载,最终在Nios II Console选项卡中会显示下载完成后程序运行的结果,即发回两句话,具体效果如图8所示。
图 8程序运行效果
至此,整个实验结束,恭喜你坚持到最后并成功完成了本次任务,加油,少年!!
fpga新建nios的更多相关文章
- 初探NIOS II之hello_world
平台背景: 操作系统:win7 64bit 开发板:DE2-115 Quartus ii:15.0及配套的NIOS ii开发平台 一.硬件系统的建立 1.在Quartus里新建工程,这是很基本的就不 ...
- FPGA技术的发展历史和动向
本文关键字:fpga技术,fpga发展, fpga培训,FPGA应用开发入门与典型实例 一.FPGA技术的发展历史 纵观数字集成电路的发展历史,经历了从电子管.晶体管.小规模集成电路到大规模以及超大规 ...
- Nios内部RAM固化配置
选择BSP Editor->Settings ->Advanced->hal->linker,然后勾选allow_code_at_reset.当然如果勾选enable_alt_ ...
- 《FPGA全程进阶---实战演练》第一章之FPGA介绍
1 什么是FPGA FPGA也即是Field Programmable Gate Array的缩写,翻译成中文就是现场可编程门阵列.FPGA是在PAL.GAL.CPLD等可编程器件的基础上发展起来的新 ...
- Nios程序烧写到EPCS方法 - 第1页 - asus119's Blog - EDN China电子设计技术
Nios程序烧写到EPCS方法 - 第1页 - asus119's Blog - EDN China电子设计技术 这里主要是针对EP3C系列FPGA的Nios程序固化到EPCS中的方法做简要说明.硬件 ...
- 【小梅哥SOPC学习笔记】Altera SOPC嵌入式系统设计教程
Altera SOPC嵌入式系统设计教程 第1章 概述 SOPC(System On Programmable Chip,可编程的片上系统)是Altera公司提出来的一种灵活.高效的SOC解决方案.它 ...
- OSD(On Screen Display )技术(转)
源:OSD(On Screen Display )技术 OSD 是 On Screen Display 的缩写,是应用在 CRT/LCD 显示器上,在显示器的荧幕中产生一些特殊的 字形或图形,让使用者 ...
- Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化 每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat
Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 ...
- 关于怎么将Quartus和Nios程序一起固化到FPGA里面
系统:win8.1 SDK:Quartus II 14.1 FPGA:Cyclone IV 1.将Quartus生成的.pof文件(配置Flash即可自动生成,这里不讨论),与Nios生成的.elf文 ...
随机推荐
- Chrome 66 新增异步剪贴板 API
在过去的几年里我们只能使用 document.execCommand 来操作剪贴板.不过,这种操作剪贴板的操作是同步的,并且只能读取和写入 DOM. 现在 Chrome 66 已经支持了新的 Asyn ...
- pycharm2019连接mysql错误08801 ------Connection to django1@localhost failed. [08001] Could not create connection to database server. Attempted reconnect 3 times. Giving up.
Error:Connection to django1@localhost failed. [08001] Could not create connection to database server ...
- spring boot + mybatis + layui + shiro后台权限管理系统
后台管理系统 版本更新 后续版本更新内容 链接入口: springboot + shiro之登录人数限制.登录判断重定向.session时间设置:https://blog.51cto.com/wyai ...
- HTML和JS完成页面点击四个角弹出管理页面
实现方法1: HTML代码: <div class="top-left-corner"></div> <div class="top-rig ...
- 用configmap管理配置
一.ConfigMap介绍管理配置: ConfigMap介绍 Secret 可以为 Pod 提供密码.Token.私钥等敏感数据:对于一些非敏感数据,比如应用的配置信息,则可以用 ConfigMap ...
- cocos2dx基础篇(14) 滚动视图CCScrollView
[3.x] (1)去掉 "CC" (2)滚动方向 > CCScrollViewDirection 改为强枚举 ScrollView::Dire ...
- 【linux开发】Linux下配置java环境 安装eclipse
配置JDK环境 本文转自:http://www.cnblogs.com/fnng/archive/2013/01/30/2883815.html,有修改 下载 登录oracle的网站去下载JDK1.8 ...
- powershell下载网站图片
$picurl = "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=10" $data = ...
- 不容错过的 MySQL史上最全
点击下方链接 http://c.biancheng.net/view/2361.html
- 文档压缩 | gzip、bzip2、xz
6.文档的压缩与打包 Linux下常见后缀名所对应的的压缩工具 .gz 表示由gzip压缩工具压缩的文件 .bz2 表示由bzip2压缩工具压缩的文件 .tar 表示由tar打包程序打包的文件(tar ...
(2013-12-12 21:50:08)