NiosIISOPC开发.ppt
《NiosIISOPC开发.ppt》由会员分享,可在线阅读,更多相关《NiosIISOPC开发.ppt(47页珍藏版)》请在三一办公上搜索。
1、5.3 Nios II嵌入式系统开发软件,SOPC Builder是Altera公司推出的一种可加快在PLD内实现Nios II嵌入式处理器及其相关接口的设计工具。其功能与PC机应用程序中的“引导模板”类似,设计者可以根据需要确定处理器模块及其参数,选择所需的外围控制电路(如存储器控制器、总线控制器、I/O控制器、定时器等)和外设(如存储器、鼠标、按钮、LED、LCD、VGA等),创立一个完整的嵌入式处理器系统。SOPC Builder还允许用户修改已经存在的设计,为其添加新的设备和功能。,2023/7/7,1,5.3.1 Nios II的硬件开发 Nios II是一个用户可以自行定制的CPU
2、,用户可以增加新的外设,增加新的指令,分配外设的地址等。Nios II的硬件开发就是由用户定制合适的CPU和外设。SOPC Builder提供了大量的IP Core来加快Nios II外设的开发速度,用户也可以使用VHDL或Verilog HDL来定制外设。Nios II的硬件开发必须得到特定的开发板的硬件支持。下面以DE2(含DE2 70)开发板为例,介绍Nios II(9.0版本)硬件开发的具体流程。在DE2开发板上,支持Nios II系统的外部设备包括SDRAM、SRAM、FLASH、LCD、七段数码管、发光二极管、按钮开关、电平开关、VGA、ISP1362、I2C器件等,大部分外部都采
3、用Nios II软件提供的组件,但SRAM、七段数码管、VGA控制器和I2C器件属于DE2开发板自定义的组件,因此在进行Nios II系统开发之前,应将这些组件的程序包加入到Nios II的用户自定义组件(User Logic)中。,2023/7/7,2,在DE2开发板提供的用户光盘的DE2DE2_NIOS_HOST_MOUSE_VGA工程文件夹(或其他工程文件夹)中,包含SRAM、七段数码管、VGA控制器、I2C器件的程序包,它们分别是user_logic_SRAM_16Bits_512K、user_logic_SEG7_LUT_8、user_logic_VGA_Controller和use
4、r_logic_Open_I2C。将这些程序包(文件夹)复制到用户工程(如SOPC_DE2)目录中,打开SOPC Builder软件后,在其组件库的“User Logic”项下,就可以找到这些自定义组件。对于新版DE2开发板上的组件程序包,DE2的组件名分别为SRAM_16Bits_512K、SEG7_LUT_8、Binary_VGA_Controller等,将这些组件的文件夹复制到工程目录中后,这些组件会出现在SOPC Builder软件组件库的“Terasic Technologies Inc”栏目下。,2023/7/7,3,1.新建SOPC设计项目 设计前首先需要在Quartus II中
5、建立一个设计项目,并选择Cyclone II系列的EP2C35F672C6或EP2C70F896C6器件为目标芯片(EP2C35F672C6是DE2开发板上的目标芯片,EP2C35F672C6是DE2 70开发板上的目标芯片)。执行“Tools”菜单的“SOPC Builder”命令,打开Quartus II集成环境的SOPC开发工具,呈现的SOPC Builder软件窗口界面。执行SOPC Builder软件窗口“File”菜单的“New system”命令,弹出“Create New System”对话框,在对话框中输入需要建立的SOPC系统的名称(例如使用nios_0为工程名称),设定语
6、言为VHDL或Verilog HDL(建议使用Verilog HDL)。完成设定后用鼠标单击“OK”按钮,进入SOPC Builder设计。,2023/7/7,4,SOPC Builder界面分成三个部分,界面左边是组件(Nios II嵌入式系统元件)选择栏,用树型结构列出了SOPC Builder的组件;右边空白处用于加入用户定制Nios II系统的组件;下方是提示栏,用于显示SOPC Builder的提示信息和警告错误信息。在界面的右上方,可以选择器件系列和系统工作频率。,SOPC Builder软件窗口界面,2023/7/7,5,2.加入Nios II系统的组件 基本的SOPC系统大致可
7、以分为FPGA、存储器和外围元件三个部分。FPGA部分的核心是NIOS CPU CORE(CPU核),设计工作主要在FPGA部分进行。基于DE2开发板的Nios II系统包含NIOS CPU CORE(CPU核)、通用异步通信总线JTAG UART、串口UART、按钮开关BUTTON PIO、电平开关SW PIO、绿色LED、红色LED、七段数码管、Avalon三态总线桥、片外SRAM、Timer(定时器)、LCD(液晶显示器)、Flash(快闪存储器)、FLASH控制器、SDRAM控制器、系统ID组件、I2C(I2C组件)、VGA控制器和ISP1362(USB控制器)。,2023/7/7,6
8、,(1)加入NIOS CPU CORE(CPU核)在SOPC Builder的组件库中,用鼠标双击Component Library(组件库)中的“Nios II Processor”项,弹出添加新的Nios II(CPU核)对话框。在对话框中提供Nios II系列微处理器的三个成员供选择:Nios II/e(经济型)成员,具有占用最小逻辑的优化,占用600700LEs(逻辑元件)。Nios II/f(快速型)成员,具有高性能的优化,占用14001800LEs。Nios II/s(标准型)成员,在占用逻辑和高性能优化方面的性能居中,占用12001400LEs。,2023/7/7,7,本设计选择
9、标准型Nios II/s成员。完成设置后,系统将“cpu_0”作为一个CPU核组件已经加入SOPC系统,并显示该系统已经有instruction_Master(指令主控器)、data_Master(数据总线主控器)和jtag_debug_module(JTAG调试模式)存在。用鼠标右键点击选中“cpu_0”,弹出组件操作快捷菜单,在快捷菜单中选择“Rename”项,可以更改组件名称(本设计保持默认为“cpu_0”)。在快捷菜单中还可以选择“Edit”(编辑)、“Lock Base Address”(锁定地址)等操作。,2023/7/7,8,(2)加入JTAG UART JTAG UART(JT
10、AG通用异步通信总线)用于Flash存储器的读写控制。用鼠标双击组件库中的“Interfase”“Serial”栏目下的“JTAG UART”项,在弹出加入JTAG UART属性对话框中。对话框中各参数保持默认值不变,完成JTAG UART组件的加入后,组件名称保持默认的“jtag_uart_0”不变。,加入JTAG UART对话框,2023/7/7,9,加入UART对话框,(3)加入UART UART是常用的串口,Nios II系统可以通过UART串口与计算机通信,也用于NIOS系统的仿真调试。用鼠标双击组件库中的“Interfase”“Serial”栏目下的“UART(RS232 seri
11、es port)”项,弹出UART属性对话框。在对话框中选择波特率为115200,其余参数保持默认设置,完成UART的加入后,组件名称保持默认的“uart_0”不变。,2023/7/7,10,(4)加入BUTTON PIO DE2开发板上有4只按钮开关key3key0,设计中需要加入一个4位的按钮PIO。用鼠标双击组件库中的“Peripherals”“Microcontroller Peripherals”栏目下的“PIO”项,弹出加入PIO的“Basic setting”对话框。在对话框中设置“Width”(位宽)为4位,在“Direction”栏目下选择“Input Ports Only”
12、(输入)模式。然后用鼠标单击“Next”进入PIO的“Input Options”选项设置对话框页面,在此对话框页面中可选择产生中断请求(IRQ)的触发模式,包括“Level”(电平)和“Edge”(边沿)两种触发模式;在选择“Edge”触发模式下,还要选择触发边沿的类型,其中有“Rising Edge”(上升沿)、“Falling Edge”(下降沿)和“Either Edge”(任意边沿或双边沿)三种边沿类型。在本设计中选择“Edge”触发模式下的“Either Edge”类型。完成PIO的加入后,将组件名称更改为“button_pio”。,2023/7/7,11,(5)加入电平开关SW
13、PIO DE2开发板上有18只按钮开关SW17SW0,设计中需要加入一个18位的SW PIO。用鼠标双击组件库中的“Peripherals”“Microcontroller Peripherals”栏目下的“PIO”项,在弹出的加入PIO的“Basic setting”对话框中,设置“Width”为18位,在“Direction”栏目下选择“Input Ports Only”(输入)模式。完成电平开关组件的加入后,将组件名称更改为“switch_pio”。,(6)加入绿色LED DE2开发板上有9只绿色发光二极管LEDG8LEDG0,设计中需要加入发光二极管PIO。在加入PIO对话框中,设置“
14、Width”为9位,在“Direction”栏目下选择“Output Ports Only”(输出)模式。完成绿色LED组件的加入后,将组件名称更改为“led_green”。,2023/7/7,12,(7)加入红色LED DE2开发板上有18只红色发光二极管LEDR17LEDR0,设计中需要加入发光二极管PIO。在加入PIO对话框中,设置“Width”为18位,在“Direction”栏目下选择“Output Ports Only”(输出)模式。完成红色LED组件的加入后将组件名称更改为“led_red”。,(8)加入七段数码管 DE2开发板上有8只七段数码管hex7hex0,设计需要加入8个
15、七段码数码管。用鼠标双击组件库中“User Logic”的“SEG7_LUT_8”项,加入七段数码管PIO。完成七段数码管组件的加入后,将组件名称更改为“SEG7_Display”。,2023/7/7,13,(9)加入片外SRAM DE2开发板上有一片51216KB的SRAM,属于自定义组件。用鼠标双击组件库中“User Logic”的“SRAM_16Bits_512K”项,加入SRAM。完成片外SRAM组件的加入后,将组件名称更改为“sram_0”。,(10)加入定时器Timer 用鼠标双击SOPC Builder界面的组件库中“Preripherals”“Microcontroller P
16、reripherals”下的“Interval Timer”项,弹出加入Timer对话框,一切都按照对话框默认值配置,完成Timer的加入,组件名称保持默认的“timer_0”不变。,2023/7/7,14,(11)加入LCD(液晶显示器)用鼠标双击SOPC Builder界面的组件库中的“Preripherals”“Display”的“Character LCD”项,完成LCD的加入。完成LCD组件加入后,将组件名称更改为“lcd_16207_0”。添加的LCD的型号为Optrex 16207,支持2行字符显示,每行16个字符。,(12)加入Avalon三态总线桥 NIOS CPU与SRAM
17、等外部扩展器件相连时需要Avalon三态总线桥。用鼠标双击组件库中“Bridges and Adapters”“Memory Mapped”的“Avalon-MM Tristate Bridge”项,在加入Avalon三态总线桥对话框中,参数设置采用系统默认值。组件名称保持默认的“tri_state_bridge_0”不变。,2023/7/7,15,(13)加入Flash(快闪存储器)用鼠标双击SOPC Builder界面的组件库中的“Memory and Memory Controllers”的“Flash Memory Interface”项,弹出加入Flash对话框,在对话框的“Attr
18、ibutes”页面的“Presets”下拉菜单中,选择“(Custom)”(惯例)项,并在对话框的“Size”栏目下,填入Address Width(地址宽度)为20bits,Data Width(数据宽度)为8bits。用鼠标单击对话框上部的“Timing”按钮(或下部的“Next”按钮),进入Flash参数设置的“Timing”页面,此页面用于对Flash的建立(Setup)时间、等待(Water)时间和保持(Hold)时间参数进行设置,将Setup时间设置为40(ns),Water时间设置为160(ns),Hold时间设置为40(ns)。完成Flash组件的加入后,组件名称保持默认的“c
19、fi_flash_0”不变,并将其输入端口“s1”与Avalon三态总线桥组件的“tristate_master”端口连接。,2023/7/7,16,(14)加入FLASH控制器 FLASH控制器用于控制Flash存储器的操作。用鼠标双击SOPC Builder界面的组件库中的“Memory and Memory Controllers”“Memory”的“EPCS Serial Flash Controller”项,弹出加入Flash控制器对话框。完成FLASH控制器的加入,保持组件默认的名称“epcs_flash_controller”不变。,(15)加入SDRAM控制器 SDRAM控制器
20、用于控制SDRAM存储器的操作。用鼠标双击SOPC Builder界面的组件库中的“Memory and Memory Controllers”“SDRAM”的“SDRAM Controller”项,弹出加入SDRAM控制器对话框的“Memory Profile”页面。在页面的“Presets”栏目中选择“Custom”(常规),设置“Data Width”(数据宽度)为16Bits,其他参数保持默认值。,2023/7/7,17,用鼠标单击对话框上方的“Timing”按钮(或用鼠标单击下方的“Next”按钮),进入对话框的“Timing”页面,保持此页面参数的默认设置。完成SDRAM控制器的加
21、入后,保持组件默认的名称“sdram_0”不变。,(16)加入系统标识System ID组件 系统标识system ID是SOPC中的一个简单只读组件。Nios II处理器系统利用它来检验软件程序和配置与在FPGA中的硬件电路是否一致。如果运行程序的ID号和FPGA中的系统标识不一致,软件将不能正确运行。用鼠标双击组件库中“Peripherals”“Debug and Performance”的“System ID Peripheral”项,弹出加入System ID组件对话框。完成System ID组件的加入后,将组件的名称更改为“sysid”。,2023/7/7,18,5.3.2 调整SD
22、RAM地址 首先进入cpu_0的编辑方式,将设置复位地址(Reset Address)和其余的程序和数据(Exception Address)放在sdram_0中,然后执行SOPC窗口“System”菜单中的“Auto-Assign Base Addresses”命令,系统将自动调整SDROM和其他设备的基本地址。完成cpu_0的编辑修改后,用鼠标单击SOPC窗口下的“Generate”按钮,启动系统生成Nios II开发者的SOPC系统。至此Nios II核(nios_0)已生成,用鼠标单击SOPC窗口“Exit”按钮,退出SOPC Builder窗口界面(也可以不退出)。,2023/7/7
23、,19,5.3.3 生成Nios II硬件系统 Nios II核生成后还要将其下载到目标芯片中,转换成实际的硬件电路并进行调试,验证设计的正确性。生成Nios II硬件系统需要建立相应的顶层设计文件,顶层设计文件可以用原理图编辑法实现,也可以用HDL文本编辑法实现。基于DE2开发板的Nios II硬件系统的顶层文件,采用Verilog HDL文本编辑方式实现。,1.编辑Nios II顶层文件 在基于DE2开发板的Nios 系统中,需要一块复位电路Reset_Delay实现系统的复位操作,还需要一块锁相环电路SDRAM_PLL产生50MHz和27MHz的系统时钟。用户的Nios 系统加入了I2C
24、组件和VGA组件,也需要把I2C控制器文件I2C_Controller.v、I2C配置文件I2C_AV_Config.v和VGA控制器文件VGA_Controller.v复制到自己的工程文件夹中。,2023/7/7,20,2.引脚锁定 由于DE2开发板中的电路是固定的,Nios II系统的引脚锁定也是唯一的,因此可以利用DE2开发板提供的引脚锁定文件,节省引脚锁定操作的时间。将DE2/DE2_NIOS_HOST_MOUSE_VGA/目录下的顶层文件的引脚锁定文件DE2_NIOS_HOST_MOUSE_VGA.qsf,复制或以“另存为”方式生成用户自己的引脚锁定文件(如SOPC_DE2.qsf)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- NiosIISOPC 开发
链接地址:https://www.31ppt.com/p-5441419.html