第10、11章SOPC系统开发_第1页
第10、11章SOPC系统开发_第2页
第10、11章SOPC系统开发_第3页
第10、11章SOPC系统开发_第4页
第10、11章SOPC系统开发_第5页
已阅读5页,还剩118页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FPGA-CPLD原理及应用 第10、11章 SOPC系统开发FPGA-CPLDFPGA-CPLD原理及应用原理及应用 FPGA-CPLD原理及应用 第10、11章 SOPC系统开发第第10章章 SOC系统硬件开发系统硬件开发FPGA-CPLD原理及应用 第10、11章 SOPC系统开发定义 什么是 SOPC 和 Nios II? 片上可编程系统 软核处理器系统 NiosII 设计流程 (both hardware and software) SOPC Builder NiosII IDE 设计和配置FPGAFPGA-CPLD原理及应用 第10、11章 SOPC系统开发问题: 如何减少花费、复

2、杂性和功耗FlashSDRAMCPUDSPI/OI/OI/OFPGAI/OI/OI/OCPUDSP解决方法:用可编程逻辑器件代替外部设备解决方法:用可编程逻辑器件代替外部设备FPGAFPGA-CPLD原理及应用 第10、11章 SOPC系统开发Nios II 处理器系统 NiosII 处理核心处理核心 片上设备片上设备 片上存储器片上存储器 片外设备和片外存储器接口片外设备和片外存储器接口FPGAAvalon Switch FabricUARTGPIOTimerSPISDRAMControllerOn-ChipROMOn-ChipRAMNios IICPUDebugCache所有功能集成在一片

3、所有功能集成在一片 AlteraAltera 的的FPGAFPGA上上FPGA-CPLD原理及应用 第10、11章 SOPC系统开发User-DefinedInterfaceMemoryInterfaceOn-ChipDebug CoreOff-ChipSoftware TraceMemoryUART nTimer nSPI nGPIO nDMA nAvalon Switch FabricInstr.DataAddressDecoderInterruptControllerWait StateGenerationData inMultiplexerDynamicBus SizingAvalon

4、Master/SlavePortInterfacesMasterArbitration典型 Nios II 系统结构UART 0Timer 0SPI 0GPIO 0DMA 0MemoryInterfaceUser-DefinedInterfaceNios IICPUClock Domain CrossingFPGA-CPLD原理及应用 第10、11章 SOPC系统开发NiosII NiosII 设计流程设计流程FPGA-CPLD原理及应用 第10、11章 SOPC系统开发Nios嵌入式处理器软、硬件开发流程Nios Design FlowSOPC Builder GUIConnect Bloc

5、ksProcessor LibraryCustom InstructionsPeripheral LibrarySelect & Configure Peripherals, IPIP ModulesConfigure ProcessorGeneratenEDIF NetlistnHDL Source FilesnTestbenchSynthesis &Fitter nUser DesignnOther IP BlocksHardware DevelopmentQuartus IIOn-ChipDebugSoftware TraceHard BreakpointsSignalT

6、ap IIAlteraPLD JTAG,Serial, orEthernetExecutableCodeHardwareConfigurationFileVerification& Debug(1 1)(2 2)(3 3)(4 4)nC Header filesnCustom LibrarynPeripheral DriversCompiler,Linker, DebuggerSoftware DevelopmentnUser CodenLibrariesnRTOSGNU ToolsNios II IDEFPGA-CPLD原理及应用 第10、11章 SOPC系统开发SOPC Build

7、er GUInHDL 源文件源文件n测试测试台台编译编译/分配引脚分配引脚n用户逻辑设计用户逻辑设计n其他其他IP模块模块硬件开发硬件开发 Quartus IINios II 系统设计流程连接各外设模块连接各外设模块处理器库处理器库用户自定义命令用户自定义命令外设模块库外设模块库选择并配置外设、选择并配置外设、 IPIP 模模块块配置配置Nios II处理器处理器nC 头头文件文件n用用户库户库函数函数n外外设驱动设驱动编译、连接、调试编译、连接、调试软件开发软件开发n用户代码用户代码n库函数库函数n操作系统操作系统GNU Tools编译生成系统编译生成系统片上调试片上调试Altera FPG

8、A JTAG、串口、网口串口、网口可执行代码可执行代码硬件配置文件硬件配置文件调试验证调试验证FPGA-CPLD原理及应用 第10、11章 SOPC系统开发NIOS II 常见问题总结 地址自动分配: 单击单击system-Auto-Assign Base Addresses器件选型:EP4CE115F29C7引脚分配:分配、输入输出、电压电路图正确裁剪重新生成FPGA-CPLD原理及应用 第10、11章 SOPC系统开发DE2-115Altera 60-nmCyclone IV EFPGA with115KLEsExpansion HeaderRS-232 PortEthernet10/10

