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文 ...
随机推荐
- android日志优先级
Android 的日志分为如下几个优先级(priority): V —— Verbose(最低,输出得最多) D —— Debug I —— Info W —— Warning E —— Error ...
- windows7 中 wacom数位板如何关闭点击水波 和长按右键这两个特效
就是点住笔尖不动,就会弹出右键,这个功能是微软操作系统具有的一项功能,,如果您感觉不便,可以按以下方法将其去掉: 1.打开"控制面板--笔和触摸--笔选项--按下并保持--设置": ...
- 探究代码审查(Code review)
Code review 是什么 对软件源代码的系统性检查,查找软件源代码质量,结构,漏洞等问题. PS:Code review ≍ Code inspections ≥ Code walkthrou ...
- qemu-kvm: unable to map backing store for guest RAM: Cannot allocate memory
当给 KVM 虚拟机设置 hugepage 时,需要在虚拟机的配置文件里加上下面一段: <memoryBacking> <hugepages/></memoryBacki ...
- Linux驱动开发8——中断处理
中断包括软中断和硬中断两种,中断是一种异步I/O机制,即中断可以发生在任意时间点. 1.硬中断 硬件中断包括触发中断和处理中断两部分,而维系两者的是中断号,中断号是一种硬件资源. 1.1.注册和释放中 ...
- inode节点号
查看分区信息命令 df -Th 查看文件inode节点号 ls -i b.txt 查看系统中与b.txt 的inode节点号相同的所有文件,即硬链接 find / -inum xxxx(b.tx ...
- ASP.NET对路径"C:/......."的访问被拒绝 解决方法小结 [转载]
问题: 异常详细信息: System.UnauthorizedAccessException: 对路径“C:/Supermarket/output.pdf”的访问被拒绝. 解决方法: 一.在IIS中的 ...
- 系统分析与设计HW8
描述软件架构与框架之间的区别与联系 软件架构是有关软件整体结构与组件的抽象描述,用于指导大型软件系统各个方面的设计.架构模式(style)是特定领域常见问题的解决方案. 框架是特定语言和技术的架构应用 ...
- jmeter链接数据库操作
jmeter链接数据库操作步骤 首先要先下载mysql-connector-java-5.1.39-bin.jar驱动包 链接:https://pan.baidu.com/s/14F4rp4uH1hX ...
- suitecrm配置(nginx设置)
suitecrm配置在nginx下的一些设置 server { listen 88; server_name 192.168.2.253; #charset koi8-r; #access_log / ...
(2013-12-12 21:50:08)