第16讲NiosII应用系统的设计流程

Download Report

Transcript 第16讲NiosII应用系统的设计流程

电子设计自动化技术
讲授:伍宗富
《 E D A 技 术》 课 程 教 学
讲授:伍宗富
湖南文理学院电气与信息工程学院
2015年4月9日星期四
电子设计自动化技术
讲授:伍宗富
第 十六 讲 NiosII应用系统的设计流程
 教学目的:使学生会用Quartus II和Nios II IDE软件进行
NiosII应用系统的设计。
 教学重点:通过实例讲解NiosII系统的设计方法。
 教学难点: NiosII应用系统的设计步骤。
 教学方法:讲授法、计算机辅助法。
 课时计划:2学时
 使用教材:SOPC技术与应用.江国强 编著.北京:机械工业出版社
 主要参考文献:
[1]
[2]
[3]
[4]
[5]
[6]
[7]
[8]
[9]
刘洪涛.ARM嵌入式体系结构与接口技术[M].北京:人民邮电出版社
田耘等.无线通信FPGA设计[M].北京:电子工业出版社
孟宪元等.FPGA嵌入式系统设计教程[M].北京:电子工业出版社
徐光辉等.基于FPGA的嵌入式开发与应用[M].北京:电子工业出版社
沈文斌.嵌入式硬件系统设计与开发实例详解[M].北京:电子工业出版社
周立功等.SOPC嵌入式系统基础教程[M].北京:北京航空航天大学出版社
王彦等.基于FPGA的工程设计与应用[M].西安:西安电子工业出版社
周润景等.基于QuartusII的FPGA/CPLD数字系统设计实例[M].北京:电子工业出版社
http://www.altera.com
电子设计自动化技术
讲授:伍宗富
课题: NiosII应用系统的设计流程
一、 NiosII系统的硬件设计流程
二、 NiosII系统的软件设计流程
三、 NiosII系统中IP核的添加
四、课堂小结
五、作业
电子设计自动化技术
讲授:伍宗富
一、NiosII系统的硬件设计流程
niosii_c

下面以“两个LED交替闪烁”的设计为例
进行NiosII系统的设计流程讲解。
clk
reset_n
out_port_from_the_pio_0[1..0]
inst
1. 新建SOPC设计项目
(1)建立一个文件夹,作为保存设计文
件的工程目录.
(2)建立设计项目名,执行Quartus II
中“File”-> “New Project Wizard”,
器件选“Cyclone II EP2C20Q240C8”。
(3)建立SOPC系统,执行“Tools”
->“SOPC Builder…”->“New
system” (设定语言选VHDL)。
电子设计自动化技术
讲授:伍宗富
一、NiosII系统的硬件设计流程
1. 新建SOPC设计项目
2. 加入NiosII系统组件
(1)加入Nios CPU CORE.
执行“Nios II Processor…”,添加一个Nios
II /e(经济型CPU)
经济型
标准型
快速型
电子设计自动化技术
讲授:伍宗富
一、NiosII系统的硬件设计流程
1. 新建SOPC设计项目
2. 加入NiosII系统组件
(2)加入RAM(32bit/8KB)、PIO(output)组件.
电子设计自动化技术
讲授:伍宗富
一、NiosII系统的硬件设计流程
3. 生成NiosII系统
(1)系统自动分配基地址、自动分配中断地址
电子设计自动化技术
讲授:伍宗富
一、NiosII系统的硬件设计流程
3. 生成NiosII系统
(2)系统生成设置与命令执行
系统提示“SUCCES:
SYSTEM GENERATION COMPLETED”
表示生成正确。
电子设计自动化技术
讲授:伍宗富
一、NiosII系统的硬件设计流程
 “两个LED交替闪烁”的NiosII嵌入式硬件系统设
4.计在Quartus工程中添加Nios系统
假设设计的嵌入式系统工作时钟为50MHz,现输入时钟为25MHz。
故需从Quartus的megafunctions的IO库中添加一个锁相环(PLL)。
锁相环altpll :fin=25MHz , fco= 50MHz , 倍频系数为2。
altpll0
niosii_c
clk
INPUT
VCC
inclk0
PIN_154
inclk0 f requency : 25.000 MHz
c0
clk
reset_n
Operation Mode: Normal
Clk Ratio Ph (dg) DC (%)
c0
2/1
0.00
out_port_from_the_pio_0[1..0]
50.00
inst
inst1
reset
OUTPUT
led[1..0]
PIN_6
PIN_7
Cy clone II
INPUT
VCC
PIN_116
5. 器件选择、引脚锁定、编译下载至Flash配
置芯片(EPCS1),在FPGA芯片中建立硬件
系统。
电子设计自动化技术
讲授:伍宗富
一、NiosII系统的硬件设计流程
 “两个LED交替闪烁”的NiosII嵌入式硬件系统设
计
5. 器件选择、引脚锁定、编译下载至Flash配置
芯片(EPCS4),在FPGA芯片中建立硬件系统。
电子设计自动化技术
讲授:伍宗富
二、NiosII系统的软件设计流程
 “两个LED交替闪烁”的Nios IDE软件设计
1. 新建软件工程
(1)运行Nios IDE,执行Nios IDE中的
“File”->New ->Project ->Nios II C/C++ Application
(2)在新建对话框中设定工程文件名字,选择已建立的
Nios II (CPU)系统文件nios_c.ptf,并选择工程模板。
电子设计自动化技术
讲授:伍宗富
二、NiosII系统的软件设计流程
 “两个LED交替闪烁”的Nios IDE软件设计