9、0/1000MVGAOutVideoInLineOutLineInMicInLCD 16x2 Module7-segment Displays18 SlidesSwitches64MBSDRAM x22MBSRAM8MBFLASH4 Push-buttonsIR ReceiverUSBHostUSBDeviceUSBBlaster PortSMA Ext Clock InSMA Ext Clock OutHSMC ConnectorPS/2 PortFPGA-CPLD原理及应用 第10、11章 SOPC系统开发DE2-115SD Card SocketEEPROMFPGA-CPLD原理及应用

10、第10、11章 SOPC系统开发FPGA 硬件设计流程 综合综合FPGA FPGA 设计环境设计环境建立简单的嵌入式子系统建立简单的嵌入式子系统- - 通过简单的通过简单的GUI (inc. Nios GUI (inc. Nios II processor and peripherals)II processor and peripherals)添加组件添加组件- 用用 Quartus II 和和SOPC BuilderFPGA-CPLD原理及应用 第10、11章 SOPC系统开发进入SOPC Builder 新建工程新建工程 点击点击Tools-SOPC Builder 或点击快捷键或点击快

11、捷键FPGA-CPLD原理及应用 第10、11章 SOPC系统开发进入SOPC Builder 进入进入SOPC后给后给SOPC系统命名系统命名FPGA-CPLD原理及应用 第10、11章 SOPC系统开发SOPC Builder 系统页面nAltera, Partner & User Cores -处理器处理器-存储器接口存储器接口-外围设备外围设备-三态桥三态桥-硬件加速器硬件加速器-用户输入逻辑用户输入逻辑 (如:用户自定义外设如:用户自定义外设)Over 60 Cores AvailableTodayFPGA-CPLD原理及应用 第10、11章 SOPC系统开发SOPC Bui

12、lder 系统内容Component连接面板连接面板地址域地址域中断优先级中断优先级时钟域时钟域FPGA-CPLD原理及应用 第10、11章 SOPC系统开发时钟域 通过逻辑自动插入时钟域通过逻辑自动插入时钟域 时钟域的数量时钟域的数量 通过GUI对时钟添加、命名和管理FPGA-CPLD原理及应用 第10、11章 SOPC系统开发标准和用户自定义外设FPGA-CPLD原理及应用 第10、11章 SOPC系统开发双击或者按双击或者按Add建立嵌入式系统的地址域建立嵌入式系统的地址域 如:0 x0插入NiosII0 x0008000000 x0010000000 x000400000FlashOt

13、her PeripheralsSDRAMSystem Memory SpaceFPGA-CPLD原理及应用 第10、11章 SOPC系统开发配置 Nios II CPU只配置Core Nios II CachesMemory InterfacesJTAG 三部分,其他部分以后实际应用时需要在进行配置。FPGA-CPLD原理及应用 第10、11章 SOPC系统开发Nios II 设计版本设计版本经济型:速度最慢、占用资源最少标准型:速度、资源使用适中快速型: 速度最快、占用资源最多选择Nios II设计版本 复位、异常地址在系统中有存储器后再分配FPGA-CPLD原理及应用 第10、11章 SO

14、PC系统开发选择高速缓存并设置TCM在快速版本时指令和数据在快速版本时指令和数据Cache才允许使用才允许使用在标准版本时只允许使用指令在标准版本时只允许使用指令Cache在经济版本中不允许使用在经济版本中不允许使用CacheCache占用占用FPGA片内存储器资源,因此不可以超过内存储器容量片内存储器资源,因此不可以超过内存储器容量FPGA-CPLD原理及应用 第10、11章 SOPC系统开发选择JTAG 调试核当配置当配置Nios II处理器核处理器核时选择适当的时选择适当的 JTAG 调试级数调试级数 级数越高允许调试的方式越多,所使用的资源也越多FPGA-CPLD原理及应用 第10、1

15、1章 SOPC系统开发配置外设 Nios系统基本外设(任何一个系统都必不可少)系统基本外设(任何一个系统都必不可少) 易失性存储器 用于调试的JTAG 非易失性存储器 Nios系统常用的外设系统常用的外设 PIO 定时器 System ID Nios系统其他外设可根据需要添加不再例举系统其他外设可根据需要添加不再例举FPGA-CPLD原理及应用 第10、11章 SOPC系统开发添加JTAG口 在在System Compotent中双击中双击JTAG UART 配置配置JTAG后单击后单击FinishFPGA-CPLD原理及应用 第10、11章 SOPC系统开发添加片上存储器 在在System

16、Compotent中双击中双击On-Chip Memory(RAM or ROM) 配置配置On-Chip Memory后单击后单击Finish主要需配置数据宽度和Memory的大小FPGA-CPLD原理及应用 第10、11章 SOPC系统开发添加SDRAM 在在System Compotent中双击中双击SDRAM Controller 配置配置SDRAM Controller后单击后单击Finish配置数据宽度配置芯片容量FPGA-CPLD原理及应用 第10、11章 SOPC系统开发添加EPCS控制器 在在System Compotent中双击中双击EPCS Serial Flash Co

