SOPC开发流程及QuartusII的使用_第1页
SOPC开发流程及QuartusII的使用_第2页
SOPC开发流程及QuartusII的使用_第3页
SOPC开发流程及QuartusII的使用_第4页
SOPC开发流程及QuartusII的使用_第5页
已阅读5页,还剩120页未读 继续免费阅读

下载本文档

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

文档简介

1、第二章 SOPC开发流程及Quartus II的使用2.1 SOPC开发流程和开发工具2.2 Quartus II操作基础2.3 SOPC硬件开发实例2.4 创建Nios II 系统模块2.5 设计优化2.6 编译2.7 编程下载SOPC开发流程和开发工具SOPC设计包括硬件和软件两部分。 硬件设计:主要基于Quartus II和 SOPC Builder。 软件设计:基于Nios II IDE。SOPC开发流程开发流程分析系统需求: 在进行SOPC开发之前,首先必须确定系统的需求,如应用系统需求的计算性能、需要的带宽和吞吐量、需求的接口类型以及是否需求多线程的软件等。建立Quartus II

2、工程:每个开发过程开始时都应建立一个工程,Quartus II是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件.bdf相当于传统电路设计中的电路板(PCB)。定义和生成系统:在SOPC Builder中添加需要的功能模块(Nios II及其标准外设模块),完成后生成一个系统模块。定制指令&定制外设逻辑:如果需要,用户可以定制指令和外设逻辑。(可参考第8章)自定义的功能模块:当设计中现有模块不能满足设计要求时,可设计自己的功能模块。并在顶层模块中使用;Altera的LPM模块 :在Quartus II软件中包含了大量的Altera公司提供的LPM功能模块,相当于传统设计中除处理

3、器以外的逻辑芯片(如74系列); 集成SOPC生成的系统到Quartus II工程 :在顶层模块中,分别将SOPC Builder生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中;连接各功能模块:将各个功能模块用连线连起来组成系统功能原理图。选择FPGA型号并进行管脚分配 :为系统功能原理图选择芯片载体并为各个输入输出信号分配芯片的管脚; 进行编译选项设置:设置编译选项,从而让编译器按照用户设定来进行编译; 编译硬件系统生成配置文件sof :编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以

4、及时序分析等步骤。 下载配置文件到FPGA器件:将配置文件.sof下载到FPGA.设置软件运行硬件环境属性:设置好软件运行的硬件环境属性后,便可进行编译、链接和调试、运行程序。 编译软件:对用户程序进行编译,生成可执行文件*.elf。 ISS运行/调试 :接下来在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。 在目标板上下载可执行软件到Nios II系统:将可执行文件.elf下载到RAM。在目标板上运行/调试软件 :在目标板上反复调试软件。 使用IDE编程工具 烧写配置文件和软件代码 :最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编

5、程到Flash中。 Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础新建工程选项 新建工程第一页 Quartus II操作基础新建工程第二页 新建工程第三页 Quartus II操作基础新建工程第四页 新建工程第五页 Quartus II操作基础Quartus II操作基础图形编辑器对话框 Quartus II操作基础元件选择窗口 Qua

6、rtus II操作基础元件选择窗口 Quartus II操作基础Quartus II操作基础Quartus II操作基础 。Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础RTL阅读器窗口的右边,是过程设计结果的主窗口,包括设计电路的模块和连线Quartus II操作基础RTL阅读器的左边是层次列表,在每个层次上以树状形式列出了设计电路的所有单元。层次列表的内容包括以下几个方面: (1)实例Instances,能够被展开成低层次模块或实例; (2)原语Primitives,不能被展开为任何低层次模块的低

7、层次节点; (3)引脚Pin,当前层次的I/O端口,如果端口是总线,也可以将其展开,观察到端口中每一个端口的信号; (4)网线Net,是连接节点的连线,当网线是总线时也可以展开,观察每条网线。Quartus II操作基础Quartus II操作基础Quartus II操作基础(2)在新建话框中选择 Other Files 标签页,从中选择 Vector Waveform File,点击OK按钮,则打开一个空的波形编辑器窗口。建立波形文件 波形编辑器窗口:主要分为信号栏、工具栏和波形栏 。Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作

