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

下载本文档

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

文档简介

第二章SOPC开发流程及QuartusII的使用2.1 SOPC开发流程和开发工具2.2QuartusII操作基础2.3SOPC硬件开发实例2.4 创建NiosII系统模块2.5 设计优化2.6 编译2.7 编程下载SOPC开发流程和开发工具SOPC设计包括硬件和软件两部分。硬件设计:主要基于QuartusII和SOPCBuilder。软件设计:基于NiosIIIDE。SOPC开发流程分析系统需求:在进行SOPC开发之前,首先必须确定系统的需求,如应用系统需求的计算性能、需要的带宽和吞吐量、需求的接口类型以及是否需求多线程的软件等。建立QuartusII工程:每个开发过程开始时都应建立一个工程,QuartusII是以工程的方式对设计过程进行管理。在工程中建立顶层模块文件.bdf相当于传统电路设计中的电路板(PCB)。定义和生成系统:在SOPCBuilder中添加需要的功能模块(NiosII及其标准外设模块),完成后生成一个系统模块。定制指令&定制外设逻辑:如果需要,用户可以定制指令和外设逻辑。(可参考第8章)自定义的功能模块:当设计中现有模块不能满足设计要求时,可设计自己的功能模块。并在顶层模块中使用;Altera的LPM模块:在QuartusII软件中包含了大量的Altera公司提供的LPM功能模块,相当于传统设计中除处理器以外的逻辑芯片(如74系列);

集成SOPC生成的系统到QuartusII工程:在顶层模块中,分别将SOPCBuilder生成的系统模块、LPM功能模块以及用户自定义功能模块添加到顶层模块中;连接各功能模块:将各个功能模块用连线连起来组成系统功能原理图。选择FPGA型号并进行管脚分配:为系统功能原理图选择芯片载体并为各个输入输出信号分配芯片的管脚;进行编译选项设置:设置编译选项,从而让编译器按照用户设定来进行编译;编译硬件系统生成配置文件sof:编译系统生成硬件系统的配置文件*.sof和*.pof。编译系统是一个非常复杂的过程,包括优化逻辑的组合、综合逻辑、适配FPGA、布线以及时序分析等步骤。下载配置文件到FPGA器件:将配置文件.sof下载到FPGA.设置软件运行硬件环境属性:设置好软件运行的硬件环境属性后,便可进行编译、链接和调试、运行程序。编译软件:对用户程序进行编译,生成可执行文件*.elf。ISS运行/调试:接下来在IDE的指令集仿真器(ISS)上仿真软件和运行/调试软件。在目标板上下载可执行软件到NiosII系统:将可执行文件.elf下载到RAM。在目标板上运行/调试软件:在目标板上反复调试软件。使用IDE编程工具烧写配置文件和软件代码:最后利用IDE的编程工具将配置文件烧写到FPGA的配置芯片或Flash,将可执行文件*.elf编程到Flash中。