17、ntroller 配置配置EPCS Serial Flash Controller后单击后单击FinishFPGA-CPLD原理及应用 第10、11章 SOPC系统开发添加PIO口 在在System Compotent中双击中双击PIO(Parallel I/O) 配置配置PIO(Parallel I/O)后单击)后单击Finish主要需配置:I/O宽度I/O类型(根据配置的类型不同单击“Next”还有更多须配置的选项)FPGA-CPLD原理及应用 第10、11章 SOPC系统开发添加定时器 在在System Compotent中双击中双击Interval Timer 配置配置Interval

18、 Timer后单击后单击Finish指定定时时间指定寄存器指定定时计数器位宽FPGA-CPLD原理及应用 第10、11章 SOPC系统开发添加System ID Peripheral 在在System Compotent中双击中双击System ID Peripheral 配置配置System ID Peripheral后单击后单击FinishFPGA-CPLD原理及应用 第10、11章 SOPC系统开发指定中断地址 双击双击CPU后进入后进入Nios II Processor 选择中断地址后单击选择中断地址后单击FinishFPGA-CPLD原理及应用 第10、11章 SOPC系统开发自动分

19、配外设基地址 在通常情况下,添加完外设后都会存在地址冲突问题,在通常情况下,添加完外设后都会存在地址冲突问题,由于手动分配地址往往很麻烦,所以可以使用自动分配由于手动分配地址往往很麻烦,所以可以使用自动分配外设的基地址外设的基地址 单击单击system-Auto-Assign Base Addresses 系统将自动分配地址系统将自动分配地址FPGA-CPLD原理及应用 第10、11章 SOPC系统开发自动分配中断号 在通常情况下,添加完外设后有时中断号会冲突,在不在通常情况下,添加完外设后有时中断号会冲突,在不关心中断优先级的情况下所以可以自动分配外设的中断关心中断优先级的情况下所以可以自动

20、分配外设的中断号号 单击单击system-Auto-Assign IRQs 系统将自动分配中断号系统将自动分配中断号FPGA-CPLD原理及应用 第10、11章 SOPC系统开发SOPC Builder 系统编译 转入转入System Generation后单击后单击Generation即可进行编译即可进行编译 Note: 可以从这里链接到Nios II IDE 编译通过后一个编译通过后一个Nios软核就完成了软核就完成了FPGA-CPLD原理及应用 第10、11章 SOPC系统开发 在在Quartus II用用HDL代码或原理图工具进入顶层设计代码或原理图工具进入顶层设计综合 SOPC Bu

21、ilder 子系统SOPC Builder LogicFPGA-CPLD原理及应用 第10、11章 SOPC系统开发用 HDL 代码写顶层文件top_module (outa, outb, clk, rst, ina,inb,inc, );/ SOPC Builder Instance in Top-Level Code:SOPC_system SOPC_instance_0 (/ 1) global signals: clk, reset_n, / The_button_pioin_port_to_the_button_pio, / The_ext_ram_bus_avalon_slave

22、be_n_to_the_ext_ram,ext_ram_bus_data, ext_ram_bus_readn,read_n_to_the_ext_ram, reset_to_the_lan91c111, select_n_to_the_ext_flash, select_n_to_the_ext_ram, write_n_to_the_ext_flash, write_n_to_the_ext_ram, / The_lcd_display LCD_E_from_the_lcd_display, LCD_RS_from_the_lcd_display, LCD_RW_from_the_lcd_

23、display, LCD_data_to_and_from_the_lcd_display,FPGA-CPLD原理及应用 第10、11章 SOPC系统开发用原理图画顶层文件如下图调出模块如下图调出模块 然后编译系统然后编译系统FPGA-CPLD原理及应用 第10、11章 SOPC系统开发SOPC Builder 产生 .PTF 文件记录记录SOPC Builder的文本本件的文本本件描述描述Nios II 系统系统被软件开发工具使用被软件开发工具使用FPGA-CPLD原理及应用 第10、11章 SOPC系统开发Nios II 软件设计过程可执行代码可执行代码nC 头头文件文件n用用户库户库函数

24、函数n外外设驱动设驱动编译、连接、调试编译、连接、调试软件开发软件开发n用户代码用户代码n库函数库函数n操作系统操作系统GNU ToolsFPGA-CPLD原理及应用 第10、11章 SOPC系统开发第第11章章 SOPC系统软件开发系统软件开发FPGA-CPLD原理及应用 第10、11章 SOPC系统开发Nios II IDE (软件开发环境)* 软件开发工具软件开发工具 连接目标板连接目标板 硬件(JTAG) 指令仿真 ModelSim-Altera 软件 高级硬件调试工具高级硬件调试工具 软件和硬件断点调试,数据触发和跟踪 支持支持Flash* Based on Eclipse Proj