8、基础Count Value对话框的Counting页Count Value对话框的Timing页Quartus II操作基础Quartus II操作基础Quartus II操作基础编程下载设计文件Quartus II操作基础编程下载对话框 Quartus II操作基础编程下载对话框 Quartus II操作基础编程下载对话框 Quartus II操作基础Quartus II操作基础Quartus II操作基础Quartus II操作基础MegaWizard Plug-In Manager第一页 Quartus II操作基础MegaWizard Plug-In Manager第二页 MegaWi

9、zard Plug-In Manager第三页 Quartus II操作基础 MegaWizard Plug-In Manager第四页 MegaWizard Plug-In Manager第五页 Quartus II操作基础MegaWizard Plug-In Manager第六页 MegaWizard Plug-In Manager第七页 Quartus II操作基础SOPC硬件开发实例例子:设计一个电子钟第一步是要进行需求分析,根据这个要求来建立硬件系统。 电子钟的设计要求: 在液晶屏上显示日期、时间; 可以设置日期、时间;SOPC硬件开发实例 根据系统要求,电子钟的设计要用到的外围器件

10、有: LCD:电子钟显示屏幕; 按键:电子钟设置功能键; Flash存储器:存储软、硬件程序; SRAM存储器:程序运行时将其导入SRAM。 根据所要用到的外设、要实现的功能以及开发板的配置,在SOPC Builder中建立系统要添加的模块包括: Nios II CPU、定时器、按键PIO、LCD控制器、AVALON三态桥、外部RAM接口、外部Flash接口。 使用的开发环境如下: WinXP操作系统 Nios II 6.0嵌入式处理器 Quartus II 6.0 基于Cyclone II 的SOPC开发板SOPC硬件开发实例创建工程创建工程进行完需求分析之后,进行硬件系统的创建。 首先必须

11、建立一个Quartus II 的工程, 步骤如下: 1. 开始-程序-AlteraQuartus II 6.1Quartus II 6.1(32 bit),启动Quartus II软件; SOPC硬件开发实例2.选择File菜单New Project Wizard,出现Introduction页面,该页面介绍所要完成的具体任务,点击next。SOPC硬件开发实例3. 进行项目名称的设定、工作目录的选择。指定工程存放的目录,工程名和顶层实体名,工程名和顶层实体名要求相同,工程目录可以随意设置,但必须是英文的目录,工程名和顶层实体名也要求是英文名字,我们的工程名和顶层实体名为clock,选择Nex

12、t。SOPC硬件开发实例4.可以为工程添加先期已经输入的设计文件,指定用户自定义的元件库的路径,这里我们没有事先输入好的文件,也没有自定义的元件库,点击Next进入下一步。SOPC硬件开发实例5. 用户指定目标器件,根据开发板的所使用的器件来选择,实际开发中,通过查看核心板的参考手册来获取所使用的器件具体型号,可以使用窗口右边的Filters来加快器件的选择,选择完毕点击Next。SOPC硬件开发实例6. 指定在Quartus II 之外的用于,设计输入、综合、仿真、时序分析的第三方EDA工具,Quartus II对第三方工具的支持比较完善。这里我们不做选择,直接点击Next。SOPC硬件开发

13、实例所见新工程的信息,确认所创建工程的主要信息,点击Finish完成工程的建立,在开发的过程中,还可以通过菜单assignmentSettings来对这些配置进行修改。 点击Finish按钮,Quartus II自动会打开这个工程,可以看到顶层实体名出现在工程导航窗口中。SOPC硬件开发实例创建Nios II 系统模块 创建完成工程之后,需要创建顶层实体。创建完顶层设计文件之后,使用SOPC Builder创建NIOS II 嵌入式处理器,添加、配置系统的外设IP,组成Nios II系统模块。 Nios II 系统模块设计完成之后要加入到该顶层实体中,然后进行其他片上逻辑的开发。一、创建顶层实

14、体一、创建顶层实体(1)新建的工程窗口中,选择FileNew; (2)在Device Design File页中,选择Block DiagramSchematic File,即原理图文件,也可以选择硬件描述语言的文件形式。单击OK。 (3)出现一个模块编辑窗口。创建Nios II 系统模块创建Nios II 系统模块(4) 选择FileSave As,出现Save As对话框,显示的目录为之前设置的工程目录,文件名为之前设置的顶层实体名(由于这是工程的第一个文件,系统会默认为顶层设计实体的名字)。确定Add to Current Project选项被选中,点击Save文件被保存并被加入到工程中

