版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 SOPC开发流程及Quartus II的运用 2.1 SOPC开发流程和开发工具SOPC设计包括硬件和软件两部分。 硬件设计:主要基于Quartus II和 SOPC Builder。 软件设计:基于Nios II IDE。SOPC开发流程简图分析系统需求NiosII内核&规范外设定制指令&定制外设逻辑硬件笼统层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf翻开SOPC Builder定义和生成系统集成SOPC生成的系统到Quartus II工程运用Nios IIIDE开发软件Altera的LPM模块衔接各功
2、能模块选择FPGA型号并进展管脚分配进展编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目的板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目的板上运行/调试软件调试好的硬件和软件在IDE中运用ISS运转/调试软件设置软件运转硬件环境属性运用IDE编程工具烧写配置文件和软件代码在进展SOPC开发之前,首先必需确定系统的需求,如运用系统需求的计算性能、需求的带宽和吞吐量、需求的接口类型以及能否需求多线程的软件等。每个开发过程开场时都应建立一个工程,Quartus II是以工程的方式对设计过程进展管理。在工程中建立顶层模块文件.bdf相当于传统电路设计中的
3、电路板PCB。在SOPC Builder中添加需求的功能模块Nios II及其规范外设模块,完成后生成一个系统模块。假设需求,用户可以定制指令和外设逻辑。(可参考第8章)SOPC开发流程简图分析系统需求NiosII内核&规范外设定制指令&定制外设逻辑硬件笼统层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程运用Nios IIIDE开发软件Altera的LPM模块衔接各功能模块选择FPGA型号并进展管脚分配进展编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件
4、elf在目的板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目的板上运行/调试软件调试好的硬件和软件在IDE中运用ISS运转/调试软件设置软件运转硬件环境属性在Quartus II软件中包含了大量的Altera公司提供的LPM功能模块,相当与传统设计中除处置器以外的逻辑芯片(如74系列);当设计中现有模块不能满足设计要求时,可设计本人的功能模块。并在顶层模块中运用;翻开SOPC Builder定义和生成系统在顶层模块中,分别将SOPC Builder生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中;然后将各个功能模块用连线连起来组成系统功能原理图。这个两过
5、程类似传统电路设计中,将一切要运用的芯片焊接到电路板上,然后经过PCB上的连线将各个芯片衔接起来,组成电路系统。 运用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&规范外设定制指令&定制外设逻辑硬件笼统层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程运用Nios IIIDE开发软件Altera的LPM模块衔接各功能模块选择FPGA型号并进展管脚分配进展编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目的板上
6、下载可执行软件到Nios II系统下载配置文件到FPGA器件在目的板上运行/调试软件调试好的硬件和软件在IDE中运用ISS运转/调试软件设置软件运转硬件环境属性翻开SOPC Builder定义和生成系统为系统功能原理图选择芯片载体并为各个输入输出信号分配芯片的管脚;设置编译选项,从而让编译器按照用户设定来进展编译;编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以及时序分析等步骤。运用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&规范外设定制指令&定制外设逻辑硬件笼统层(
7、HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程运用Nios IIIDE开发软件Altera的LPM模块衔接各功能模块选择FPGA型号并进展管脚分配进展编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目的板上下载可执行软件到Nios II系统下载配置文件到FPGA器件在目的板上运行/调试软件调试好的硬件和软件在IDE中运用ISS运转/调试软件设置软件运转硬件环境属性翻开SOPC Builder定义和生成系统软件开发也可以在SOPC Builder 生
8、成系统模块后立刻进展!与传统软件开发类似,独一不同在于系统是本人定制的,所受局限小!运用IDE编程工具烧写配置文件和软件代码SOPC开发流程简图分析系统需求NiosII内核&规范外设定制指令&定制外设逻辑硬件笼统层(HAL)&外设驱动程序用户C/C+应用程序代码和定制的库自定义的功能模块建立Quartus II工程,建立顶层图*.bdf集成SOPC生成的系统到Quartus II工程运用Nios IIIDE开发软件Altera的LPM模块衔接各功能模块选择FPGA型号并进展管脚分配进展编译选项设置编译硬件系统生成配置文件sof编译软件生成可执行文件elf在目的板上下载可执行软件到Nios II
9、系统下载配置文件到FPGA器件在目的板上运行/调试软件调试好的硬件和软件在IDE中运用ISS运转/调试软件设置软件运转硬件环境属性翻开SOPC Builder定义和生成系统 设置好软件运转的硬件环境属性后,便可进展编译、链接和调试、运转程序。对用户程序进展编译,生成可执行文件*.elf。 接下来在IDE的指令集仿真器(ISS)上仿真软件和运转/调试软件。 将配置文件.sof下载到FPGA,将可执行文件.elf下载到RAM。 在目的板上反复调试软件。 直到硬件和软件设计都到达设计要求。 最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编程到Flash
10、中。运用IDE编程工具烧写配置文件和软件代码2.1 SOPC开发流程和开发工具硬件开发硬件开发运用Quartus II和SOPC Builder配置Nios II处置器选择并配置外设.IP衔接各外设模块分配外设地址和中断生成系统SOPC Builder GUI自定义命令IP 模块处置器库外设模块库硬件开发Nios II IDE软件开发Quartus IIGNU Tools 用SOPC Builder软件从NiosII处置器内核和NiosII开发套件提供的外设列表中选取适宜的CPU、存储器以及各外围器件,并定制和配置它们的功能; 分配外设地址及中断号; 设定复位地址; 最后生成系统。 用户也可以
11、添加用户本身定制指令逻辑到NiosII内核以加速CPU性能; 添加用户本人设计的IP模块。 2.1 SOPC开发流程和开发工具硬件开发硬件开发运用Quartus II和SOPC Builder配置Nios II处置器选择并配置外设.IP衔接各外设模块分配外设地址和中断生成系统SOPC Builder GUI自定义命令IP 模块处置器库外设模块库硬件开发Nios II IDE软件开发Quartus IIGNU Tools 编译Quartus II工程,对HDL文件进展规划布线,从HDL源文件综合生成一个适宜目的器件网表,生成FPGA配置文件(.sof); HDL 源文件 测试台 用户逻辑设计 其
12、它的IP模块 SOPC Builder的 顶层.bdf文件管脚衔接分配编译(分析与综合、规划布线、时序分析等)验证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点 SignalTap II)Altera GPGA 用下载电缆(如 ByteBlaster II),将配置文件下载到目的板上。硬件校验完成后,可将新的硬件配置文件下载到目的板上的非易失存储器(如EPCS器件)。2.1 SOPC开发流程和开发工具硬件开发配置Nios II处置器选择并配置外设.IP衔接各外设模块分配外设地址和中断生成系统SOPC Builder GUI自定义命令IP 模块处置器库外设模块库硬件开发Nios
13、 II IDE软件开发Quartus IIGNU Tools 编译Quartus II工程,对HDL文件进展规划布线,从HDL源文件综合生成一个适宜目的器件网表,生成FPGA配置文件(.sof); HDL 源文件 测试台 用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件管脚衔接分配编译(分析与综合、规划布线、时序分析等)验证调试硬件配置文件JTAG串口、以太网片上调试(软件跟踪、硬件断点 SignalTap II)Altera GPGA 用下载电缆(如 ByteBlaster II),将配置文件下载到目的板上。硬件校验完成后,可将新的硬件配置文件下载到目的板上的非易失
14、存储器(如EPCS器件)。2.1 SOPC开发流程和开发工具软件开发软件开发运用Nios II IDE,它是一个基于Eclipse IDE架构的集成开发环境,它包括:GNU开发工具(规范GCC编译器,衔接器,汇编器和makefile工具等);基于GDB的调试器,包括软件仿真和硬件调试;提供用户一个硬件笼统层HAL;提供嵌入式操作系统MicroC/OS-II和LwTCP/IP协议栈的支持;提供协助用户快速入门的软件模板;提供Flash下载支持(Flash Progrmmer 和QuartusII Programmer)2.1 SOPC开发流程和开发工具软件开发配置Nios II处置器选择并配置外
15、设.IP衔接各外设模块分配外设地址和中断生成系统SOPC Builder GUI自定义命令IP 模块处置器库外设模块库硬件开发Nios II IDE软件开发Quartus IIGNU Tools 运用SOPC Builder生成系统后,可以直接运用Nios II IDE开场设计C/C+运用程序代码。Altera提供外设驱动程序和硬件笼统层(HAL),运用户可以快速编写与低级硬件细节无关的Nios II程序; HDL 源文件 测试台 用户逻辑设计 其它的IP模块 SOPC Builder的 顶层.bdf文件管脚衔接分配编译(分析与综合、规划布线、时序分析等)验证调试硬件配置文件JTAG串口、以太
16、网片上调试(软件跟踪、硬件断点 SignalTap II)Altera GPGA C头文件 用户库函数 外设驱动 除了运用代码,用户还可以在Nios II IDE 工程中设计和重新运用定制库。 用户代码 库函数 操作系统(RTOS)硬件开发运用Quartus II和SOPC Builder2.2 SOPC硬件开发实例 第一步是要进展需求分析,根据这个要求来建立硬件系统。 电子钟的设计要求: 在液晶屏上显示日期、时间; 可以设置日期、时间; 根据系统要务虚现的功能,电子钟的设计要用到的外围器件有: LCD:电子钟显示屏幕; 按键:电子钟设置功能键; Flash存储器:存储软、硬件程序; SRAM
17、存储器:程序运转时将其导入SRAM。 根据所要用到的外设、要实现的功能以及开发板的配置,在SOPC Builder中建立系统要添加的模块包括:Nios II CPU、定时器、按键PIO、LCD控制器、AVALON三态桥、外部RAM接口、外部Flash接口。2.2 SOPC硬件开发实例运用的开发环境如下:WinXP操作系统Nios II 6.0嵌入式处置器Quartus II 6.0基于Cyclone II 的SOPC开发板2.2.1 创建工程进展完需求分析之后,进展硬件系统的创建。首先必需建立一个Quartus II 的工程,步骤如下: 1. 开场程序AlteraQuartus II 6.1Q
18、uartus II 6.1(32 bit),启动Quartus II软件; 2.选择File菜单New Project Wizard,出现Introduction页面,该页面引见所要完成的详细义务,点击next。2.2.1 创建工程2.2.1 创建工程2.2.1 创建工程3. 进展工程称号的设定、任务目录的选择。指定工程存放的目录,工程名和顶层实体名,工程名和顶层实体名要求一样,工程目录可以随意设置,但必需是英文的目录,工程名和顶层实体名也要求是英文名字,我们的工程名和顶层实体名为clock,选择Next。2.2.1 创建工程2.2.1 创建工程4.可以为工程添加先期曾经输入的设计文件,指定用
19、户自定义的元件库的途径,这里我们没有事先输入好的文件,也没有自定义的元件库,点击Next进入下一步。2.2.1 创建工程2.2.1 创建工程5. 用户指定目的器件,根据开发板的所运用的器件来选择,实践开发中,经过查看中心板的参考手册来获取所运用的器件详细型号,可以运用窗口右边的Filters来加快器件的选择,选择终了点击Next。 2.2.1 创建工程2.2.1 创建工程6. 指定在Quartus II 之外的用于,设计输入、综合、仿真、时序分析的第三方EDA工具,Quartus II对第三方工具的支持比较完善。这里我们不做选择,直接点击Next。2.2.1 创建工程2.2.1 创建工程所见新
20、工程的信息,确认所创建工程的主要信息,点击Finish完成工程的建立,在开发的过程中,还可以经过菜单assignmentSettings来对这些配置进展修正。点击Finish按钮,Quartus II自动会翻开这个工程,可以看到顶层实体名出如今工程导航窗口中。2.3 创建Nios II 系统模块创建完成工程之后,需求创建顶层实体。创建完顶层设计文件之后,运用SOPC Builder创建NIOS II 嵌入式处置器,添加、配置系统的外设IP,组成Nios II系统模块。 Nios II 系统模块设计完成之后要参与到该顶层实体中,然后进展其他片上逻辑的开发。2.3.1 创建顶层实体1新建的工程窗口
21、中,选择FileNew;2在Device Design File页中,选择Block DiagramSchematic File,即原理图文件,也可以选择硬件描画言语的文件方式。单击OK。3出现一个模块编辑窗口。2.3.1 创建顶层实体2.3.1 创建顶层实体4 选择FileSave As,出现Save As对话框,显示的目录为之前设置的工程目录,文件名为之前设置的顶层实体名由于这是工程的第一个文件,系统会默以为顶层设计实体的名字。确定Add to Current Project选项被选中,点击Save文件被保管并被参与到工程中。2.3.1 创建顶层实体2.3.2 创建Nios II系统模块
22、创建NIOS II系统模块需求运用SOPC Builder,它是Quartus II中的一个工具,运用SOPC Builder可以创建一个Nios II 系统模块,或者创建多主设备SOPC模块。 一个完好Nios II的系统模块包括Nios II处置器和相关的系统外设。所以创建系统模块的流程是先创建一个系统,然后添加Nios II CPU和外设IP,然后进展相应的设置,最后生成实例,然后将其参与到工程的顶层实体中去。2.3.2 创建Nios II系统模块一、创建系统 启动SOPC Builder,选择ToolsSOPC Builder,出现图2-10的Create New System对话框。
23、键入系统的名字,选择硬件描画言语Verilog或者是VHDL。2.3.2 创建Nios II系统模块2.3.2 创建Nios系统模块二 、设置系统主频和指定目的FPGA在Target栏中的Board部分指定我们这本书运用的中心开发板Cyclone II EP2C35。也可以在Board部分选择Unspecified,然后在Device Family选择Cyclone II。用户需求设置系统的时钟频率,该频率用于计算硬件和软件开发中的定时,比如时钟分频或波特率。这里我们设成85MHz,还可以选择能否选用流水线。三、参与Nios II CPU和 IP模块 首先参与Nios II软核,Nios II
24、 是软核CPU,共有三种类型的CPU可供选择:Nios II/e(经济型)、Nios II/s规范型和Nios II/f快速型。用户可以根据实践的情况进展选择。Nios II是一个用户可以自行进展定制的CPU,用户可以添加新的外设、新的指令等。添加Nios II CPU的步骤如下:1. Avalon Components 下面选择Nios II Processor;2. 点击 Add,出现Nios II CPU的配置导游,共有三种类型的CPU可供选择; 根据需求选择相应的一种Nios II核,我们选择规范型的Nios II核,Hardware Multiply选择none,不选择Hardwar
25、e Divide点击Next,进入Caches & Tightly Coupled Memories设置窗口; 设置Nios II的Cache和与CPU直接相连的存储器端口不经过Avalon总线,选择Instruction Cache为4Kbytes,不选中Include tightly coupled instruction master port(s) ,点击Next进入Advanced Features设置页面。 Advanced Features的设置页面是Quartus II 6.1 版本才有的设置,这里不选择Include cpu_resetrequest and cpu_rese
26、ttaken signals点击Next进入JTAG Debug Module设置。 共有4个调试级别可供选择,这里选择Level1即可,该级别支持软件的断点调试。JTAG调试模块要占用较多的逻辑资源,假设整个系统调试终了了可以选用No Debugger以减少系统占用资源点击Next进入自定义指令的设置。 由于本例不用到任何的自定义指令,这里不作任何的设置,点击Finish完成CPU模块的添加。除了Nios II CPU,电子钟设计需求添加的IP模块包括:TimerButton PIOLCD控制器External RAM BusExternal Flash Bus External RAM i
27、nterfaceExternal Flash Interface 1. 添加定时器 定时器和Nios II CPU一样,用户可以对其进 行定制。添加定时器的步骤如下: 1在Avalon components下的other库中选 择Interval Timer并单击Add,Avalon_Timer-timer_0的导游窗口出现; 2配置定时器,点击Finish,完成定时器的添加。 3可以对Timer进展重命名,我们这里取缺省的名字。 2. 添加Button PIO 1在 Avalon components下的other下选择PIO,单击Add,出现Avalon PIO-PIO_0的导游; 2在B
28、asic Settings页中,设置width=4bits,direction为Input Ports Only; 3在Input Options页中,在Edge Capture Register下选中Synchronously Capture,然后选择Either Edge;4在Interrupt下选中Generate IRQ,然后选择Edge; 5点击Finish,前往到Altera SOPC Builder NIOS2的窗口;6右键单击Module Name下的pio_0,从菜单项选择择rename,重命名为button_pio. 3. 添加LCD控制器1在图2-11的窗口中的左侧的Av
29、alon components下的display库中选择Character LCD(162, Optrex 16027),单击Add;2Module Name下出现,lcd_16027_0; 3将其重命名lcd_display。 4.添加外部RAM接口 1Avalon components下的Memory下面选择Cypress CY7C0C SSRAM,单击Add,出现SSRAM Cypress CY7C0C-ext_ssram的导游; 2在Timing Parameters下面设置Read Latency 为2 clocks,在SSRAM下面设置Memory Size为2Mbytes 3单击
30、Finish,前往到Altera SOPC Builder NIOS2的窗口; 4右键单击Module Name下的ssram_0,从菜单项选择择rename,重命名为ext-ssram。 5. 添加外部闪存接口1在Avalon components下的Memory下面选择Flash MemoryCommon Flash Interface,单击Add,出现外部闪存接口导游;2在Attributes页中,可以在Presets列表中选择相应的闪存的接口,这些闪存的接口都是经过测试的,假设列表中没有,用户可以本人定义闪存的Size和Data Width;3在timing页中,可以设置闪存的读写时序
31、要求,可以设置Setup, Waite, hold时间等参数,通常保管缺省的设置;4如运用选择的闪存接口不在列表中,需求本人定义Size和Data Width,和时序要求;5点击Finish,前往到Altera SOPC Builder NIOS2的窗口,Module Name出现cfi_flash_0,对其重命名为ext_flash。 6. 添加外部RAM总线和外部flash总线Avalon三态总线桥 为了使Nios II 系统能与开发板上的外部存储器通讯,必需在Avalon总线和外部存储器之间参与Avalon三态桥。 步骤如下:1) 在Bridge下,选择Avalon Tri-State
32、Bridge,点击Add,出现Avalon Tri-State Bridge tri_state_bridge_0导游; (2) Registered选项默以为选中; (3)单击Finish,前往到Altera SOPC Builder NIOS2的窗口;(4) 将其重命名为ext_ssram_bus;(5) 反复前三个步骤,在添加一个Avalon三态总线桥,并重命名为ext_flash_bus.7.添加JTAG UART1在Avalon components下的Communication下选择 JTAG UART,点击ADD,出现添加导游。2按照缺省设置,点击Finish。3 将其重命名为J
33、TAG_UART.7. Nios II系统的衔接主要是外部RAM接口要和RAM的三态桥衔接,外部的Flash接口要和flash的三态桥衔接。一切添加的IP衔接都是系统自动完成的,除了上面提到的三态桥和外部存储器的接口的衔接之外,其它的衔接用户不用修正,但对于三态桥和外部存储器接口的衔接,系统的自动衔接能够和用户的开发板不匹配,用户需求进展手动的更改。针对我们所用的开发板的情况进展的设置,由于本书用到的开发板外部的SRAM和外部的Flash没有运用共用的数据线和地址线,所以必需为它们分别添加一个三态桥。 Altera公司提供了丰富的外设IP可供用户参与到设计当中,如片内ROM,communica
34、tion UART、LED PIO、Seven Segment PIO、外部DDR SDRAM的接口等等。本设计没有用到上述的外设IP,所以不做讲述,读者可以经过Quartus II的协助文件,或者经过Altera公司的技术资料来获得相应的信息。2.3.3分配IP模块的地址和中断号在以上添加IP的过程中,SOPC Builder为各个IP模块分配了一个默许的基地址,用户可以改动这些默许的分配。假设用户本人分配的地址出现冲突,SOPC Builder会给出警告,用户可以按照下面的步骤来进展分配和处理地址冲突问题。下面我们给出一种自定义的地址分配实例,将闪存的基地址设定为0 x00000000,步
35、骤如下:1单击Flash外设的Base栏,将地址改为0 x0,然后回车,这时SOPC Builder的音讯框中出现错误的提示信息,这是由于闪存的地址和其它的外设地址发生了冲突。2选择Module菜单中的Lock Base Address操作,一个挂锁的图标出如今闪存基地址的旁边。3选择System菜单中的Auto Assign Base Address操作,来处理外设的地址分配冲突问题,SOPC Builder调整其它外设的地址来避开与闪存地址的冲突,错误提示的音讯就会消逝了。4用户可以手动修正各个外设的中断号,中断号越低,中断优先级越高,用户也可以采用自动分配中断号,选择System菜单中的
36、Auto Assign IRQs,但SOPC Builder不处置软件操作,采用自动分配中断的战略不一定是最优的,用户最好是根据本人的运用来确定外设的中断优先级,采用手动的分配。2.3.4 配置NIOS II 系统系统的IP模块添加完成之后,还需求对系统进展配置。点击Nios II More “cpu_0 Settings 页,用户可以进展如下的设置:Reset Address:可以选择存放Boot Loader的存储器和设置Boot Loader在存储器中的偏移,我们这里选择ext_flash,偏移选择默许;Exception Address:可以选择存放异常向量表的存放的存储器和设置异常向
37、量表在存储器中的偏移,我们选择ext_ssram,偏移选择默许;Break Location:假设NIOS II 包含有一个JTAG Debug模块,SOPC Builder会显示这项内容。其Memory Module总是JTAG Debug Module,Offset 固定为0 x20, 地址由JTAG debug module基地址决议。用户不能修正Break Location的各个域的内容。2.3.5 生成NIOS II并参与到工程中NIOS II系统是工程的一部分,我们首先是生成它,然后参与到工程中去,然后将整个工程下载到FPGA芯片中去。单击System Generation,在Op
38、tion下进展如下的设置: 选中 HDL,会生成系统模块的硬件言语文件。 选中 Simulation,假设安装了ModelSim软件,会生成用于仿真的相应的文件。 单击 Generate,SOPC Builder会提示生成体统的进程,系统生成完成时会提示SUCCESS: SYSTEM GENERATION COMPLETED。单击exit 退出SOPC Builder。系统生成完成之后,SOPC Builder为这个定制的NIOS II系统模块创建了一个符号,要把Nios II系统参与到工程中去,遵照如下的步骤: 1在 Quartus II软件中,翻开顶层实体BDF格式,在BDF窗口中恣意处双
39、击,出现 Symbol对话框; 2在Symbol对话框中单击Project来展开工程目录,其下出现NIOS2本例采用的系统名,选中它,右侧出现了系统的符号表示; 3单击OK,Symbol对话框封锁,NIOS2的符号轮廓被附着在鼠标的指针上。 4BDF窗口中恣意空白处单击一下,NIOS2的符号出如今BDF窗口中,这样我们创建的系统曾经被参与到工程中了。 2.3.6 参与引脚和嵌入式锁相环除了NIOS II系统之外,能够还要有其它的硬件逻辑单元,我们这里参与一个嵌入式锁相环,嵌入式锁相环有两个时钟输出,一个输出SSRAM提供时钟,另一个时钟的输出为NIOS II CPU提供时钟,然后添加输入、输出
40、、双向引脚,以实现和FPGA外部的外设进展通讯。 参与嵌入式锁相环的步骤如下:(1) 点击ToolsMegaWizard Plug-In Manager,出现MegaWizard Plug-In Manager导游Page1窗口,点击next在MegaWizard Plug-In Manager Page2 窗口中的IO下面选择ALTPLL,器件选择Cyclone II,输出文件类型选择VHDL,文件名为ssram_pll,选中Return to this page for another create operation,然后点击Next,出现MegaWizard Plug-In Manag
41、er-ALTPLL Page 3of 9;在MegaWizard Plug-In Manager-ALTPLL Page 4 of 10窗口中,不做任何选择,点击next;在MegaWizard Plug-In Manager-ALTPLL Page 5 of 10窗口中,单击next;在MegaWizard Plug-In Manager-ALTPLL Page 6 of 10窗口中,设置c0输出时钟,首先选中Use this clock选项,设置时钟频率为85MHz,占空比为50%。点击Next会进入c1输出时钟的设置;嵌入式PLL可提供3个输出时钟,我们运用其中的两个,MegaWizar
42、d Plug-In Manager-ALTPLL Page 7 of 10窗口中,在c1时钟的设置页面上,选中Use this clock选项,设置时钟频率为85MHz,点击Next;在MegaWizard Plug-In Manager-ALTPLL Page 8 of 10窗口中,不选中Use this clock选项,即我们不运用c2时钟,点击Next;在MegaWizard Plug-In Manager-ALTPLL Page 9 of 10窗口中,给出了用于仿真必需求产生的文件,点击Next;在MegaWizard Plug-In Manager-ALTPLL Page 10 of
43、 10窗口中,给出了用户选择要产生的文件,不做改动,采用默许配置,点击Finish完成PLL的生成。在顶层实体的bdf窗口中双击鼠标,出现Symbol添加窗口,在project下面选择刚刚建立的ssram_pll,点击OK。ssram_pll的轮廓会附着在鼠标上,点击bdf窗口的空白处,将嵌入式锁相环参与到了工程中。引脚添加的步骤如下:1在顶层实体的bdf窗口的空白处双击鼠标,出现Symbol添加窗口,在alteraquartuslibraries下面选择primitives,再在其下选择pin,在其中有三种类型的引脚,有bidir,input,output,分别为双向、输入和输出引脚,选择相
44、应类型的引脚,点击OK。2点击bdf窗口的空白处,即将引脚参与到了工程中。3反复上面的步骤添加为各个端口添加相应类型的引脚。衔接引脚和命名引脚第一个参与的引脚的称号缺省为pin_name,之后参与的引脚称号依次为pin_name1,pin_name2向上递增,为了便于了解和记忆,需求对引脚重新命名,使其和其传输的信号联络起来。命名引脚的方法如下:1 双击引脚的“pin_namen部分,pin_namen的文字变成高亮,可以对其编辑。2 对其他的引脚反复以上的操作,修正成具有意义的名字。3 对于总线型的引脚,引脚称号之后要标识出总线的位数,如ddr_a12.0,在引脚称号之后加上方括号,然后写上
45、最高位和最低位,用两个.隔开。4将嵌入式锁相环和系统模块等衔接起来,并将引脚衔接到相应的端口上。2.4设计优化设计优化主要包括节省占用FPGA的面积和提高设计系统运转速度两个方面。这里的“面积是指一个设计所耗费的FPGA的逻辑资源的数量,普通以设计占用的等价逻辑门数来衡量。“速度是指设计的系统在目的芯片上稳定运转时可以到达的最高频率,它与设计的时钟周期、时钟建立时间、时钟坚持时间、时钟到输出端口的延迟时间等诸多要素有关。2.1 面积与速度的优化翻开我们刚刚的工程clock,然后选择Assignment菜单下的Settings命令,弹出设置窗口。在对话框的左边的Category栏下,列出了很多可
46、设置的对象,包括EDA Tools Settings、Compilation Process Settings、Analysis & Synthesis Settings、Fitter Settings、Timing Settings、Simulation Settings等等,选中要设置的工程,窗口的右边显示供设置的选项和参数。在Analysis & Synthesis Settings页面,用于对设计在分析与综合时的优化设置。在该页面的Optimization Techniques栏中,提供了Speed、Balanced和Area3种优化选择,其中Balanced是软件缺省的优化选择。假设
47、对Speed或Area有特殊的要求,那么选中相应的选项。2.4.2 时序约束与设置选择Settings下面的Timing Analysis Settings,然后选择Classic Timing Analyzer Settings。在此页面中,可以对设计的延迟约束、时钟频率等做设置。延迟约束Delay Requirements设置包括tsu建立时间、tco时钟到输出的延迟、tpd传输延迟和th坚持时间的设置。普通来说,用户要根据目的芯片的特性及PCB板走线的实践情况,给出设计需求满足的时钟频率、建立时间、坚持时间和传输延迟时间等参数。对一些简单的运用,对时序要求不严厉 ,可以不做设置。2.4.
48、3 Fitter设置在Ssettings对话框中,用鼠标左键单击Category栏目中的Fitter Settings项,出现Fitter Settings设置页面。此页面用于规划布线器的控制。在这里需求设置的主要是规划布线的战略Fitter Effort,有三种方式可供选择:规范方式Standard Fit、快速方式Fast Fit和自动方式Auto Fit。规范方式需求的时间比较长,但可以实现较高的最高频率fmax;快速方式可以节省50%的编译时间,但会使最高频率有所降低;自动方式在到达设计要求的条件下,自动平衡最高频率和编译时间。2.5编译Quartus II编译器由一系列处置模块组成,
49、包括分析与综合、适配、汇编和时序分析等环节。经过Quartus II编译器,可以检查设计错误,综合逻辑,把设计配置到FPGA中去,并且为模拟、时序分析及器件配置生成输出文件。1. 分析与综合 在编译过程中,首先对设计文件进展分析和检查,如检查原理图的信号线有无漏接、信号有无双重来源、硬件描画言语文件中有无语法错误等,如存在错误,编译器会给出出错信息并标出出错位置,供设计者修正,假设设计文件不存在错误,接着进展综合,综合完成的是设计逻辑到器件资源的映射。2. 适配适配完成的是设计逻辑在器件中的规划和布线、选择适当的内部互联途径、引脚分配、逻辑元件分配等操作。可以设置适配的多个选项,来采取不同的优
50、化战略。3. 汇编 适配完成后,进入编程环节。在编程过程中,生成器件的编程映像文件,映像文件可以经过电缆下载到目的芯片中。4. 时序分析 在适配完成之后,设计逻辑在器件中的规划和布线、内部互联途径曾经确定,在时序分析中,会计算给定设计在器件中延时,完成时序分析和逻辑的性能分析。用户可以预先设置Timing requirement,可以针对整个的工程、特定的设计实体、节点和引脚指定所需的速度性能。编译过程中会针对设置进展适配。2.5.1 编译设置在编译前,用户可以设置编译器,可以实现对编译过程控制的目的。编译器根据相应的设置进展编译。合理的设置可以提高工程编译的速度,优化器件的资源利用等。单击A
51、ssignments菜单中的Settings,出现以下图的窗口。在Device中,用户可以设置和器件有关的选项,FPGA的芯片通常在建立工程的时候就以经选择好了,所以通常不做修正。留意在编译之前必需求对未运用的引脚做设置,将未运用的引脚设置成As inputs,tri-stated。假设不做此项配置设计能够无法在开发板上运转。设置未运用的引脚按照下面的步骤:1 在Settings对话框中的Device页中,单击Device and Pin Options,出现Device and Pin Options对话框,缺省是General页。2单击Unused Pins标签,在Reserve all
52、unused pins下选择,As inputs,tri-stated。3在Device and pins options中,其他的设置可以选用默许的设置,不做修正,点击确定。设计优化也是编译设置的一部分,但是为了强调设计优化的重要性,把它们单独提出来引见了,除了这些设置之外,还有下面的一些设置根编译的过程有关:在EDA Tools中,用户可以指定在编译过程中用到的其他第三方的工具软件,通常不用设定。在Compilation Process Settings中,用户可以设置编译过程的一些选项,如能否运用增量编译等。在Timing Analyzer中,用户可以设置时序分析报告中显示的内容。在Assembler中,指定汇编的选项。2.4.2 引脚分配用户需求进展引脚分配,使得编译器能把用户设计中的信号分配到目的器件上的特定引脚上。Quartus II 提供了两种引脚分配方法:一种是运用Assignments Editor来分配,方法为选择Assignments菜单中的pins或者Assignments Edi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 课程设计系统编程
- 课程设计有机废气CAD图纸
- 电路串并联课程设计
- 继电器外壳模具课程设计
- 课程设计选择题水本
- 立体美甲教学课程设计
- 吉大汽车工程课程设计
- 模电和数电课程设计
- 布景灯光课程设计
- 环评课程设计与体会
- 2024山东高速集团限公司招聘367人高频难、易错点500题模拟试题附带答案详解
- DB34T 3730-2020 耕地损毁程度鉴定技术规范
- 北京市历年中考语文现代文之议论文阅读30篇(含答案)(2003-2023)
- 2024年新人教道德与法治一年级上册全册课件(新版教材)
- 请款单模板(范本)
- 2024高校大学《辅导员》招聘考试题库(含答案)
- 管道保温体积面积计算公式
- 2024-2025学年部编版思想政治高一上学期试卷及答案解析
- 2024年江西省“振兴杯”工业机器人系统操作员竞赛考试题库(含答案)
- JGJ196-2010建筑施工塔式起重机安装、使用、拆卸安全技术规程
- 2024-2030年扭力工具行业市场现状供需分析及重点企业投资评估规划分析研究报告
评论
0/150
提交评论