25、ectFPGA-CPLD原理及应用 第10、11章 SOPC系统开发Workspace 对话框当你第一次打开当你第一次打开Nios II IDE时会出现时会出现 主要工具打开之前可以打开多个可以打开多个Nios II IDE 工程工程 在每次打开Nios II IDE时可以选择workspace 默认 C:alterakitsnios2bineclipseworkspace每个每个“workspace” 都有它自己的设置都有它自己的设置FPGA-CPLD原理及应用 第10、11章 SOPC系统开发Nios II IDE 工作台工程目录工程目录终端窗口终端窗口文件窗口文件窗口(C, C+, 等等

26、)Note: C+ files must have extension .cpp In-line assembly code offset by asm();大纲窗口大纲窗口 (可以看到函数,全局变量,结构体,类等)FPGA-CPLD原理及应用 第10、11章 SOPC系统开发建立 C/C+ 应用程序File New Project指定ptf文件指定cpu指定工程模版FPGA-CPLD原理及应用 第10、11章 SOPC系统开发建立 C/C+ 应用程序Link to a System Library- 选择已存在的库- 或建立一个新库FPGA-CPLD原理及应用 第10、11章 SOPC系统开

27、发工程的其他选项在Altera Nios II中调入新的工程向导Advanced C/C+ ProjectDisable automatic tool features like makefile and linker script generationUser defines own insteadManaged Library ProjectPre-compiled code that can be associated into an Application ProjectFacilitates software library developmentTool writes makefi

28、le for included files System LibraryOnly creates system library projectBuild C applications upon this laterFPGA-CPLD原理及应用 第10、11章 SOPC系统开发这就是建立的两个软件工程系统的库系统的库- 包括系统的头文件包括系统的头文件应用程序应用程序- 包括应用程序源码包括应用程序源码- 应用程序和系统的库应用程序和系统的库FPGA-CPLD原理及应用 第10、11章 SOPC系统开发向一个工程添加源文件 将将.c、.h等文件直接等文件直接考到软件的工程文件考到软件的工程文件夹

29、下夹下 点右键点右键-Refresh,文件就加入工程中了文件就加入工程中了 软件文件夹一般在:工程目录/software/FPGA-CPLD原理及应用 第10、11章 SOPC系统开发创建新的源文件Nios II IDE中中 指定工程文件和 .c或.h等FPGA-CPLD原理及应用 第10、11章 SOPC系统开发设置工程的性能应用程序和系统库工程都有性能设置页面应用程序和系统库工程都有性能设置页面FPGA-CPLD原理及应用 第10、11章 SOPC系统开发编译软件选中工程在工程目录中点击选中工程在工程目录中点击Build Project来编译软件工程来编译软件工程在编译软件代码是会生成ma

30、kefile文件FPGA-CPLD原理及应用 第10、11章 SOPC系统开发编译后的目录结构 应用程序工程 系统库文件工程FPGA-CPLD原理及应用 第10、11章 SOPC系统开发软件仿真Nios II IDE 可以进行简单的软件仿真可以进行简单的软件仿真FPGA-CPLD原理及应用 第10、11章 SOPC系统开发软件仿真软件仿真结果软件仿真结果FPGA-CPLD原理及应用 第10、11章 SOPC系统开发DE2-115嵌入式系统开发软件 SOPC Builder是是Altera公司推出的一种可加快在公司推出的一种可加快在PLD内实内实现现Nios II嵌入式处理器及其相关接口的设计工

31、具。其功能与嵌入式处理器及其相关接口的设计工具。其功能与PC机应用程序中的机应用程序中的“引导模板引导模板”类似,设计者可以根据需要确定类似,设计者可以根据需要确定处理器模块及其参数,选择所需的外围控制电路(如存储器控处理器模块及其参数,选择所需的外围控制电路(如存储器控制器、总线控制器、制器、总线控制器、I/O控制器、定时器等)和外设(如存储器、控制器、定时器等)和外设(如存储器、鼠标、按钮、鼠标、按钮、LED、LCD、VGA等),创立一个完整的嵌入式等),创立一个完整的嵌入式处理器系统。处理器系统。SOPC Builder还允许用户修改已经存在的设计,还允许用户修改已经存在的设计,为其添加

32、新的设备和功能。为其添加新的设备和功能。FPGA-CPLD原理及应用 第10、11章 SOPC系统开发 在在DE2开发板上,支持开发板上,支持Nios II系统的外部设备包括系统的外部设备包括SDRAM、SRAM、FLASH、LCD、七段数码管、发光二极、七段数码管、发光二极管、按钮开关、电平开关、管、按钮开关、电平开关、VGA、ISP1362、I2C器件等,器件等,大部分外部都采用大部分外部都采用Nios II软件提供的组件,但软件提供的组件,但SRAM、七段、七段数码管、数码管、VGA控制器和控制器和I2C器件属于器件属于DE2开发板自定义的组开发板自定义的组件,因此在进行件,因此在进行N