15、。创建Nios II 系统模块二、创建二、创建Nios II系统模块系统模块 创建NIOS II系统模块需要使用SOPC Builder,它是Quartus II中的一个工具,使用SOPC Builder可以创建一个Nios II 系统模块,或者创建多主设备SOPC模块。一个完整Nios II的系统模块包括Nios II处理器和相关的系统外设。所以创建系统模块的流程是先创建一个系统,然后添加Nios II CPU和外设IP,然后进行相应的设置,最后生成实例,然后将其加入到工程的顶层实体中去。 创建Nios II 系统模块(一)、创建系统 启动SOPC Builder,选择ToolsSOPC B

16、uilder,出现下图所示的Create New System对话框。键入系统的名字,选择硬件描述语言Verilog或者是VHDL。单击OK按钮后,出现SOPCBuider系统模块设计窗口。创建Nios II 系统模块用户需要设置系统的时钟频率,该频率用于计算硬件和软件开发中的定时,比如时钟分频或波特率。这里我们设成85MHz,还可以选择是否选用流水线。(二) 、设置系统主频和指定目标FPGA 在Target栏中的Board部分指定我们这本书使用的核心开发板Cyclone II (EP2C35)。也可以在Board部分选择Unspecified,然后在Device Family选择Cyclon

17、e II。 创建Nios II 系统模块(三)、加入Nios II CPU和 IP模块 首先加入Nios II软核,Nios II 是软核CPU,共有三种类型的CPU可供选择:Nios II/e(经济型)、Nios II/s(标准型)和Nios II/f(快速型)。用户可以根据实际的情况进行选择。Nios II是一个用户可以自行进行定制的CPU,用户可以增加新的外设、新的指令等。添加Nios II CPU的步骤如下: 1. 在上图“SOPCBuider系统模块设计窗口”Avalon Components 下面选择Nios II Processor; 2. 点击 Add,出现Nios II CP

18、U的配置向导,共有三种类型的CPU可供选择;创建Nios II 系统模块 根据需要选择相应的一种Nios II核,我们选择标准型的Nios II核,Hardware Multiply选择none,不选择Hardware Divide点击Next,进入Caches & Tightly Coupled Memories设置窗口;创建Nios II 系统模块 设置Nios II的Cache和与CPU直接相连的存储器端口(不通过Avalon总线),选择Instruction Cache为4Kbytes,不选中Include tightly coupled instruction master

19、port(s) ,点击Next进入Advanced Features设置页面。创建Nios II 系统模块 Advanced Features的设置页面是Quartus II 6.1 版本才有的设置,这里不选择Include cpu_resetrequest and cpu_resettaken signals点击Next进入JTAG Debug Module设置。创建Nios II 系统模块 共有4个调试级别可供选择,这里选择Level1即可,该级别支持软件的断点调试。JTAG调试模块要占用较多的逻辑资源,如果整个系统调试完毕了可以选用No Debugger以减少系统占用资源点击Next进入

20、自定义指令的设置。 因为本例不用到任何的自定义指令,这里不作任何的设置,点击Finish完成CPU模块的添加。创建Nios II 系统模块创建Nios II 系统模块除了Nios II CPU,电子钟设计需要添加的IP模块包括: Timer Button PIO LCD控制器 External RAM Bus External Flash Bus External RAM interface External Flash Interface创建Nios II 系统模块 1. 添加定时器 定时器和Nios II CPU一样,用户可以对其进 行定制。添加定时器的步骤如下: (1)在Avalon c

21、omponents下的other库中选 择Interval Timer并单击Add,Avalon_Timer-timer_0的向导窗口出现; (2)配置定时器,点击Finish,完成定时器的添加。 (3)可以对Timer进行重命名,我们这里取缺省的名字。创建Nios II 系统模块 2. 添加Button PIO (1)在 Avalon components下的other下选择PIO,单击Add,出现Avalon PIO-PIO_0的向导; (2)在Basic Settings页中,设置width=4bits,direction为Input Ports Only; 创建Nios II 系统模块