QuartusII操作基础——QuartusⅡ软件的安装——QuartusⅡ软件的用户界面启动QuartusⅡ软件后默认的界面主要由标题栏、菜单栏、工具栏、资源管理窗口、编译状态显示窗口、信息显示窗口和工程工作区等部分组成。QuartusII操作基础——QuartusⅡ软件的用户界面QuartusII操作基础标题栏中显示当前工程的路径和工程名。——QuartusⅡ软件的用户界面QuartusII操作基础菜单栏主要由文件(File)、编辑(Edit)、视图(View)、工程(Project)、资源分配(Assignments)、操作(Processing)、工具(Tools)、窗口(Window)和帮助(Help)等下拉菜单组成。——QuartusⅡ软件的用户界面QuartusII操作基础工具栏中包含了常用命令的快捷图标。——QuartusⅡ软件的用户界面QuartusII操作基础资源管理窗口用于显示当前工程中所有相关的资源文件。——QuartusⅡ软件的用户界面QuartusII操作基础工程工作区当QuartusⅡ实现不同的功能时,此区域将打开对应的操作窗口,显示不同的内容,进行不同的操作,如器件设置、定时约束设置、编译报告等均显示在此窗口中。——QuartusⅡⅡ软件的用用户界面面QuartusII操作基础编译状态态显示窗窗口此窗口主主要显示示模块综综合、布布局布线线过程及及时间。。——QuartusⅡⅡ软件的用用户界面面QuartusII操作基础信息显示示窗口该窗口主主要显示示模块综综合、布布局布线线过程中中的信息息,如编编译中出出现的警警告、错错误等,,同时给给出警告告和错误误的具体体原因。。——QuartusⅡ的开发流流程按照一般般编程逻逻辑设计计的步骤骤,利用用QuartusⅡ软件进行行开发可可以分为为以下四四个步骤骤:(1)输入设设计文件件;(2)编译设设计文件件;(3)仿真设设计文件件;(4)编程下下载设计计文件。。QuartusII操作基础——输入设计计文件QuartusⅡ软件的输输入法有有:1)原理图图输入方方式、2)文本输输入方式式(如VHDL、VerilogHDL)3)AHDL输入方式式、4)模块输输入方式式以及5)第三方方EDA工具产生生的文件件以及混混合使用用以上几几种设计计输入方方法进行行设计原理图输输入法原理图输输入法也也称为图图形编辑辑输入法法,用QuartusⅡ原理图输输入设计计法进行行数字系系统设计计时,不不需要任任何硬件件描述语语言的知知识,在在具有数数字逻辑辑电路基基本知识识的基础础上,利利用QuartusⅡ软件提供供的EDA平台设设计数数字电电路或或系统统。QuartusII操作基础1、原理理图输输入法法-建建立设设计工工程建立设设计工工程的的方法法如图图示::新建工工程选选项新建工工程第第一页页QuartusII操作基础1、原理理图输输入法法-建建立设设计工工程建立设设计工工程的的方法法图示示:新建工工程第第二页页新建工工程第第三页页QuartusII操作基础1、原理理图输输入法法-建建立设设计工工程建立设设计工工程的的方法法图示示:新建工工程第第四页页新建工工程第第五页页QuartusII操作基础2、原理理图输输入法法-输输入设设计文文件1)新建建工程程之后后,便便可以以进行行电路路系统统设计计文件件的输输入。。选择择file菜单中中的New命令,,弹出出如图图所示示的新新建设设计文文件类类型选选择窗窗口。。QuartusII操作基础2)选择择New对话框框中的DeviceDesignfiles页下的的BlockDiagram/SchematicFile,点击击OK,打开下下图所所示的的图形编辑辑器对对话框框,进行设设计文文件输输入。。图形编编辑器器对话话框2、原理理图输输入法法-输输入设设计文文件QuartusII操作基础2、原理理图输输入法法-输输入设设计文文件3)在图图形编编辑窗窗口中的任任何一一个位位置双击鼠鼠标,,或点击击图中的的“符号工具”按钮,或选择择菜单Edit下的InsertSymbol命令,,弹出如右图所示示的元件选择窗窗口Symbol对话框。元件选选择窗窗口QuartusII操作基础2、原理理图输输入法法-输输入设设计文文件元件选选择窗窗口QuartusII操作基础4)用鼠鼠标点点击单单元库库前面面的加加号(+),库中中的元元件符符号以以列表表的方方式显显示出出来,,选择择所需需要的的元件件符号号,该该符号号显示示在Symbol对话框框的右右边,,点击击OK按钮,,添加加相应应元件件符号号在图图像编编辑工工作区区中,,连接接原理理图。。2、原理理图输输入法法-输输入设设计文文件十六进进制同同步计计数器器的原原理图图如下下:QuartusII操作基础3、原理理图输输入法法-优优缺点点:优点::1)可以以与传传统的的数字字电路路设计计法接接轨,,即使使用传传统设设计方方法得得到电电路原原理图图,然然后在在QuartusⅡ平台完完成设设计电电路的的输入入、仿仿真验验证和和综合合,最最后下下载到到目标标芯片片中。。2)它它将传传统的的电路路设计计过程程的布布局布布线、、绘制制印刷刷电路路板、、电路路焊接接、电电路加加电测测试等等过程程取消消,提提高了了设计计效率率,降降低了了设计计成本本,减减轻了了设计计者的的劳动动强度度。缺点::1)原理理图设设计方方法没没有实实现标标准化化,不不同的的EDA软件中中的图图形处处理工工具对对图形形的设设计规规则、、存档档格式式和图图形编编译方方式都都不同同,因因此兼兼容性性差,,难以以交换换和管管理。。2)由于于兼容容性不不好,,性能能优秀秀的电电路模模块的的移植植和再再利用用非常常困难难,难难以实实现用用户所所希望望的面面积、、速度度以及及不同同风格格的综综合优优化3)原理理图输输入的的设计计方法法不能能实现现真实实意义义上的的自顶顶向下下的设设计方方案,,无法法建立立行为为模型型,从从而偏偏离了了电子子设计计自动动化最最本质质的涵涵义。。QuartusII操作基础——编译设设计文文件QuartusⅡ编译器器的主主要任任务是是对设设计项项目进进行检检查并并完成成逻辑辑综合合,同同时将将项目目最终终设计计结果果生成成器件件的下下载文文件。。编译译开始始前,,可以以先对对工程程的参参数进进行设设置。。QuartusⅡ软件中中的编编译类类型有有全编编译和和分步步编译译两种种。选择QuartusⅡ主窗口口Process菜单下下StartCompilation命令,,或者者在主主窗口口的工具具栏上直接接点击击图标标可以进进行全全编译译全编译的的过程程包括括分析析与综综合(Analysis&Synthesis)、适配配(Fitter)、编程程(Assembler)、时序序分析析(ClassicalTimingAnalysis)这4个环节节,而这这4个环节节各自自对应应相应应的菜菜单命命令,,可以以单独独分步步执行行,也也就是是分步步编译译。在设计计的调调试和和优化化过程程中,,可以以使用用RTL阅读器器观察察设计计电路路的综综合结结果。QuartusII操作基础分步编编译就就是使使用对对应命命令分分步执执行对对应的的编译译环节节,每每完成成一个个编译译环节节,生生成一一个对对应的的编译译报告告。分分步编编译跟跟全编编译一一样分分为四四步::1、分析与与综合合(Analysis&Synthesis):设计计文件件进行行分析析和检检查输输入文文件是是否有有错误误,对对应的的菜单单命令令是QuartusⅡ主窗口口Process菜单下下Start\StartAnalysis&Synthesis,对应的的快捷捷图标标是在主窗窗口的工具具栏上的;;2、适配配(Fitter)::在适适配过过程中中,完完成设设计逻逻辑器器件中中的布布局布布线、、选择择适当当的内内部互互连路路径、、引脚脚分配配、逻逻辑元元件分分配等等,对对应的的菜单单命令令是QuartusⅡ主窗口口Process菜单下下Start\StartFitter;(注注:两两种编编译方方式引引脚分分配有有所区区别))QuartusII操作基础3、编程(Assembler):产生多多种形形式的的器件件编程程映像像文件件,通过过软件件下载载到目目标器器件当当中去去,应应用的的菜单单命令令是QuartusⅡ主窗口口Process菜单下下Start\StartAssembler;4、时序分分析(ClassicalTimingAnalyzer):计算算给定定设计计与器器件上上的延延时,,完成成设计计分析析的时时序分分析和和所有有逻辑辑的性性能分分析,,菜单单命令令是QuartusⅡ主窗口口Process菜单下下Start\StartClassicalTimingAnalyzer,对应应的快快捷图图标是是在主窗口的工具栏上的。。编译完成以以后,编译译报告窗口口CompilationReport会报告工程程文件编译译的相关信信息,如编编译的顶层层文件名、、目标芯片片的信号、、引脚的数数目等等。。全编译操作作简单,适适合简单的的设计。对对于复杂的的设计,选选择分步编编译可以及及时发现问问题,提高高设计纠错错的效率,,从而提高高设计效率率。QuartusII操作基础5、RTL阅读器:在在设计的调调试和优化化过程中,,可以使用用RTL阅读器观察察设计电路路的综合结结果,同时时也可以观观察源设计计如何被翻翻译成逻辑辑门、原语语等。RTL阅读器是观观察和确定定源设计是是否实现了了设计要求求的理想工工具。执行仿真验验证设计功功能之前使使用RTL阅读器查找找设计中的的问题,可可以在设计计早期发现现问题,为为后期的验验证工作节节省时间。。当设计通过过编译后,,选择QuartusⅡ主窗口Tools菜单下NetlistViewers\RTLViewer命令,弹出出RTL阅读器窗口口QuartusII操作基础5、RTL阅读器RTL阅读器窗口口图QuartusII操作基础RTL阅读器窗口口的右边,,是过程设设计结果的的主窗口,,包括设计计电路的模模块和连线线5、RTL阅读器RTL阅读器窗口口图QuartusII操作基础RTL阅读器的左左边是层次次列表,在在每个层次次上以树状状形式列出出了设计电电路的所有有单元。层层次列表的的内容包括括以下几个个方面:(1)实例Instances,能够被展展开成低层层次模块或或实例;(2)原语Primitives,不能被展展开为任何何低层次模模块的低层层次节点;;(3)引脚Pin,当前层次次的I/O端口,如果果端口是总总线,也可可以将其展展开,观察察到端口中中每一个端端口的信号号;(4)网线Net,是连接节节点的连线线,当网线线是总线时时也可以展展开,观察察每条网线线。5、RTL阅读器双击结构图图中的实例例,可以展展开此模块块的下一级级结构图QuartusII操作基础——仿真设计文文件仿真的目的的就是在软软件环境下下,验证电电路的行为为和设想中中的是否一一致。FPGA/CPLD中的仿真分分为功能仿仿真和时序序仿真。功功能仿真着着重考察电电路在理想想环境下的的行为和设设计构想的的一致性,,时序仿真真则在电路路已经映射射到特定的的工艺环境境后,考察察器件在延延时情况下下对布局布布线网表文文件进行的的一种仿真真。仿真一般需需要建立波波形文件、、输入信号号节点、编编辑输入信信号、波形形文件的保保存和运行行仿真器等等过程。QuartusII操作基础1、建立波形文文件波形文件用用来为设计计产生输入入激励信号号。利用QuartusII波形编辑器器可以创建建矢量波形形文件(.vwf)创建一个新新的矢量波波形文件步骤如下::(1)选择QuartusⅡ主界面File菜单下的New命令,弹出新建对对话框;QuartusII操作基础(2)在新建话框中选选择OtherFiles标签页,从中选择VectorWaveformFile,点击OK按钮,则打开一个个空的波形形编辑器窗窗口。1、建立波形文文件波形编辑器器窗口:主要要分为信号号栏、工具具栏和波形形栏。QuartusII操作基础2、输入信号号节点(1)在波形形编辑方式式下,执执行Edit菜单中的InsertNodeorBus命令,或者者在波形编辑辑器左边Name列的空白处处点击鼠标标右键,弹出的InsertNodeorBus对话话框框QuartusII操作作基础础2、输输入入信信号号节节点点(2)点击击InsertNodeorBus对话话框框中中的的NodeFinder……按钮钮,弹弹出出NodeFinder窗口口,,在在此此窗窗口口中中添添加加信信号号节节点点。。QuartusII操作作基础础3、编编辑辑输输入入信信号号编辑辑输输入入信信号号是是指指在在波波形形编编辑辑器器中中指指定定输输入入节节点点的的逻逻辑辑电电平平变变化化,,编编辑辑输输入入节节点点的的波波形形。。在仿仿真真编编辑辑窗窗口口的的工工具具栏栏中中列列出出了了各各种种功功能能选选择择按按钮钮,,主主要要用用于于绘绘制制、、编编辑辑波波形形,,给给输输入入信信号号赋赋值值。。具具体体功功能能如如下下:::在在波波形形文文件件中中添添加加注注释释;;:修修改改信信号号的的波波形形值值,,把把选选定定区区域域的的波波形形更更改改成成原原值值的的相相反反值值;;:全全屏屏显显示示波波形形文文件件;;:放放大大、、缩缩小小波波形形;;:在在波波形形文文件件信信号号栏栏中中查查找找信信号号名名,,可可以以快快捷捷找找到到待待观观察察信信号号;;:将将某某个个波波形形替替换换为为另另一一个个波波形形;;:给给选选定定信信号号赋赋原原值值的的反反值值;;:输输入入任任意意固固定定的的值值;;:输输入入随随机机值值:给给选选定定的的信信号号赋赋值值,,X表示示不不定定态态,,0表示示赋赋0,1表示示赋赋1,Z表示示高高阻阻态态,,W表示示弱弱信信号号,,L表示示低低电电平平,,H表示示高高电电平平,,DC表示示不不赋赋值值。。QuartusII操作作基础础3、编编辑辑输输入入信信号号:设设置置时时钟钟信信号号的的波波形形参参数数,,先先选选中中需需要要赋赋值值的的信信号号,,然然后后鼠鼠标标右右键键点点击击此此图图标标弹弹出出Clock对话话框框,,在在此此对对话话框框中中可可以以设设置置输输入入时时钟钟信信号号的的起起始始时时间间((StartTime)、、结结束束时时间间((EndTime)、、时时钟钟脉脉冲冲周周期期((Period),,相相位位偏偏置置((Offset)以以及及占占空空比比。。:给给信信号号赋赋计计数数值值,,先先选选中中需需要要赋赋值值的的信信号号,,然然后后鼠鼠标标右右键键点点击击此此图图标标弹弹出出如如下下图图所所示示的的CountValue对话框,然后后赋值。CountValue对话框的Counting页CountValue对话框的Timing页QuartusII操作基础4、仿真波形文文件QuartusⅡ软件中默认的的是时序仿真真,如果进行行功能仿真则则需要先对仿仿真进行设置置,步骤如下下:(1)选择QuartusⅡ主窗口Assignments菜单下的Settings…命令,可以进进入参数设置置页面,如下下图所示,然然后单击SimulationSettings,在右边的对对话框中的Simulationmode中选择“Function”;QuartusII操作基础4、仿真波形文文件(2)选择QuartusⅡ主窗口Processing菜单下的GenerateFunctionalSimulationNetlist命令,生成功功能仿真网表表文件;(3)选择QuartusⅡ主窗口Processing菜单下的StartSimulation进行功能仿真真。功能仿真满足足要求后,还还要对设计进进行时序仿真真,时序仿真真可以在编译译后直接进行行,但是要将将上图中的Simulationmode中设置为“Timing”,设置好以后后直接选择StartSimulation命令,执行时时序仿真。QuartusII操作基础——编程下载设计计文件对设计进行验验证后,即可可对目标器件件进行编程和和配置,下载载设计文件到到硬件中进行行硬件验证。。QuartusⅡ编程器Programmer最常用的编程程模式是JTAG模式和主动串串行编程模式式AS。JTAG模式主要用在在调试阶段,,主动串行编编程模式用于于板级调试无无误后将用户户程序固化在在串行配置芯芯片EPCS中。QuartusII操作基础编程下载对话话框1、JTAG编程下载模式式QuartusII操作基础1)、选择QuartusⅡ主窗口的Tools菜单下的Programmer命令或点击图图标,进入入器件编程和和配置对话框框。如果此对对话框中的HardwareSetup后为“NoHardware”,则需要选择择编程的硬件件。点击HardwareSetup,进入HardwareSetup对话框,在此此添加硬件设设备。此方式的操作作步骤主要分分为3步:编程下载对话话框1、JTAG编程下载模式式QuartusII操作基础2)、配置编程程硬件后,选选择下载模式式,在Mode中指定的编程程模式为JTAG模式;编程下载对话话框1、JTAG编程下载模式式QuartusII操作基础3)、确定编程程模式后,单单击添添加加相应的counter.sof编程文件,选中counter.sof文件后的Program/Configure选项,然后点击图标下载设计计文件到器件件中,Process进度条中显示示编程进度,,编程下载完完成后就可以以进行目标芯芯片的硬件验验证了。AS主动串行编程程式的操作步骤如下下:(1)选择QuartusⅡ主窗口Assignments菜单Device命令,进入Settings对话框的Device页面进行设置置,如右图。。2、AS主动串行编程模式QuartusII操作基础2、AS主动串行编程程模式(2)选择QuartusⅡ主窗口的Tools菜单下的Programmer命令或点击图图标,,进入器器件编程和配配置对话框,,添加硬件,,选择编程模模式为ActiveSerialProgram;(3)单击添添加加相应的counter.pof编程文件,选选中文件后的的Program/Configure、Verify和BlankCheck项,单击图标标下下载设计文文件到器件中中,Process进度条中显示示编程进度。。下载完成后后程序固化在在EPCS中,开发板上上电后EPCS将自动完成对对目标芯片的的配置,无须须再从计算机机上下载程序序。QuartusII操作基础——QuartusⅡ中宏功能模块块的调用方法法使用QuartusⅡ软件的MegaWizardPlug-InManager中的宏功能模模块可以帮助助用户调用QuartusⅡ内部已有的IP(知识产权))核来完成一一些复杂系统统的设计,并并可以方便的的对调用的IP核的参数进行行修改。下面以一个调调用lpm_counter宏功能模块来来实现一个十十六进制的加加法同步计数数器为例,简简单介绍宏功功能模块的使使用。设计开始前新新建立一个名名为counter16的工程,在工工程中新建一一个新的bdf文件,选择QuartusⅡ主窗口的Tools菜单下的MegaWizardPlug-InManager命令,进入MegaWizardPlug-InManager对话框第一页页,然后依依此进行参数数的设定,具具体的流程如如图所示:QuartusII操作基础MegaWizardPlug-InManager第一页QuartusII操作基础MegaWizardPlug-InManager第二页MegaWizardPlug-InManager第三页QuartusII操作基础MegaWizardPlug-InManager第四页MegaWizardPlug-InManager第五页QuartusII操作基础MegaWizardPlug-InManager第六页MegaWizardPlug-InManager第七页QuartusII操作基础SOPC硬件件开发实例例子:设计一一个电子钟第一步是要进进行需求分析析,根据这个个要求来建立立硬件系统。。电子钟的设计计要求:在液晶屏上显显示日期、时时间;可以设置日期期、时间;SOPC硬件件开发实例根据系统要求求,电子钟的的设计要用到到的外围器件件有:LCD:电子钟显示示屏幕;按键:电子钟钟设置功能键键;Flash存储器:存储储软、硬件程程序;SRAM存储器:程序序运行时将其其导入SRAM。根据所要用到到的外设、要要实现的功能能以及开发板板的配置,在在SOPCBuilder中建立系统要要添加的模块块包括:NiosIICPU、定时器、按按键PIO、LCD控制器、AVALON三态桥、外部部RAM接口、外部Flash接口。使用的开发环环境如下:WinXP操作系统NiosII6.0嵌入式处理器器QuartusII6.0基于CycloneII的SOPC开发板SOPC硬件件开发实例创建工程进行完需求分分析之后,进进行硬件系统统的创建。首先必须建立立一个QuartusII的工程,步骤如下:1.开始->程序->AlteraQuartusII6.1QuartusII6.1(32bit),启动QuartusII软件;SOPC硬件件开发实例2.选择File菜单NewProjectWizard,出现Introduction页面,该页面面介绍所要完完成的具体任任务,点击next。SOPC硬件件开发实例3.进行项目名称称的设定、工工作目录的选选择。指定工工程存放的目目录,工程名名和顶层实体体名,工程名名和顶层实体体名要求相同同,工程目录录可以随意设设置,但必须须是英文的目目录,工程名名和顶层实体体名也要求是是英文名字,,我们的工程程名和顶层实实体名为clock,选择Next。SOPC硬件件开发实例4.可以为工工程添加先期期已经输入的的设计文件,,指定用户自自定义的元件件库的路径,,这里我们没没有事先输入入好的文件,,也没有自定定义的元件库库,点击Next进入下下一步。SOPC硬件件开发实例5.用户指定目标标器件,根据据开发板的所所使用的器件件来选择,实实际开发中,,通过查看核核心板的参考考手册来获取取所使用的器器件具体型号号,可以使用用窗口右边的的Filters来加快器件的的选择,选择择完毕点击Next。SOPC硬件件开发实例6.指定在在QuartusII之外的用用于,设计输输入、综合、、仿真、时序序分析的第三三方EDA工工具,QuartusII对第三三方工具的支支持比较完善善。这里我们们不做选择,,直接点击Next。SOPC硬件件开发实例所见新工程的的信息,确认认所创建工程程的主要信息息,点击Finish完完成工程的建建立,在开发发的过程中,,还可以通过过菜单assignmentSettings来对这些些配置进行修修改。点击击Finish按钮,QuartusII自自动会打开这这个工程,可可以看到顶层层实体名出现现在工程导航航窗口中。SOPC硬件件开发实例创建NiosII系系统模块创建完成工程程之后,需要要创建顶层实实体。创建完完顶层设计文文件之后,使使用SOPCBuilder创建NIOSII嵌入式处理器器,添加、配配置系统的外外设IP,组成NiosII系统模块。NiosII系统模块设计计完成之后要要加入到该顶顶层实体中,,然后进行其其他片上逻辑辑的开发。一、创建顶层层实体(1)新建的工程程窗口中,选选择FileNew;(2)在DeviceDesignFile页中,,选择择BlockDiagram/SchematicFile,即原原理图图文件件,也也可以以选择择硬件件描述述语言言的文文件形形式。。单击击OK。(3)出现现一个个模块块编辑辑窗口口。创建NiosII系系统模模块创建NiosII系系统模模块(4)选选择FileSaveAs,出现现SaveAs对话框框,显显示的的目录录为之之前设设置的的工程程目录录,文文件名名为之之前设设置的的顶层层实体体名((由于于这是是工程程的第第一个个文件件,系系统会会默认认为顶顶层设设计实实体的的名字字)。。确定定AddtoCurrentProject选项被被选中中,点点击Save文件被被保存存并被被加入入到工工程中中。创建NiosII系系统模模块二、创创建NiosII系统模模块创建NIOSII系统模模块需需要使使用SOPCBuilder,它是是QuartusII中的一一个工工具,,使用用SOPCBuilder可以创创建一一个NiosII系统模模块,,或者者创建建多主主设备备SOPC模块。。一个个完整整NiosII的系统统模块块包括括NiosII处理器器和相相关的的系统统外设设。所所以创创建系系统模模块的的流程程是先先创建建一个个系统统,然然后添添加NiosIICPU和外设设IP,然后后进行行相应应的设设置,,最后后生成成实例例,然然后将将其加加入到到工程程的顶顶层实实体中中去。。创建NiosII系系统模模块(一))、创创建系系统启动SOPCBuilder,选择择ToolsSOPCBuilder,出现现下图图所示示的CreateNewSystem对话框框。键键入系系统的的名字字,选选择硬硬件描描述语语言Verilog或者是是VHDL。单击OK按钮后后,出出现SOPCBuider系统模模块设设计窗窗口。。创建NiosII系系统模模块用户需需要设设置系系统的的时钟钟频率率,该该频率率用于于计算算硬件件和软软件开开发中中的定定时,,比如如时钟钟分频频或波波特率率。这这里我我们设设成85MHz,还可可以选选择是是否选选用流流水线线。(二))、、设置置系统统主频频和指指定目目标FPGA在Target栏中的的Board部分指指定我我们这这本书书使用用的核核心开开发板板——CycloneII(EP2C35)。也也可以以在Board部分选选择Unspecified,然后后在DeviceFamily选择CycloneII。创建NiosII系系统模模块(三))、加加入NiosIICPU和IP模块首先加加入NiosII软核,,NiosII是软核核CPU,共有有三种种类型型的CPU可供选选择::NiosII/e(经济型型)、NiosII/s(标准准型))和NiosII/f(快速速型))。用用户可可以根根据实实际的的情况况进行行选择择。NiosII是一个个用户户可以以自行行进行行定制制的CPU,用户可可以增加加新的外外设、新新的指令令等。添加NiosIICPU的步骤如如下:1.在上图““SOPCBuider系统模块块设计窗窗口”AvalonComponents下面选择择NiosIIProcessor;2.点击Add,出现NiosIICPU的配置向向导,共共有三种种类型的的CPU可供选择择;创建NiosII系系统模模块根据需要要选择相相应的一一种NiosII核,我们们选择标标准型的的NiosII核,HardwareMultiply选择none,不选择择HardwareDivide点击Next,进入Caches&TightlyCoupledMemories设置窗口口;创建NiosII系系统模模块设置NiosII的Cache和与CPU直接相连连的存储储器端口口(不通通过Avalon总线),,选择InstructionCache为4Kbytes,不选中中Includetightlycoupledinstructionmasterport(s),点击Next进入AdvancedFeatures设置页面面。创建NiosII系系统模模块AdvancedFeatures的设置页页面是QuartusII6.1版本才有有的设置置,这里里不选择择Includecpu_resetrequestandcpu_resettakensignals点击Next进入JTAGDebugModule设置。创建NiosII系系统模模块共有4个调试级级别可供供选择,,这里选选择Level1即可,该该级别支支持软件件的断点点调试。。JTAG调试模块块要占用用较多的的逻辑资资源,如如果整个个系统调调试完毕毕了可以以选用NoDebugger以减少系系统占用用资源点点击Next进入自定定义指令令的设置置。因为本例例不用到到任何的的自定义义指令,,这里不不作任何何的设置置,点击击Finish完成CPU模块的添添加。创建NiosII系系统模模块创建NiosII系系统模模块除了NiosIICPU,电子钟钟设计需需要添加加的IP模块包括括:TimerButtonPIOLCD控制器ExternalRAMBusExternalFlashBusExternalRAMinterfaceExternalFlashInterface创建NiosII系系统模模块1.添添加定时时器定时器和和NiosIICPU一一样,用用户可以以对其进进行定定制。添添加定时时器的步步骤如下下:(1)在在Avaloncomponents下下的other库中选选择IntervalTimer并单单击Add,Avalon_Timer-timer_0的向向导窗口口出现;;(2)配配置定时时器,点点击Finish,完完成定时时器的添添加。(3)可可以对Timer进行行重命名名,我们们这里取取缺省的的名字。。创建NiosII系系统模模块2.添加ButtonPIO(1)在Avaloncomponents下的other下选择PIO,单击Add,出现AvalonPIO-PIO_0的向导;;(2)在BasicSettings页中,设设置width=4bits,direction为InputPortsOnly;创建NiosII系系统模模块(3)在InputOptions页中,在在EdgeCaptureRegister下选中SynchronouslyCapture,然后选选择EitherEdge;(4)在Interrupt下选中GenerateIRQ,然后选选择Edge;(5)点击Finish,返回到到AlteraSOPCBuilderNIOS2的窗口;;(6)右键单单击ModuleName下的pio_0,从菜单单选择rename,重命名名为button_pio.创建NiosII系系统模模块3.添加LCD控制器(1)在“SOPCBuider系统模块块设计窗窗口”的左侧的的Avaloncomponents下的display库中选择择CharacterLCD(162,Optrex16027),单击Add;(2)ModuleName下出现,,lcd_16027_0;(3)将其重重命名lcd_display。4.添加外部部RAM接口(1)Avaloncomponents下的Memory下面选择择CypressCY7C1380CSSRAM,单击Add,出现SSRAM(CypressCY7C1380C)-ext_ssram的向导;;(2)在TimingParameters下面设置置ReadLatency为2clocks,在SSRAM下面设置置MemorySize为2Mbytes(3)单击Finish,返回到到AlteraSOPCBuilderNIOS2的窗口;;(4)右键单单击ModuleName下的ssram_0,从菜单单选择rename,重命名名为ext-ssram。5.添添加外部部闪存接接口(1)在在Avaloncomponents下下的Memory下面面选择FlashMemory((CommonFlashInterface),,单击Add,,出现外外部闪存存接口向向导;(2)在在Attributes页中中,可以以在Presets列列表中选选择相应应的闪存存的接口口,这些些闪存的的接口都都是经过过测试的的,如果果列表中中没有,,用户可可以自己己定义闪闪存的Size和DataWidth;;创建NiosII系系统模模块(3)在在timing页中,,可以设设置闪存存的读写写时序要要求,可可以设置置Setup,Waite,hold时间等等参数,,通常保保留缺省省的设置置;(4)如如应用选选择的闪闪存接口口不在列列表中,,需要自自己定义义Size和DataWidth,和时时序要求求;(5)点点击Finish,返返回到AlteraSOPCBuilderNIOS2的窗口口,ModuleName出现cfi_flash_0,对对其重命命名为ext_flash。。创建NiosII系系统模模块6.添添加外部部RAM总线和和外部flash总线线(Avalon三态态总线桥桥)为了使NiosII系统统能与开开发板上上的外部部存储器器通信,,必须在在Avalon总线和和外部存存储器之之间加入入Avalon三态桥桥。步骤如下下:(1)在在Bridge下,,选择AvalonTri-StateBridge,点点击Add,出出现AvalonTri-StateBridge–tri_state_bridge_0向导;;(2)Registered选项项默认为为选中;;(3)单单击Finish,返返回到AlteraSOPCBuilderNIOS2的窗口口;(4)将其重命命名为ext_ssram_bus;(5)重复前三三个步骤骤,在添添加一个个Avalon三态总线线桥,并并重命名名为ext_flash_bus.7.添加加JTAGUART(1)在在Avaloncomponents下下的Communication下下选择JTAGUART,点击击ADD,出现现添加向向导。(2)按按照缺省省设置,,点击Finish。。(3)将将其重重命名为为JTAG_UART.8.NiosII系统的的连接主要是外外部RAM接口口要和RAM的的三态桥桥连接,,外部的的Flash接接口要和和flash的的三态桥桥连接。。所有添添加的IP连接接都是系系统自动动完成的的,除了了上面提提到的三三态桥和和外部存存储器的的接口的的连接之之外,其其它的连连接用户户不用修修改,但但对于三三态桥和和外部存存储器接接口的连连接,系系统的自自动连接接可能和和用户的的开发板板不匹配配,用户户需要进进行手动动的更改改。针对对我们所所用的开开发板的的情况进进行的设设置,因因为本书书用到的的开发板板外部的的SRAM和外外部的Flash没有有使用共共用的数数据线和和地址线线,所以以必须为为它们分分别添加加一个三三态桥。。创建NiosII系系统模块创建NiosII系系统模块三、分配IP模块的地址和和中断号在以上添加IP的过程中,SOPCBuilder为各个IP模块分配了一一个默认的基基地址,用户户可以改变这这些默认的分分配。如果用用户自己分配配的地址出现现冲突,SOPCBuilder会给出警告,,用户可以按按照下面的步步骤来进行分分配和解决地地址冲突问题题。创建NiosII系系统模块下面我们给出出一种自定义义的地址分配配实例,将闪闪存的基地址址设定为0x00000000,步骤如下::(1)单击Flash外设设的的Base栏,,将将地地址址改改为为0x0,然然后后回回车车,,这这时时SOPCBuilder的消消息息框框中中出出现现错错误误的的提提示示信信息息,,这这是是因因为为闪闪存存的的地地址址和和其其它它的的外外设设地地址址发发生生了了冲冲突突。。(2)选选择择Module菜单单中中的的LockBaseAddress操作作,,一一个个挂挂锁锁的的图图标标出出现现在在闪闪存存基基地地址址的的旁旁边边。。(3)选选择择System菜单单中中的的AutoAssignBaseAddress操作作,,来来解解决决外外设设的的地地址址分分配配冲冲突突问问题题,,SOPCBuilder调整整其其它它外外设设的的地地址址来来避避开开与与闪闪存存地地址址的的冲冲突突,,错错误误提提示示的的消消息息就就会会消消失失了了。。(4)用用户户可可以以手手动动修修改改各各个个外外设设的的中中断断号号,,中中断断号号越越低低,,中中断断优优先先级级越越高高,,用用户户也也可可以以采采用用自自动动分分配配中中断断号号,,选选择择System菜单单中中的的AutoAssignIRQs,但但SOPCBuilder不处处理理软软件件操操作作,,采采用用自自动动分分配配中中断断的的策策略略不不一一定定是是最最优优的的,,用用户户最最好好是是根根据据自自己己的的应应用用来来确确定定外外设设的的中中断断优优先先级级,,采采用用手手动动的的分分配配。。创建建NiosII系系统统模模块块四、、配配置置NIOSII系统统系统统的的IP模块块添添加加完完成成之之后后,,还还需需要要对对系系统统进进行行配配置置。。点点击击NiosIIMore““cpu_0””Settings页,,用用户户可可以以进进行行如如下下的的设设置置::ResetAddress:可可以以选选择择存存放放BootLoader的存存储储器器和和设设置置BootLoader在存存储储器器中中的的偏偏移移,,我我们们这这里里选选择择ext_flash,偏偏移移选选择择默默认认;;ExceptionAddress:可可以以选选择择存存放放异异常常向向量量表表的的存存放放的的存存储储器器和和设设置置异异常常向向量量表表在在存存储储器器中中的的偏偏移移,我们们选选择择ext_ssram,偏偏移移选选择择默默认认;;BreakLocation:如果果NIOSII包含有有一个个JTAGDebug模块,,SOPCBuilder会显示示这项项内容容。其其MemoryModule总是JTAGDebugModule,Offset固定为为0x20,地址由由JTAGdebugmodule基地址址决定定。用用户不不能修修改BreakLocation的各个个域的的内容容。五、生生成NIOSII并加入入到工工程中中NIOSII系统是是工程程的一一部分分,我我们首首先是是生成成它,,然后后加入入到工工程中中去,,然后后将整整个工工程下下载到到FPGA芯片中中去。。单击击SystemGeneration,在Option下进行行如下下的设设置::创建NiosII系系统模模块选中Simulation,如果果安装装了ModelSim软件,,会生生成用用于仿仿真的的相应应的文文件。。单击exit退出SOPCBuilder。单击Generate,SOPCBuilder会提示示生成成系统统的进进程,,系统统生成成完成成时会会提示示”SUCCESS:SYSTEMGENERATIONCOMPLETED””。选中HDL,会生生成系系统模模块的的硬件件语言言文件件。系统生生成完完成之之后,,SOPCBuilder为这个个定制制的NIOSII系统模模块创创建了了一个个符号号,要要把NiosII系统加加入到到工程程中去去,遵遵循如如下的的步骤骤:(1)在QuartusII软件中中,打打开顶顶层实实体((BDF格式)),在在BDF窗口中中任意意处双双击,,出现现Symbol对话框框;(2)在Symbol对话框框中单单击Project来展开开工程程目录录,其其下出出现NIOS2(本例例采用用的系系统名名),,选中中它,,右侧侧出现现了系系统的的符号号表示示;(3)单击击OK,Symbol对话框框关闭闭,NIOS2的符号号轮廓廓被附附着在在鼠标标的指指针上上。(4)BDF窗口中中任意意空白白处单单击一一下,,NIOS2的符号号出现现在BDF窗口中中,这这样我我们创创建的的系统统已经经被加加入到到工程程中了了。创建NiosII系系统模模块创建NiosII系系统模模块六、引引脚和和嵌入入式锁锁相环环除了NIOSII系统之之外,,可能能还要要有其其它的的硬件件逻辑辑,我我们这这里加加入一一个嵌嵌入式式锁相相环,,嵌入入式锁锁相环环有两两个时时钟输输出,,一个个输出出SSRAM提供时时钟,,另一一个时时钟的的输出出为NIOSIICPU提供时时钟,,然后后添加加输入入、输输出、、双向向引脚脚,以以实现现和FPGA外部的的外设设进行行通信信。加入嵌嵌入式式锁相相环的的步骤骤如下下:创建NiosII系系统模模块(1)点击ToolsMegaWizardPlug-InManager,出现现MegaWizardPlug-InManager向导Page1窗口,点击next创建NiosII系系统模模块(2)在MegaWizardPlug-InManagerPage2窗窗口中中的IO下下面选选择ALTPLL,,器件件选择择CycloneII,输输出文文件类类型选选择VHDL,,文件件名为为ssram_pll,,选中中Returntothispageforanothercreateoperation,然然后点点击Next,,出现现MegaWizardPlug-InManager-ALTPLL[Page3of10];创建NiosII系系统模模块(3)在窗口口中,,做如图图选择,,点击击next,进入page4(4)在page4中不作作任何何配置置,直直接点点击next;创建NiosII系系统模模块(5)点击next创建NiosII系系统模模块(6)在Page6窗窗口中中,设设置c0输输出时时钟,,首先先选中中Usethisclock选项项,设设置时时钟频频率为为85MHz,,占空空比为为50%。。点击击Next会进进入c1输输出时时钟的的设置置;创建NiosII系系统模模块(7)嵌入式式PLL可可提供供3个个输出出时钟钟,我我们使使用其其中的的两个个,Page7窗窗口口中,,在c1时时钟的的设置置页面面上,,选中中Usethisclock选项项,设设置时时钟频频率为为85MHz,,点击击Next;创建NiosII系系统模模块创建NiosII系系统模模块(8)在MegaWizardPlug-InManager-ALTPLL[Page8of10]窗口中中,不不选中中Usethisclock选项,,即我我们不不使用用c2时钟,,点击击Next;(9)在MegaWizardPlug-InManager-ALTPLL[Page9of10]窗口中中,给给出了了用于于仿真真必须须要产产生的的文件件,点点击Next;(10)在MegaWizardPlug-InManager-ALTPLL[Page10of10]窗口中中,给给出了了用户户选择择要产产生的的文件件,不不做改改变,,采用用默认认配置置,点点击Finish完成PLL的生成成。在顶层层实体体的bdf窗口中中双击击鼠标标,出出现Symbol添加窗窗口,,在project下面选选择刚刚才建建立的的ssram_pll,点击击OK。ssram_pll的轮廓廓会附附着在在鼠标标上,,点击击bdf窗口的的空白白处,,将嵌嵌入式式锁相相环加加入到到了工工程中中。引脚添添加的的步骤骤如下下:(1)在顶顶层实实体的的bdf窗口的的空白白处双双击鼠鼠标,,出现现Symbol添加窗窗口(2)在altera/quartus/libraries下面选选择primitives,再在在其下下选择择pin,在其其中有有三种种类型型的引引脚,,有bidir,input,output,

温馨提示

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

评论

0/150

提交评论