33、ios II系统开发之前,应将这些组件的程序系统开发之前,应将这些组件的程序包加入到包加入到Nios II的用户自定义组件(的用户自定义组件(User Logic)中。)中。Nios II的硬件开发FPGA-CPLD原理及应用 第10、11章 SOPC系统开发 DE2DE2_NIOS_HOST_MOUSE_VGA工程文件夹中,包工程文件夹中,包含含SRAM、七段数码管、七段数码管、VGA控制器、控制器、I2C器件的程序包,分器件的程序包,分别是别是:SRAM_16Bits_512KSEG7_LUT_8Binary_VGA_Controller 将这些组件的文件夹复制到工程目录中后,这些组件会出

34、将这些组件的文件夹复制到工程目录中后,这些组件会出现在现在SOPC Builder软件组件库的软件组件库的“Terasic Technologies Inc”栏目下。栏目下。FPGA-CPLD原理及应用 第10、11章 SOPC系统开发 基本的基本的SOPC系统大致可以分为系统大致可以分为FPGA、存储器和外围元、存储器和外围元件三个部分。件三个部分。FPGA部分的核心是部分的核心是NIOS CPU CORE(CPU核),设计工作主要在核),设计工作主要在FPGA部分进行。部分进行。 基于基于DE2开发板的开发板的Nios II系统包含系统包含NIOS CPU CORE(CPU核)、通用异步通

35、信总线核)、通用异步通信总线JTAG UART、串口、串口UART、按、按钮开关钮开关BUTTON PIO、电平开关、电平开关SW PIO、绿色、绿色LED 、红色、红色LED、七段数码管、七段数码管、Avalon三态总线桥、片外三态总线桥、片外SRAM、Timer(定时器)、(定时器)、LCD(液晶显示器)、(液晶显示器)、Flash(快闪存储器)、(快闪存储器)、FLASH控制器、控制器、SDRAM控制器、系统控制器、系统ID组件、组件、I2C(I2C组组件)、件)、VGA控制器和控制器和ISP1362(USB控制器)。控制器)。加入Nios II系统的组件FPGA-CPLD原理及应用 第

36、10、11章 SOPC系统开发(1)加入)加入NIOS CPU CORE(CPU核)核) 在在SOPC Builder的组件库中,用鼠标双击的组件库中,用鼠标双击Component Library(组件库)中的(组件库)中的“Nios II Processor”项,弹出添加新项,弹出添加新的的Nios II(CPU核)对话框。核)对话框。 在对话框中提供在对话框中提供Nios II系列微处理器的三个成员供选择:系列微处理器的三个成员供选择: Nios II/e(经济型)成员,具有占用最小逻辑的优化,占用(经济型)成员,具有占用最小逻辑的优化,占用600700LEs(逻辑元件)。(逻辑元件)。

37、Nios II/f(快速型)成员,具有高性能的优化,占用(快速型)成员,具有高性能的优化,占用14001800LEs。 Nios II/s(标准型)成员,在占用逻辑和高性能优化方面的(标准型)成员,在占用逻辑和高性能优化方面的性能居中,占用性能居中,占用12001400LEs。 FPGA-CPLD原理及应用 第10、11章 SOPC系统开发 选择标准型选择标准型Nios II/s成员。完成设置后,系统将成员。完成设置后,系统将“cpu_0”作为一个作为一个CPU核组件已经加入核组件已经加入SOPC系统,并显示该系统已经系统,并显示该系统已经有有instruction_Master(指令主控器)

38、、(指令主控器)、data_Master(数据(数据总线主控器)和总线主控器)和jtag_debug_module(JTAG调试模式)存在。调试模式)存在。可以更改组件名称。在快捷菜单中还可以选择可以更改组件名称。在快捷菜单中还可以选择“Edit”(编(编辑)、辑)、“Lock Base Address”(锁定地址)等操作。(锁定地址)等操作。 选择选择Nios II后的后的SOPC Builder界面界面 组件操作快捷菜单组件操作快捷菜单FPGA-CPLD原理及应用 第10、11章 SOPC系统开发(2) 加入加入JTAG UART JTAG UART(JTAG通用异步通信总线)用于通用异步

39、通信总线)用于Flash存存储器的读写控制。用鼠标双击组件库中的储器的读写控制。用鼠标双击组件库中的“Interfase”“Serial”栏目下的栏目下的“JTAG UART”项,在弹出项,在弹出加入加入JTAG UART属性对话框中。对话框中各参数保持默认值属性对话框中。对话框中各参数保持默认值不变,完成不变,完成JTAG UART组件的加入后,组件名称保持默认的组件的加入后,组件名称保持默认的“jtag_uart_0”不变。不变。加入加入JTAG UART对话框对话框FPGA-CPLD原理及应用 第10、11章 SOPC系统开发加入加入UART对话框对话框(3) 加入加入UART Nios