22、 (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.创建Nios II 系统模块 3. 添加LCD控制器 (1)在“SOPCBuider系统模块设计窗口” 的左侧的Avalon components下的disp

23、lay库中选择Character LCD(162, Optrex 16027),单击Add; (2)Module Name下出现,lcd_16027_0; (3)将其重命名lcd_display。 4.添加外部RAM接口 (1)Avalon components下的Memory下面选择Cypress CY7C1380C SSRAM,单击Add,出现SSRAM (Cypress CY7C1380C)-ext_ssram的向导; (2)在Timing Parameters下面设置Read Latency 为2 clocks,在SSRAM下面设置Memory Size为2Mbytes (3)单击Fi

24、nish,返回到Altera SOPC Builder NIOS2的窗口; (4)右键单击Module Name下的ssram_0,从菜单选择rename,重命名为ext-ssram。 5. 添加外部闪存接口 (1)在Avalon components下的Memory下面选择Flash Memory(Common Flash Interface),单击Add,出现外部闪存接口向导; (2)在Attributes页中,可以在Presets列表中选择相应的闪存的接口,这些闪存的接口都是经过测试的,如果列表中没有,用户可以自己定义闪存的Size和Data Width;创建Nios II 系统模块 (

25、3)在timing页中,可以设置闪存的读写时序要求,可以设置Setup, Waite, hold时间等参数,通常保留缺省的设置; (4)如应用选择的闪存接口不在列表中,需要自己定义Size和Data Width,和时序要求; (5)点击Finish,返回到Altera SOPC Builder NIOS2的窗口,Module Name出现cfi_flash_0,对其重命名为ext_flash。创建Nios II 系统模块 6. 添加外部RAM总线和外部flash总线(Avalon三态总线桥) 为了使Nios II 系统能与开发板上的外部存储器通信,必须在Avalon总线和外部存储器之间加入Av

26、alon三态桥。 步骤如下: (1) 在Bridge下,选择Avalon Tri-State 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 UART (1)在Avalon components下的Communication下

27、选择 JTAG UART,点击ADD,出现添加向导。 (2)按照缺省设置,点击Finish。 (3) 将其重命名为JTAG_UART. 8. Nios II系统的连接 主要是外部RAM接口要和RAM的三态桥连接,外部的Flash接口要和flash的三态桥连接。所有添加的IP连接都是系统自动完成的,除了上面提到的三态桥和外部存储器的接口的连接之外,其它的连接用户不用修改,但对于三态桥和外部存储器接口的连接,系统的自动连接可能和用户的开发板不匹配,用户需要进行手动的更改。针对我们所用的开发板的情况进行的设置,因为本书用到的开发板外部的SRAM和外部的Flash没有使用共用的数据线和地址线,所以必须

28、为它们分别添加一个三态桥。创建Nios II 系统模块创建Nios II 系统模块三、分配三、分配IP模块的地址和中断号模块的地址和中断号 在以上添加在以上添加IP的过程中,的过程中,SOPC Builder为各个为各个IP模块分模块分配了一个默认的基地址,用户可以改变这些默认的分配。如果配了一个默认的基地址,用户可以改变这些默认的分配。如果用户自己分配的地址出现冲突,用户自己分配的地址出现冲突,SOPC Builder会给出警告,会给出警告,用户可以按照下面的步骤来进行分配和解决地址冲突问题。用户可以按照下面的步骤来进行分配和解决地址冲突问题。 创建Nios II 系统模块 下面我们给出一种

29、自定义的地址分配实例,将闪存的基地址设定为0 x00000000,步骤如下: (1)单击Flash外设的Base栏,将地址改为0 x0,然后回车,这时SOPC Builder的消息框中出现错误的提示信息,这是因为闪存的地址和其它的外设地址发生了冲突。 (2)选择Module菜单中的Lock Base Address操作,一个挂锁的图标出现在闪存基地址的旁边。 (3)选择System菜单中的Auto Assign Base Address操作,来解决外设的地址分配冲突问题,SOPC Builder调整其它外设的地址来避开与闪存地址的冲突,错误提示的消息就会消失了。 (4)用户可以手动修改各个外设

30、的中断号,中断号越低,中断优先级越高,用户也可以采用自动分配中断号,选择System菜单中的Auto Assign IRQs,但SOPC Builder不处理软件操作,采用自动分配中断的策略不一定是最优的,用户最好是根据自己的应用来确定外设的中断优先级,采用手动的分配。创建Nios II 系统模块 四、配置四、配置NIOS II 系统系统 系统的IP模块添加完成之后,还需要对系统进行配置。点击Nios II More “cpu_0” Settings 页,用户可以进行如下的设置:Reset Address:可以选择存放Boot Loader的存储器和设置Boot Loader在存储器中的偏移,

31、我们这里选择ext_flash,偏移选择默认;Exception Address:可以选择存放异常向量表的存放的存储器和设置异常向量表在存储器中的偏移,我们选择ext_ssram,偏移选择默认;Break Location:如果NIOS II 包含有一个JTAG Debug模块,SOPC Builder会显示这项内容。其Memory Module总是JTAG Debug Module,Offset 固定为0 x20, 地址由JTAG debug module基地址决定。用户不能修改Break Location的各个域的内容。五、生成五、生成NIOS II并加入到工程中并加入到工程中 NIOS

32、II系统是工程的一部分,我们首先是生成它,然后加入到工程中去,然后将整个工程下载到FPGA芯片中去。单击System Generation,在Option下进行如下的设置: 创建Nios II 系统模块选中 Simulation,如果安装了ModelSim软件,会生成用于仿真的相应的文件。单击exit 退出SOPC Builder。单击 Generate,SOPC Builder会提示生成系统的进程,系统生成完成时会提示”SUCCESS: SYSTEM GENERATION COMPLETED”。选中 HDL,会生成系统模块的硬件语言文件。 系统生成完成之后,SOPC Builder为这个定制

33、的NIOS II系统模块创建了一个符号,要把Nios II系统加入到工程中去,遵循如下的步骤: (1)在 Quartus II软件中,打开顶层实体(BDF格式),在BDF窗口中任意处双击,出现 Symbol对话框; (2)在Symbol对话框中单击Project来展开工程目录,其下出现NIOS2(本例采用的系统名),选中它,右侧出现了系统的符号表示; (3)单击OK,Symbol对话框关闭,NIOS2的符号轮廓被附着在鼠标的指针上。 (4)BDF窗口中任意空白处单击一下,NIOS2的符号出现在BDF窗口中,这样我们创建的系统已经被加入到工程中了。创建Nios II 系统模块创建Nios II

34、系统模块六、引脚和嵌入式锁相环六、引脚和嵌入式锁相环 除了除了NIOS II系统之外,可能还要有其它的硬件逻辑,我系统之外,可能还要有其它的硬件逻辑,我们这里加入一个嵌入式锁相环,嵌入式锁相环有两个时钟输出,们这里加入一个嵌入式锁相环,嵌入式锁相环有两个时钟输出,一个输出一个输出SSRAM提供时钟,另一个时钟的输出为提供时钟,另一个时钟的输出为NIOS II CPU提供时钟,然后添加输入、输出、双向引脚,以实现和提供时钟,然后添加输入、输出、双向引脚,以实现和FPGA外部的外设进行通信。外部的外设进行通信。 加入嵌入式锁相环的步骤如下:加入嵌入式锁相环的步骤如下:创建Nios II 系统模块(

35、1) 点击ToolsMegaWizard Plug-In Manager,出现MegaWizard Plug-In Manager向导Page1窗口,点击next创建Nios II 系统模块(2) 在MegaWizard Plug-In Manager Page2 窗口中的IO下面选择ALTPLL,器件选择Cyclone II,输出文件类型选择VHDL,文件名为ssram_pll,选中Return to this page for another create operation,然后点击Next,出现MegaWizard Plug-In Manager-ALTPLL Page 3of 10;

36、创建Nios II 系统模块(3)在窗口中,做如图选择,点击next,进入page 4(4)在page 4中不作任何配置,直接点击next;创建Nios II 系统模块(5)点击next创建Nios II 系统模块(6)在Page 6 窗口中,设置c0输出时钟,首先选中Use this clock选项,设置时钟频率为85MHz,占空比为50%。点击Next会进入c1输出时钟的设置;创建Nios II 系统模块(7) 嵌入式PLL可提供3个输出时钟,我们使用其中的两个,Page 7 窗口中,在c1时钟的设置页面上,选中Use this clock选项,设置时钟频率为85MHz,点击Next;创建

37、Nios II 系统模块创建Nios II 系统模块(8)在MegaWizard Plug-In Manager-ALTPLL Page 8 of 10窗口中,不选中Use this clock选项,即我们不使用c2时钟,点击Next; (9)在MegaWizard Plug-In Manager-ALTPLL Page 9 of 10窗口中,给出了用于仿真必须要产生的文件,点击Next; (10)在MegaWizard Plug-In Manager-ALTPLL Page 10 of 10窗口中,给出了用户选择要产生的文件,不做改变,采用默认配置,点击Finish完成PLL的生成。 在顶层

38、实体的bdf窗口中双击鼠标,出现Symbol添加窗口,在project下面选择刚才建立的ssram_pll,点击OK。ssram_pll的轮廓会附着在鼠标上,点击bdf窗口的空白处,将嵌入式锁相环加入到了工程中。引脚添加的步骤如下:引脚添加的步骤如下: (1)在顶层实体的bdf窗口的空白处双击鼠标,出现Symbol添加窗口(2)在alteraquartuslibraries下面选择primitives,再在其下选择pin,在其中有三种类型的引脚,有bidir,input,output,分别为双向、输入和输出引脚,选择相应类型的引脚,点击OK。 (3)点击bdf窗口的空白处,即将引脚加入到了工程

39、中。(4)重复上面的步骤添加为各个端口添加相应类型的引脚。创建Nios II 系统模块连接引脚和命名引脚连接引脚和命名引脚 第一个加入的引脚的名称缺省为pin_name,之后加入的引脚名称依次为pin_name1,pin_name2向上递增,为了便于理解和记忆,需要对引脚重新命名,使其和其传输的信号联系起来。 命名引脚的方法如下: (1) 双击引脚的“pin_namen”部分,pin_namen的文字变成高亮,可以对其编辑。 (2) 对其他的引脚重复以上的操作,修改成具有意义的名字。 (3) 对于总线型的引脚,引脚名称之后要标识出总线的位数,如ddr_a12.0,在引脚名称之后加上方括号,然后

40、写上最高位和最低位,用两个.隔开。 (4)将嵌入式锁相环和系统模块等连接起来,并将引脚连接到相应的端口上。创建Nios II 系统模块连接好的顶层模块图设计优化 设计优化主要包括节省占用FPGA的面积和提高设计系统运行速度两个方面。这里的“面积”是指一个设计所消耗的FPGA的逻辑资源的数量,一般以设计占用的等价逻辑门数来衡量。“速度”是指设计的系统在目标芯片上稳定运行时能够达到的最高频率,它与设计的时钟周期、时钟建立时间、时钟保持时间、时钟到输出端口的延迟时间等诸多因素有关。面积与速度的优化面积与速度的优化打开我们刚才的工程clock,然后选择Assignment菜单下的Settings命令,

41、弹出设置窗口。在对话框的左边的Category栏下,列出了很多可设置的对象,包括EDA Tools Settings、Compilation Process Settings、Analysis & Synthesis Settings、Fitter Settings、Timing Settings、Simulation Settings等等,选中要设置的项目,窗口的右边显示供设置的选项和参数。在Analysis & Synthesis Settings页面,用于对设计在分析与综合时的优化设置。在该页面的Optimization Techniques栏中,提供了Speed、Bal

42、anced和Area3种优化选择,其中Balanced是软件缺省的优化选择。如果对Speed或Area有特殊的要求,则选中相应的选项。设计优化时序约束与设置时序约束与设置选择Settings下面的Timing Analysis Settings,然后选择Classic Timing Analyzer Settings。在此页面中,可以对设计的延迟约束、时钟频率等做设置。延迟约束(Delay Requirements)设置包括tsu(建立时间)、tco(时钟到输出的延迟)、tpd(传输延迟)和th(保持时间)的设置。一般来说,用户要根据目标芯片的特性及PCB板走线的实际情况,给出设计需要满足的时

43、钟频率、建立时间、保持时间和传输延迟时间等参数。对一些简单的应用,对时序要求不严格 ,可以不做设置。设计优化Fitter设置设置在Ssettings对话框中,用鼠标左键单击Category栏目中的Fitter Settings项,出现Fitter Settings设置页面。此页面用于布局布线器的控制。 在这里需要设置的主要是布局布线的策略(Fitter Effort),有三种模式可供选择:标准模式(Standard Fit)、快速模式(Fast Fit)和自动模式(Auto Fit)。标准模式需要的时间比较长,但可以实现较高的最高频率(fmax);快速模式可以节省50%的编译时间,但会使最高频

44、率有所降低;自动模式在达到设计要求的条件下,自动平衡最高频率和编译时间。编译Quartus II编译器由一系列处理模块组成,包括分析与综合、适配、汇编和时序分析等环节。通过Quartus II编译器,可以检查设计错误,综合逻辑,把设计配置到FPGA中去,并且为模拟、时序分析及器件配置生成输出文件。 1. 分析与综合 在编译过程中,首先对设计文件进行分析和检查,如检查原理图的信号线有无漏接、信号有无双重来源、硬件描述语言文件中有无语法错误等,如存在错误,编译器会给出出错信息并标出出错位置,供设计者修改,如果设计文件不存在错误,接着进行综合,综合完成的是设计逻辑到器件资源的映射。 2. 适配 适配

45、完成的是设计逻辑在器件中的布局和布线、选择适当的内部互联路径、引脚分配、逻辑元件分配等操作。可以设置适配的多个选项,来采取不同的优化策略。 编译3. 汇编 适配完成后,进入编程环节。在编程过程中,生成器件的编程映像文件,映像文件可以通过电缆下载到目标芯片中。4. 时序分析 在适配完成之后,设计逻辑在器件中的布局和布线、内部互联路径已经确定,在时序分析中,会计算给定设计在器件中延时,完成时序分析和逻辑的性能分析。用户可以预先设置Timing requirement,可以针对整个的工程、特定的设计实体、节点和引脚指定所需的速度性能。编译过程中会针对设置进行适配。 编译一、编译设置一、编译设置 在编

46、译前,用户可以设置编译器,可以实现对编译过程控制的目的。编译器根据相应的设置进行编译。合理的设置可以提高工程编译的速度,优化器件的资源利用等。 单击Assignments菜单中的Settings,出现下图的窗口。编译在Device中,用户可以设置和器件有关的选项,FPGA的芯片通常在建立项目的时候就已经选择好了,所以通常不做修改。注意在编译之前必须要对未使用的引脚做设置,将未使用的引脚设置成As inputs,tri-stated。如果不做此项配置设计可能无法在开发板上运行。设置未使用的引脚按照下面的步骤: (1) 在Settings对话框中的Device页中,单击Device and Pin

47、 Options,出现Device and Pin Options对话框,缺省是General页。编译(2)单击Unused Pins标签,在Reserve all unused pins下选择,As inputs,tri-stated。 (3)在Device and pins options中,其他的设置可以选用默认的设置,不做修改,点击确定。编译 设计优化也是编译设置的一部分,但是为了强调设计优化的重要性,把它们单独提出来介绍了,除了这些设置之外,还有下面的一些设置跟编译的过程有关: 在EDA Tools中,用户可以指定在编译过程中用到的其他第三方的工具软件,通常不用设定。 在Compil

48、ation Process Settings中,用户可以设置编译过程的一些选项,如是否使用增量编译等。 在Timing Analyzer中,用户可以设置时序分析报告中显示的内容。 在Assembler中,指定汇编的选项。编译二、引脚分配二、引脚分配 用户需要进行引脚分配,使得编译器能把用户设计中的信号分配到目标器件上的特定引脚上。Quartus II 提供了两种引脚分配方法: 一种是使用Assignments Editor来分配,方法为选择Assignments菜单中的pins或者Assignments Editor; 第二种方法是使用TCL脚本一次性分配所有的引脚。编译采用第一种方法即使用Assignments Editor进行引脚分配步骤如下: (1)选择选择Assignments菜单中的pins或者Assignments Editor。 (2)在Node Name下输入引脚名称,在Location选择相应的引脚。 (3)选择FileSa

温馨提示

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

评论

0/150

提交评论