2. 程序编写(或根据模板修改)
#include "system.h"
#include "alt_types.h"
int main (void)
{
alt_u8 led = 0x2; alt_u8 表示无符号8位数,在alt_types.h中定义
volatile int i;
while (1)
{
for(i=0;i<200000;i++) ;循环延时
led = 0x1;
*(unsigned int *)PIO_0_BASE = led; 表示控制led的PIO基地址
for(i=0;i<200000;i++) ;
led = 0x2;
*(unsigned int *)PIO_0_BASE = led;
}
return 0;
}
电子设计自动化技术
讲授:伍宗富
二、NiosII系统的软件设计流程
 “两个LED交替闪烁”的Nios IDE软件设计
3. 编译工程
(1)编译设置(使编译编译出更高效、占用空间更小的代码)
①工程属性设置:鼠标右击,选择快捷菜单的
“Properties”。在对话框中选C/C++Build->Tool Setting
-> Nios II Compiler-> General,在“Optimization
Level”中选择“Optimze size(-Os)。
电子设计自动化技术
讲授:伍宗富
二、NiosII系统的软件设计流程
 “两个LED交替闪烁”的Nios IDE软件设计
3. 编译工程
(1)编译设置(使编译编译出更高效、占用空间更小的代码)
②工程系统库属性设置:鼠标右击,选择快捷菜单的
“Properties”。在对话框中选C/C++Build->Tool Setting
-> Nios II Compiler-> General,在“Optimization Level”
中选择“Optimze size(-Os)。
在对话框中选择“System Libray”;
将“Max file descriptors:” 改为4;
清除(不选)“Clean exit”,
“Link with profiling library”;
复选“Reduced device drivers”和
“Small C library”
电子设计自动化技术
讲授:伍宗富
二、NiosII系统的软件设计流程
 “两个LED交替闪烁”的Nios IDE软件设计
3. 编译工程
(2)编译
选择工程:鼠标右击,选择快捷菜单的“Build Project”
编译成功。占用内存空间680B,剩余7512B
建立nios II_c系统时定义的是8K内存。
电子设计自动化技术
讲授:伍宗富
二、NiosII系统的软件设计流程
 “两个LED交替闪烁”的Nios IDE软件设计
4. 调试工程(连接好下载线至FPGA核心板的JTAG口)
菜单Run->Debug As->Nios Hardware.
电子设计自动化技术
讲授:伍宗富
二、NiosII系统的软件设计流程
 “两个LED交替闪烁”的Nios IDE软件设计
5. 运行工程(连接好下载线至FPGA核心板的JTAG口)
Nios IDE菜单Tool->Quartus II Programmer.
 软件设计完成并调试成功后,在Quartus II中
将整个项目进行编译,将硬件配置信息与软
件初始化信息编译在一起,并下载固化在配
置芯片(EPCS4)中,最终使用FPGA实现设
计者定制的处理器及控制器等于一体的NiosII
嵌入式系统。
电子设计自动化技术
讲授:伍宗富
三、 NiosII系统中IP核的添加
1. 加入用户自定义NiosII系统的外部实体
方法①将用户自定义的程序包复制到安装目录(altera
\quartus\sopc_builder\components)或工程目录中,便
可在用户模块下直接调用;
方法②将实体(.vhd或.v)文件复制到工程目录中采
用如下方法设置可产生User Logic项;
(a)用鼠标左键双击组件选择栏中Legacy Components
->“Interface to User Logic” ->“Add”,选择所需的实
体(.vhd或.v)文件;使用“Read port-list from
files”显示实体的端口信息,在Port Information栏中
对每个端口名后面的“Type”(类型)进行设置;
(b)在“Timing”页面中完成组件的时序设置;在“Publish”页面
中的“”Component Name”栏目中完成组件名称的命名;
(c)完成组件加入,“Add to Library”加入工程目
录中或 “Add to System”加入设计系统中。
电子设计自动化技术
讲授:伍宗富
三、 NiosII系统中IP核的添加
2.直接调用实例(sopc_de2s1)
将用户自定义的程序包(user_ip文件夹中的
SEG7_LUT_8、SRAM_16Bit_512K、Binary_VGA_Controller)
复制到安装目录(altera
\quartus\sopc_builder\components),便可在用户模块
下直接调用。
电子设计自动化技术
讲授:伍宗富
三、 NiosII系统中IP核的添加
2.直接调用实例(sopc_de2s2)
将用户自定义的程序包(user_ip文件夹中的ISP1362)
复制到工程目录中,便可在用户模块下直接调用。
电子设计自动化技术
讲授:伍宗富
三、 NiosII系统中IP核的添加
3.产生User Logic项后调用实例(sopc_de2s3)
将用户自定义的实体( user_ip文件夹中的ISP1362中的
ISP1362_IF.v)文件复制到工程目录中后,进行
Legacy Components
->“Interface to User Logic” ->“Add”设置加入,产生User Logic
项的模块,便可在User Logic项下直接调用。
建立时间
名称
保持时间
端口Type设置
等待时间
用户组
加入库
加入系统
电子设计自动化技术
讲授:伍宗富
课堂小结
一、 NiosII系统的硬件设计流程
(Nios CPU )
二、 NiosII系统的软件设计流程
( Nios IDE )
三、 NiosII系统中IP核的添加
(方法,怎样产生User Logic项)
电子设计自动化技术
讲授:伍宗富
课外作业:
1.加入用户自定义NiosII系统的外部
实体的方法有哪些?
2.上机实验