40、 II系统可以通过系统可以通过UART串口与计算机通信,也用于串口与计算机通信,也用于NIOS系统的仿真调试。用鼠标双击组件库中的系统的仿真调试。用鼠标双击组件库中的“Interfase”“Serial”栏目下的栏目下的“UART”项,弹出项,弹出UART属性属性对话框。在对话框中选择波特率为对话框。在对话框中选择波特率为115200,其余参数保持默认,其余参数保持默认设置,完成设置,完成UART的加入后,组件名称保持默认的的加入后,组件名称保持默认的“uart_0”不不变。变。FPGA-CPLD原理及应用 第10、11章 SOPC系统开发(4) 加入加入BUTTON PIO DE2开发板上有

41、开发板上有4只按钮开关只按钮开关key3key0,设计中需要加入,设计中需要加入一个一个4位的按钮位的按钮PIO。用鼠标双击组件库中的。用鼠标双击组件库中的“Peripherals”“ Microcontroller Peripherals”栏目下的栏目下的“PIO”项,弹出加入项,弹出加入PIO的的“Basic setting”对话框。在对话框对话框。在对话框中设置中设置“Width”(位宽)为(位宽)为4位,在位,在“Direction”栏目下选择栏目下选择“Input Ports Only”(输入)模式。(输入)模式。 然后用鼠标单击然后用鼠标单击“Next”进入进入PIO的的“Inpu

42、t Options”选项设选项设置对话框页面,在此对话框页面中可选择产生中断请求(置对话框页面,在此对话框页面中可选择产生中断请求(IRQ)的触发模式,包括的触发模式,包括“Level”(电平)和(电平)和“Edge”(边沿)两种(边沿)两种触发模式;在选择触发模式;在选择“Edge”触发模式下,还要选择触发边沿的触发模式下,还要选择触发边沿的类型,其中有类型,其中有“Rising Edge”(上升沿)、(上升沿)、“Falling Edge”(下降沿)和(下降沿)和“Either Edge”(任意边沿或双边沿)三种边沿(任意边沿或双边沿)三种边沿类型。在本设计中选择类型。在本设计中选择“Ed

43、ge”触发模式下的触发模式下的“Either Edge”类型。完成类型。完成PIO的加入后,将组件名称更改为的加入后,将组件名称更改为“button_pio”。 FPGA-CPLD原理及应用 第10、11章 SOPC系统开发(5)加入电平开关)加入电平开关SW PIO DE2开发板上有开发板上有18只按钮开关只按钮开关SW17SW0,设计中需,设计中需要加入一个要加入一个18位的位的SW PIO。用鼠标双击组件库中的。用鼠标双击组件库中的“Peripherals”“ Microcontroller Peripherals”栏目下的栏目下的“PIO”项,在弹出的加入项,在弹出的加入PIO的的“B

44、asic setting”对话框中,对话框中,设置设置“Width”为为18位,在位,在“Direction”栏目下选择栏目下选择“Input Ports Only”(输入)模式。完成电平开关组件的加入后,将(输入)模式。完成电平开关组件的加入后,将组件名称更改为组件名称更改为“switch_pio”。 (6)加入绿色)加入绿色LED DE2开发板上有开发板上有9只绿色发光二极管只绿色发光二极管LEDG8LEDG0,设计中需要加入发光二极管设计中需要加入发光二极管PIO。在加入。在加入PIO对话框中,设置对话框中,设置“Width”为为9位,在位,在“Direction”栏目下选择栏目下选择“

45、Output Ports Only”(输出)模式。完成绿色(输出)模式。完成绿色LED组件的加入后,将组件名组件的加入后,将组件名称更改为称更改为“led_green”。 FPGA-CPLD原理及应用 第10、11章 SOPC系统开发(7)加入红色)加入红色LED DE2开发板上有开发板上有18只红色发光二极管只红色发光二极管LEDR17LEDR0,设计中需要加入发光二极管设计中需要加入发光二极管PIO。在加入。在加入PIO对话框中,设置对话框中,设置“Width”为为18位,在位,在“Direction”栏目下选择栏目下选择“Output Ports Only”(输出)模式。完成红色(输出)

46、模式。完成红色LED组件的加入后将组组件的加入后将组件名称更改为件名称更改为“led_red”。 (8)加入七段数码管)加入七段数码管 DE2开发板上有开发板上有8只七段数码管只七段数码管hex7hex0,设计需要,设计需要加入加入8个七段码数码管。用鼠标双击组件库中个七段码数码管。用鼠标双击组件库中“User Logic”的的“SEG7_LUT_8”项,加入七段数码管项,加入七段数码管PIO。完成七段数码。完成七段数码管组件的加入后,将组件名称更改为管组件的加入后,将组件名称更改为“SEG7_Display”。 FPGA-CPLD原理及应用 第10、11章 SOPC系统开发(9)加入片外)加

47、入片外SRAM DE2开发板上有一片开发板上有一片51216KB的的SRAM,属于自定义,属于自定义组件。用鼠标双击组件库中组件。用鼠标双击组件库中“User Logic”的的“SRAM_16Bits_512K”项,加入项,加入SRAM。完成片外。完成片外SRAM组组件的加入后,将组件名称更改为件的加入后,将组件名称更改为“sram_0”。 (10)加入定时器)加入定时器Timer 用鼠标双击用鼠标双击SOPC Builder界面的组件库中界面的组件库中“Preripherals”“ Microcontroller Preripherals”下的下的“Interval Timer”项,弹出加入

48、项,弹出加入Timer对话框,一切都按照对对话框,一切都按照对话框默认值配置,完成话框默认值配置,完成Timer的加入,组件名称保持默认的的加入,组件名称保持默认的“timer_0”不变。不变。 FPGA-CPLD原理及应用 第10、11章 SOPC系统开发(11)加入)加入LCD(液晶显示器)(液晶显示器) 用鼠标双击用鼠标双击SOPC Builder界面的组件库中的界面的组件库中的“Preripherals”“Display”的的“Character LCD”项,完成项,完成LCD的加入。完成的加入。完成LCD组件加入后,将组件名称更改为组件加入后,将组件名称更改为“lcd_16207_0

49、”。添加的。添加的LCD的型号为的型号为Optrex 16207,支持,支持2行字符显示,每行行字符显示,每行16个字符。个字符。 (12)加入)加入Avalon三态总线桥三态总线桥 NIOS CPU与与SRAM等外部扩展器件相连时需要等外部扩展器件相连时需要Avalon三三态总线桥。用鼠标双击组件库中态总线桥。用鼠标双击组件库中“Bridges and Adapters”“Memory Mapped”的的“Avalon-MM Tristate Bridge”项,在加入项,在加入Avalon三态总线桥对话框中,参数设置采三态总线桥对话框中,参数设置采用系统默认值。组件名称保持默认的用系统默认值

50、。组件名称保持默认的“tri_state_bridge_0”不不变。变。FPGA-CPLD原理及应用 第10、11章 SOPC系统开发(13)加入)加入Flash(快闪存储器)(快闪存储器) 用鼠标双击用鼠标双击SOPC Builder界面的组件库中的界面的组件库中的“Memory and Memory Controllers”的的“Flash Memory Interface”项,项,弹出加入弹出加入Flash对话框,在对话框的对话框,在对话框的“Attributes”页面的页面的“Presets”下拉菜单中,选择下拉菜单中,选择“(Custom)”(惯例)项,(惯例)项,并在对话框的并在对

51、话框的“Size”栏目下,填入栏目下,填入Address Width(地址宽(地址宽度)为度)为20bits,Data Width(数据宽度)为(数据宽度)为8bits。 用鼠标单击对话框上部的用鼠标单击对话框上部的“Timing”按钮(或下部的按钮(或下部的“Next”按钮),进入按钮),进入Flash参数设置的参数设置的“Timing”页面,此页页面,此页面用于对面用于对Flash的建立(的建立(Setup)时间、等待()时间、等待(Water)时间和)时间和保持(保持(Hold)时间参数进行设置,将)时间参数进行设置,将Setup时间设置为时间设置为40(ns),),Water时间设置为

52、时间设置为160(ns),),Hold时间设置为时间设置为40(ns)。完成)。完成Flash组件的加入后,组件名称保持默认的组件的加入后,组件名称保持默认的“cfi_flash_0”不变,并将其输入端口不变,并将其输入端口“s1”与与Avalon三态总三态总线桥组件的线桥组件的“tristate_master”端口连接。端口连接。 FPGA-CPLD原理及应用 第10、11章 SOPC系统开发(14)加入)加入FLASH控制器控制器 FLASH控制器用于控制控制器用于控制Flash存储器的操作。用鼠标双击存储器的操作。用鼠标双击SOPC Builder界面的组件库中的界面的组件库中的“Mem

53、ory and Memory Controllers”“Memory”的的“EPCS Serial Flash Controller”项,弹出加入项,弹出加入Flash控制器对话框。完成控制器对话框。完成FLASH控制器的加入,保持组件默认的名称控制器的加入,保持组件默认的名称“epcs_flash_controller”不变。不变。 (15)加入)加入SDRAM控制器控制器 SDRAM控制器用于控制控制器用于控制SDRAM存储器的操作。用鼠标存储器的操作。用鼠标双击双击SOPC Builder界面的组件库中的界面的组件库中的“Memory and Memory Controllers”“ S

54、DRAM”的的“SDRAM Controller”项,弹出加入项,弹出加入SDRAM控制器对话框的控制器对话框的“Memory Profile”页面。页面。在页面的在页面的“Presets”栏目中选择栏目中选择“Custom”(常规),设置(常规),设置“Data Width”(数据宽度)为(数据宽度)为16Bits,其他参数保持默认值。,其他参数保持默认值。FPGA-CPLD原理及应用 第10、11章 SOPC系统开发 用鼠标单击对话框上方的用鼠标单击对话框上方的“Timing”按钮(或用鼠标单击按钮(或用鼠标单击下方的下方的“Next”按钮),进入对话框的按钮),进入对话框的“Timing

55、”页面,保持此页面,保持此页面参数的默认设置。完成页面参数的默认设置。完成SDRAM控制器的加入后,保持组控制器的加入后,保持组件默认的名称件默认的名称“sdram_0”不变。不变。(16)加入系统标识)加入系统标识System ID组件组件 系统标识系统标识system ID是是SOPC中的一个简单只读组件。中的一个简单只读组件。Nios II处理器系统利用它来检验软件程序和配置与在处理器系统利用它来检验软件程序和配置与在FPGA中中的硬件电路是否一致。如果运行程序的的硬件电路是否一致。如果运行程序的ID号和号和FPGA中的系统中的系统标识不一致,软件将不能正确运行。用鼠标双击组件库中标识不

56、一致,软件将不能正确运行。用鼠标双击组件库中“Peripherals”“Debug and Performance”的的“System ID Peripheral”项,弹出加入项,弹出加入System ID组件对话框。完成组件对话框。完成System ID组件的加入后,将组件的名称更改为组件的加入后,将组件的名称更改为“sysid”。FPGA-CPLD原理及应用 第10、11章 SOPC系统开发 首先进入首先进入cpu_0的编辑方式,将设置复位地址(的编辑方式,将设置复位地址(Reset Address)和其余的程序和数据()和其余的程序和数据(Exception Address)放在)放在s

57、dram_0中,然后执行中,然后执行SOPC窗口窗口“System”菜单中的菜单中的“Auto-Assign Base Addresses”命令,系统将自动调整命令,系统将自动调整SDRAM和其他设备的基本地址。和其他设备的基本地址。 完成完成cpu_0的编辑修改后,用鼠标单击的编辑修改后,用鼠标单击SOPC窗口下的窗口下的“Generate”按钮,启动系统生成按钮,启动系统生成Nios II开发者的开发者的SOPC系统。系统。至此至此Nios II核(核(nios_0)已生成,用鼠标单击)已生成,用鼠标单击SOPC窗口窗口“Exit”按钮,退出按钮,退出SOPC Builder窗口界面(也可

58、以不退出)。窗口界面(也可以不退出)。调整SDRAM地址FPGA-CPLD原理及应用 第10、11章 SOPC系统开发 Nios II核生成后还要将其下载到目标芯片中,转换成实际核生成后还要将其下载到目标芯片中,转换成实际的硬件电路并进行调试,验证设计的正确性。生成的硬件电路并进行调试,验证设计的正确性。生成Nios II硬硬件系统需要建立相应的顶层设计文件,顶层设计文件可以用件系统需要建立相应的顶层设计文件,顶层设计文件可以用原理图编辑法实现,也可以用原理图编辑法实现,也可以用HDL文本编辑法实现。基于文本编辑法实现。基于DE2开发板的开发板的Nios II硬件系统的顶层文件,采用硬件系统的

59、顶层文件,采用Verilog HDL文本编辑方式实现。文本编辑方式实现。 1. 编辑编辑Nios II顶层文件顶层文件 在基于在基于DE2开发板的开发板的Nios 系统中,需要一块复位电路系统中,需要一块复位电路Reset_Delay实现系统的复位操作,还需要一块锁相环电路实现系统的复位操作,还需要一块锁相环电路SDRAM_PLL产生产生50MHz和和27MHz的系统时钟。用户的的系统时钟。用户的Nios 系统加入了系统加入了I2C组件和组件和VGA组件,也需要把组件,也需要把I2C控制器文件控制器文件I2C_Controller.v、I2C配置文件配置文件I2C_AV_Config.v和和V

60、GA控控制器文件制器文件VGA_Controller.v复制到自己的工程文件夹中。复制到自己的工程文件夹中。 生成Nios II硬件系统FPGA-CPLD原理及应用 第10、11章 SOPC系统开发 由于由于DE2开发板中的电路是固定的,开发板中的电路是固定的,Nios II系统的引脚系统的引脚锁定也是唯一的,因此可以利用锁定也是唯一的,因此可以利用DE2开发板提供的引脚锁定开发板提供的引脚锁定文件,节省引脚锁定操作的时间。文件,节省引脚锁定操作的时间。将将DE2/DE2_NIOS_HOST_MOUSE_VGA/目录下的顶层文件目录下的顶层文件的引脚锁定文件的引脚锁定文件DE2_NIOS_HOST_MOUSE_VGA.qs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论