FPGA建立HPS硬件系统模型_第1页
FPGA建立HPS硬件系统模型_第2页
FPGA建立HPS硬件系统模型_第3页
FPGA建立HPS硬件系统模型_第4页
FPGA建立HPS硬件系统模型_第5页
已阅读5页,还剩74页未读 继续免费阅读

下载本文档

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

文档简介

.2.1建立HPS硬件系统模型本硬件模型中包括: ARMCortex-A9MPCoreHPS、 用户按键输入(PIOButton)、 用户拨码开关输入(PIODIPSW)、 LED输出(PIOLED)、 64KB片上存储器、 JTAG-to-Avalon主接口连接桥(JTAGMaster)、 JTAG-UART调试模块、 中断捕获器(InterruptCapturer)、 系统ID(SysID)等。图6.12本系统的结构框图启动QuartusⅡ13.0EDA软件,选择菜单FileNewProjectWizard,建立一个新的QuartusⅡ工程(这里命名为HPS_Qsys_Prj),并在建立工程向导的第3个界面选择SoCFPGA器件,这里选择CyeloneV系列SCSXFC6D6F31CSES芯片(实际选5CSEMA5F31C6芯片),如图6.13所示。最后点击Finish按钮完成QuartusⅡ工程的建立。在QuartusⅡ主界面中选择菜单ToolsQsys命令,或者直接点击如图6.14所示的QuartusⅡ主界面上的快捷按钮,启动Qsys工具。添加并设置HPS(HardProeessorsystem)参数首先添加HPS处理器模块,如图6.15所示。在Qsys左边的ComponentLibrary下面选择展开Embeddedproeessors,选中其中的HardproeessorSystem并双击鼠标左键,或点击“Add”按钮,在弹出如图所示的AddModule对话框后,即可弹出如图6.16所示的HardProcessorSystem属性设置对话框。该对话框包括FPGAInterfaees、PeripheralPinMultiplexing、HPSClocks和SDRAM四个标签页面;在该对话框中我们需要根据开发板(或用户自己的板卡)上连接的HPS外设正确设置相应的引脚复用开关,以及HPS时钟、多端口存储器控制器、HPS到FPGA、FPGA到HPS和FPGA到多端口存储器控制器等各种参数。FPGAInterfaees标签页设置在FPGAInterfaces标签页中有General、AXIBridges、FPGA-to-HPSSDRAMInterface、Resets、DMAPeripheralRequest、Interrupts、HPS-to-FPGA几个部分。FPGA-to-HPSSDRAMInterface、Resets、DMAPeripheralRequest和Interrupts几个部分。HPS-to-FPGAGeneral部分。表6.11所示为FPGAInterfaceS标签中General部分的设置项功能描述(解释p199表6.11),当这些选项被选中时,相应的接口名在图6.16左边的HPS模块中就可显示出来。没有选中选项时的情况如下图所示:General部分的选项被选中时,相应的接口名在下图左边的HPS模块中就可显示出来。本项目实例系统中除使能EnableHLGPIInterface选项外,其他选项保持无效,设置结果如图6.16或下图所示。勾选Showsignals后的情况如下图所示:②AXIBridge部分。在FPGAInterface标签中AXlBridge部分,FPGA-to-HPSinterfacewidth和HPS-to-FPGAinterfacewidth可设置为Unused、32-bit、64-bit和128-bit,这里将这两项都设置为64-bit,将HPS与FPGA之间的HPS2FPGA(接口名为f2h_axi_slave)和FPGA2HPS(接口名为h2f_axi_master)接口都设置为64位。然后将LightweightHPS-to-FPGAinterfacewidth设置为32-bit,即使能了32位的轻量级LHPS2FPGA接口(接口名为h2f_lw_axi_master)。设置结果如图6.16所示。③FPGA-to-HPSSDRAMInterface部分。本实例系统中的FPGA-to-HPSSDRAMInterface部分内容设置为空。可以通过添加一个或多个SDRAM从端口(最多6个)让FPGA来访问HPSSDRAM子系统,其数据宽度可配置为32、64、128或256位。例如,图6.16下方的FPGA-to-HPSSDRAMInterface部分,其中的Name列表示接口名,系统根据FPGA-to-HPSSDRAM端口设置情况自动分配。表6.12所示为每个SDRAM接口可以设置的参数(解释p200表6.12)。点+号添加;点-号删除本实例系统中的FPGA-to-HPSSDRAMInterface部分内容设置为空。结果如下图所示。④ResetS部分。表6.13所示为Resets部分可设置的选项及其说明(解释p200表6.13)。本实例系统中的Resets部分所有设置选项均设置为无效,如图6.17或下图所示。⑤DMAPeripheralRequest部分。在这里可以单独使能每个DMA控制器外设请求ID(peripheralRequestID),每个请求ID可以使能连接FPGA的8个逻辑DMA通道中对应的通道接口。需要注意的是,外设请求ID[4-7]是与CAN控制器共用的。一共有8个通道:本实例系统中的DMAPeripheralRequest部分所有外设请求ID使能设置均为No,如图6.17或下图所示。⑥Interrupts部分。在该部分首先选中EnableFPGA-to-HPSInterrupts选项,如图6.17所示,即可在图6.17左侧的BlockDiagram中出现f2h_irq0和f2h_irq1两个信号,表示使能了HPS中FPGA对MPU的中断信号。如下图所示。又勾选3个选项后的情况如下图所示。HPS中的每个外设都可以提供一个中断信号给FPGA逻辑。在本实例系统中,将HPS-to-FPGA下面所列的所有外设中断信号均设置为无效,如图6.17或下图所示。PeripheralPinMultiplexing标签页设置在这个标签页中包含了HPS所有可用外设的参数设置,通过选择HPSI/O引脚设置可用使能所对应的外设。第1图第2图第3图第4图第5图当使能某个外设时,还需要设置其相应的工作模式。将鼠标箭头放到相应的外设模式(mode)设置选项位置几秒时间,即可出现一个下拉列表,该下拉列表给出了相应外设工作模式下的引脚定义,如图6.18或下图所示。、该标签页中的外设引脚复用设置应该与所用SoCFPGA开发板(或自己的系统板)上的实际外设连接匹配。在本实例系统中,PeripheralPinMultiPleXing标签页的外设引脚复用及模式选择如表6.14(稍加解释)所示。没有在表6.14中列出的外设引脚复用选择Unused,模式选择N/A。在PeripheralPinMultiplexing标签页最下方,Conflicts表中列出了HPS外设的引脚分配情况(13.1版中无Conflicts表),其中包括没有分配给任何外设的引脚,可以将没有分配给HPS外设的引脚作为普通目的I/O(GPIO)使用,将表中GPIOEnabled设置为“Yes”即可(默认情况下该设置均为No),如图6.19所示。本实例系统将Conflicts表中还没有被分配的引脚RGMll0_TX_CLK使能为GPIO。如果外设引脚复用设置有冲突,则该表Usedby列将给出冲突的外设引脚。13.1版新增PeripheralsMuxTable(3)HPSClocks标签页设置在HPS属性设置窗口选择HPSClocks标签,如图6.20或下图所示,其中包括用户时钟(userClocks)、锁相环参考时钟(PLLReferenceClocks)和外设FPGA时钟(PeripheralFPGAClocks)三个部分。可以设置HPS对FPGA以及FPGA对HPS的时钟使能。表6.15所示为用户时钟(UserClocks)参数及其说明。这里设置的时钟频率是指所期望的最高频率。实际时钟频率可以通过MPU上的软件对寄存器的设置进行修改。这里所设置的时钟频率将出现在由Qsys产生的Synopsys设计约束文件(.sdc)中。HPSClocks标签中的PLLReferenceClocks部分的参数描述如表6.16所示。表6.15和表6.16中所列的相关时钟接口可参考HPS中的时钟管理器模块,如图6.21所示。由于在PeripheralPinMultiplexing标签页中没有HPS外设(如EMAC0、EMAC1、QSPI、SDIO、SPIM0、SPIM1、I2C0、I2C2以及I2C3)被设置为在FPGA中可以使用(即相应外设的引脚复用选择FPGA),因此PeripheralFPGAClocks部分的时钟都是无效的。在本实例系统中,将HPSClocks标签页下面所列的所有选项均设置为无效。(4)SDRAM标签页设置HPS支持DDR2、DDR3和LPDDR2协议的存储器接口,并且支持高达40位宽的ECC(错误纠正编码)。SDRAM标签页中还包括PHYSettings、MemoryParameters、MemoryTiming和BoardSettings设置页面,可根据实际所用的SDRAM存储器设置该标签页中的相应参数,如图6.22所示。本实例系统所用的开发板上连接到HPS的是两片Micron公司的1.35VDDR3LSDRAM器件(256Mbx16x2=1GB)。首先选择SDRAM标签中的SDRAMProtoeol为DDR3。PHYSettings页面设置。在SDRAM标签页中的PHYSettings页面,根据Micron存储器芯片的速率将Memoryclockfrequeney设置为400MHz。将AdvancedPHYSettings下而的SupplyVoltage设置为1.5VDDR3(也可以根据实际情况选择1.35vDDR3L),如图6.22所示。虽然Micron器件手册中给出的是1.35V的工作电压,但为了简化开发板L上的电源电路,可以将存储器的vdd和vddq连接到1.5V电源。②MemoryParameters页面设置。根据DDR3芯片手册中的参数来设置MemoryParameterS页面。在本实例开发板上所用的Mieron1.35VDDR3LSDRAM器件手册中,地址表给出器件的行地址(Rowaddress)、Bank地址和列地址(Columnaddress)。图6.23所示为Micron手册中的地址参数截图。本实例所用开发板上的Micron存储器参数是图6.23中的最后一列(256Meg*16)。MemoryParameters页面的设置如图6.24所示,根据Micron手册使能DM和DQS#选项。MemoryParameters页面下面的MemoryInitializationOptions相关参数也需要根据Micron手册上的参数进行设置。设置结果如图6.25所示。③MemoryTiming页面设置。可根据DDR3芯片手册中的相关参数来验证Memory页面中的时序参数,如图6.26所示。④BoardSettings页面设置。本实例系统中该页面下SetupandHoldDerating和IntersymbolInterference均选择UseAltera’sdefaultsettings,如图6.27所示。当然,也可以根据手册中的相关参数进行设置。在SDRAM的参数设置中,还需要根据实际使用的开发板(或自定制的硬件)参数设置BoardSkews,如图6.28所示。利用这些参数SDRAM可以校准I/O延时以及FIFO设置来补偿板级、FPGA部分或存储器件的时间飘移。以上有关HPS的属性都设置完成后,点击HardProcessorSystem对话框右下角的Finish按钮退出HPS设置对话框,如图6.28所示。在Qsys的systemcontents页,找到Export列hps_0元件的h2f_reset行中的Double-clocktoexport并用鼠标左键双击,则出现如图6.29所示的hps_0_h2f_reset,即总是使能HPS到FPGA的冷/热复位信号。另外,在clock列选择hps_0的h2f_axi_clock、f2h_axi_clock和h2f_lw_axi_clock连接到lck_0。添加并设置其他Qsys元件根据实例系统需要,QsyS中还需要添加片上RAM、JTAGMaster桥、系统ID、JTAGUART、LED输出、拨码输入、按键输入以及中断捕获等元件。添加片上RAM。在Qsys左边的ComponentLibrary下面选择展开MemoriesandMemoryControllers,选中其中的On-ChipMemory(RAMorROM)并双击鼠标左键(或点击Add按钮);即可弹出如图6.30或下图所示的On-ChipMemory(RAMorROM)属性设置对话框。片上RAM为HPSCortex-A9MPU访问低延迟、高速存储器提供代码或变量的存储。在On-ChipMemory(RAMorRoM)属性设置对话框中设Datawidth为64,设置Totalmemorysize为65536(即64K)字节,其他保持默认设置。点击窗口右下角的Finish按钮完成。连接clk、reset、s1,结果如下图所示。注意:0Errors,0Warnings添加JTAGMaster桥。在Qsys左边的ComponentLibrary下面选择展开BridgesMemory-Mapped,选中其中的JTAGtoAvalonMasterBridge并双击鼠标左键(或点击Add按钮);即可弹出如图6.31所示的JTAGtoAvalonMasterBridge属性设置对话框。JTAGtoAvalonMaster桥接收JTAG接口上的字节编码处理数据流,并在Avalon-MM接口发起Avalon-MM处理过程。JTAGtoAvalonMaster桥也可用于系统控制台(SystemConsole)和SignalTap的调试。直接点击窗口右下角的“Finish”按钮完成。连接clk、clk_reset、master,结果如下图所示。根据本实例系统要求(如图6.11中包括两个JTAGMaster),需要按照以上方法在Qsys中再添加一个JTAGtoAvalonMasterBridge元件。重复上面操作并连线,结果如下图所示。添加系统ID。在Qsys左边的ComponentLibrary下面选择展开peripheralsDebugandPerformance,选中其中的SystemIDPeripheral并双击鼠标左键(或点击Add按钮);即可弹出如图6.32所示的SystemIDperipheral属性设置对话框。SystemID可以验证软件与硬件处理器系统的一致性,不允许软件运行在不兼容的硬件配置系统上。在图6.32所示的SystemIDPeripheral属性设置对话框的32bitSystemID中输入十六进制的系统ID号,之后点击窗口右下角的Finish按钮完成。连接clk等,结果如下图所示。添加JTAGUART。在Qsys左边的ComponentLibrary下面选择InterfaceProtocolsSerial,选中其中的JTAGUART并双击鼠标左键(或点击Add按钮),即可弹出如图6.33所示的JTAGUART属性设置对话框。保持所有默认设置,直接点击窗口右下角的Finish按钮完成。连接clk等信号,结果如下图所示。出现地址重叠错。选System-〉AssignBaseAddresses结果如下图所示。(5)添加并行I/O(PIO)外设。①添加LED输出MicrocontrollerPeripherals,选中PIO并双击鼠标左键(或点击Add按钮),即可弹出如图6.34所示的PIO(ParallelI/O)属性设置对话框在Width(1-32bits)中填入4,并在Direction中选择Output,这样即表示在Qsys中添加4位输出接口。然后点击窗口右下角的Finish按钮完成。连接clk等信号,结果如下图所示。加拨码开关输入接口。在Qsys的ComponentLibrary中选择添加PIO(parallelI/O);弹出PIO(ParallelI/O)对话框,在width(1-32bits)中填入4,并在Direction中选择Input,如图6.35或下图所示。在Edgecaptureregister下面选中Synchronouslycapture,并在EdgeType右侧选择ANY;在Interrupt下面选中GenerateIRQ,并在IRQType后选择EDGE。然后点击窗口右下角的Finish按钮完成。连接clk等,结果如下图所示。出现地址重叠错。选System-〉AssignBaseAddresses,结果如下图所示。③添加按键输入接口。在Qsys的ComponentLibrary中选择添加PlO(ParallelI/O)并弹出PIO(ParallelI/O)对话框后,在Width(1-32bits)中填入4,并在Direction中选Input,如图6.36所示。在Edgecaptureregister下面选中Synchronouslycapture,并在EdgeType右侧选择FALLING;在Interrupt下面选中GenerateIRQ,并在IRQType后选择EDGE。然后点击窗口右下角的Finish按钮完成。连接clk等信号,选System-〉AssignBaseAddresses,消除地址重叠错。结果如下图所示。所有并行I/O(PIO)外设添加完成后,可以在Qsys的SystemContents中看到pio_0添加的LED输出接口)、pio_1(添加的拨码开关输入接口)和pio_2(添加的按键输入接口),如图6.37所示。(6)添加中断捕获模块。中断捕获模块是用Verilog写好的Avalon存储器映射(MemoryMapped)用户自定义的Qsys元件,该模块连接到FPGA外设的中断源,可以通过系统控制台(SystemConsole)查看每个FPGA外设的中断状态。Altera公司提供的黄金参考设计(GSRD)硬件模块(GoldenHardwareReferenceDesign,GHRD)中提供的中断捕获模块的源代码(intr_capturer.v)如下:回到QurtusII下,选File->New选VerilogHDLFile,然后点OK按钮。编辑intr_capturer.vp212-213另外方法:将已有的intr_capturer.v加入工程。根据intr_capturer.v在Qsys中创建新的元件在Qsys中选择菜单FileNewComponent命令;将弹出如图6.35所示ComponentEditor对话框。新的元件编辑器(ComponentEditor)对话框包括ComponentType、Files、Parameters、Signals和Interfaces五个标签页。首先在ComponentType标签页中,输入Name为Interrupt_Capturer,输入Displayname为Interrupt_Capturer,version默认为1.0,Group选择Others。可以在Deseription中输入描述该模块的说明性文字。在Files标签页界面,如图6.39所示,点击SynthesisFiles下面的+按钮添加intr_capturer.v文件。然后点击+后面的AnalyzeSynthesisFiles按钮对添加的intr_capturer.v文件进行分析综合。如果文件没有错误,则将弹出图6.40所示界面,否则根据错误修改添加的文件。点Close按钮。点CopyfromSynthesisFiles按钮。在Signals标签页需要设置所有信号名称所对应的接口(Interface)和信号类型(SignalType),如图6.41所示。分别在Interface和SignalType列中为所有信号按照表6.17选择正确的接口和信号类型。设置好后的Signals标签页如图6.42所示。在Interfaces标签页中,根据图6.42界面最下方的提示,分别设置好avalon_slave_0部分、interrupt_receiver部分的AssociatedReset选项,选择reset_sink,如图6.43所示,其他部分保持默认设置即可。如果在图6.43最下方的信息栏提示Info:Noerrorsorwamings.,即可点击Finish按钮退出元件编辑器,否则需要根据提示修改设置。退出自定义元件编辑器对话框后,可以在Qsys界面的ComponentLibrary中看到多了Other目录,其中包括自定义的元件Interrupt_Capturer,如图6.44所示。点Add按钮,添加该元件即弹出Interrupt_eapturer窗口;直接点击Finish按钮。连接clk等信号线,消除地址重叠。3)配置添加的Qsys系统元件(1)修改相关元件及外设名称。在Qsys中按照以上方法添加到SystemContents中的元件及外设的名称(Name列)是默认的,如中断捕获模块的名称为Interrupt_Capture_0。因此,需要根据实际情况对其重新命名。对Qsys界面SystemContents中的某个元件重新命名的方法是:在需要重新命名的元件名上点击鼠标右键,然后选择右键菜单中的Rename命令,即可输入新的元件名称,如图6.45所示。根据上面的重命名方法,按照表6.18对Qsys中添加的元件及外设重新命名,表6.18没有列出的元件保持默认名称,如clk_0、hps_0、onchip_memory2_0、Interrupt_Capturer_0右键选Rename将pio_1改为dipsw_pio、pio_2改为button_pio(2)设置外设的顶层I/O接口。在Qsys的SystemContents标签页面的Export列,将Led_pio、dipsw_pio和button_pio所对应的external_connection的顶层I/O导出并命名。方法是:在Export列相应位置双击鼠标左键,并分别输入fpga_led_pio、fpga_dipsw_pio和fpga_button_pio,如图6.46所示。3)连接Qsys外设接口。Qsys中所添加的每个元件及外设都包括一些接口信号,默认情况下这些信号相互之间是不连接的,需要根据实际系统要求进行连接。例如将led_pio的clk信号连接到clk_0的clk信号上,可以在led_io的clk信号上点击鼠标右键,在弹出的右键菜单中选择led_pio.clkConnections下一级菜单中的clk_o.clk命令,如图6.47所示。此时将发现该信号前面ConnectionS列中对应信号上的实心圆点即表示信号已经连接(也可以直接用鼠标左键点击Connections列中需要连接信号上的空心圆点进行信号连接)。按照以上方法,根据表6.19将相关的元件信号连接起来。连接后的信号情况如下:(4)设置Qsys中带中断元件的中断请求(IRQ)。本实例Qsys系统中,拨码开关Dipsw_pio、按键输入button_pio和JTAGUART均具有中断信号,这些中断信号需要连接到HPS以及中断捕获Interrupt_Capturer_0上,同时需要设置相应的中断等级。例如设置dipsw_pio的IRQ在dipsw_pio的s1上点击鼠标右键,并选择Connectionsdipsw_pio.irqhps_0.f2hirq0;下图为设置按键输入button_pio的中断信号:注意:13.1与教材13.0版略有不同!重复上面的步骤,再选择Connectionsdipsw_pio.irqInterrupt_Capturer_0.interrupt_receiver,如图6.48所示。设置好中断连接后,在Qsys的IRQ列分配IRQ等级,如图6.49所示,分配给dipsw_pio的IRQ等级为0。仿照上面的方法,根据表6.20完成相关元件的IRQ及其等级设置。分配给dipsw_pio的IRQ等级为0、分配给button_pio的IRQ等级为1、分配给jtag-uart的IRQ等级为2。4)配置Qsys的地址映射(AddressMap)Qsys中所添加的元件及外设都需要分配对应的基地址,可以自动分配(在Qsys中选择菜单SystemAssignBaseAddresses命令),也可以手动分配,本实例系统根据需要手动分配相应外设的基地址。在Qsys界面选择AddressMap标签页,该标签页给出了系统中所有基于存储器映射的从端口(slave)连接到存储器映射主端口(master)的地址范围,其中的空自部分表示主端口与从端口之间没有连接,如图6.50所示。自动分配的外设基地址手动分配相应外设的基地址(略)。参考:p222-223Qsys中外设基地址修改后,还可以将重要外设的基地址进行锁定。例如要锁定button_pio的基地址,在Qsys中返回到SystemContents标签页,在Base列,点击button_pio.sl基地址前面的“锁”图标即可在基地址锁定与解锁状态间切换。图6.51所示为锁定基地址后的结果。按照相同步骤,可以锁定led_pio的基地址。设计好的系统Qsys界面最下方的Messages窗口中所提示的所有错误都应该解决了,在Qsys界而下方状态栏显示“0Errors,0Wamings”,如图6.50或上图所示。如果在Messages中还有错误存在,则需要根据错误提示进行相应的修改,直到没有错误为止。5)产生Qsys系统注意:13.1的生成操作与教材中13.0版完全不同!实际操作以下面为准。在Qsys中,选Generate->Generate…,出现生成对话框。点Generate按钮,开始生成。。。生成成功:点击Close按钮,回到Qsys界面。Qsys将产生指定格式的硬件描述语言(HDL)文件(Verilog或VHDL)用于QuartusⅡ工程编译,同时产生一组与硬件系统定义相关的文件,包括定义了选定的HPS外设默认引脚分配的Tcl(ToolCommandLanguage)文件,定义了HPS与FPGA中多端口存储器控制器的Tcl文件,定义了系统所用IP和用于TimeQuest时序约束的QIP文件。这些文件可以在工程目录\soc_system\synthesis子目录中找到。3.完成QuartusⅡ工程的编译以上任务完成以后,Qsys将产生QuartusⅡ工程所需的硬件描述语言(HDL)文件及一组硬件系统信息文件,包括定义了HPS外设默认引脚分配的Tcl(ToolCommandLanguage)脚本文件,定义了HPS与FPGA中的多端口存储器控制器的Tcl文件以及QIP文件。QIP文件中包括系统所用IP和TimeQuest时序约束所需的SDC(SynthesisDesignConstraint)文件。所有Qsys产生的这些文件可以在工程目录\soc_system\synthesis中找到。1)在Quartusll工程中添加Qsys产生的系统模块在QuartusⅡ中选择菜单AssignmentsSettings命令,弹出如图6.54所示的Settings对话框。选择Category下面的Files,点击Filename右侧的“…”按钮,在弹出的SelectFile对话框中,将文件类型设置为AllFiles(*.*),并选择工程目录\\soc_system\synthesis子目录中的soc_system.qip文件(本例中是D:\altera_design\HPS_Qsys_Prj\HPS_Qsys_Prj\synthesis\HPS_Qsys_Prj.qip),最后点击“打开”按钮返回到Settings对话框。在Settings对话框中点击Add按钮,然后点击OK按钮返回到QuartusⅡ软件。在QuartusⅡ软件中新建一个原理图文件,在原理图空白处双击鼠标左键,弹出如图6.55所示的Symbol对话框。在Libraries中选择project下面的soc_system(本例为HPS_Qsys_Prj)符号,点击OK按钮返回,并将soc_system(本例为HPS_Qsys_Prj)符号添加到原理图中。下图是Qsys生成的系统如图6.56所示,在添加的soc_system(本例为HPS_Qsys_Prj)元件上点击鼠标右键,在弹出的右键菜单中选择GeneratePinsforSymbolPorts命令,为元件添加输入/输出端口,所有端口名称保存默认名称不变(也可以根据需要修改端口名)。本实例系统中将hps_0_h2f_reset的输出(命名为hps_fpga_reset_n)连接到系统的复位reset信号上,如图6.57所示。点击QuartusⅡ菜单FIIeSave(或SaveAs)命令保存原理图文件,文件名用默认的原理图文件名即可。2)分析综合工程文件并分配引脚在分配引脚之前应该先对工程文件进行分析综合(AnalysisandSynthesis),产生分配引脚所需的工程网表文件。在QuartusⅡ中选择菜单processingStartStartAnalysis&Synthesis命令,如图6.58所示,或直接点击图6.58中快捷工具栏所圈的快捷图标,完成分析综合后,如果没有错误即可进入工程文件的引脚分配;分析综合成功。进行引脚分配。由于系统中的HPS是在Qsys集成工具中例化得到的,因此,除了所使用的外部存储器引脚以外,其他的专用引脚不需要在QuartuII中进行分配,而是在HPS例化过程中由Qsys自动完成HPs的引脚分配,并把相关信息保存在XML格式的文件中提供给软件开发工具使用。但是HPS的外部存储器引脚需要在QuartusⅡl中进行引脚分配,该引脚分配信息同样保存在由Qsys产生的Tcl脚本文件中,只需要在Quartusll中执行该脚本文件即可。在QuartusⅡ中选择菜单ToolsTclScripts命令,在TCLScripts对话框中选择project\soc_system\synthesis\submodules子目录中的hps_sdram_p0_pin_assignments.tel文件;点击Run按钮执行该Tcl文件,如图6.59或上图所示。Run后的结果如下图。点OK按钮可以在QuartusⅡ中点击菜单ViewUtilitywindowsTclConsole命令,在TclConsole窗口中查看Tcl脚本文件的执行结果。最后根据开发板(或系统板)上LED、拨码开关以及按键的实际连接,选择菜单Assignmentspinplanner命令,在pinplanner窗口对LED输出、拨码开关输入及按键输入端口进行引脚分配。参考补课材料:学习使用DE1-SoC开发板.docx时钟引脚pio引脚分配:启动全编译:出错!将与hps的gpio有关引脚电平改为1.8V再进行全编译。全部100%通过。3-2)FPGA编程在QuartusⅡ中选择菜单Toolsprogrammer命令,弹出如图6.60所示的programmer对话框,点击左上角的HardwareSetup按钮,在弹出的硬件设置对话框中,选择CurrentlySelectedhardware中的CVSoCKit[USB-1],点击Close按钮返回到Programmer对话框。在Programmer对话框中点击左侧的AutoDetect按钮,如图6.61所示。在弹出的SelectDeviee窗口选择SCSXFC6D6ES芯片,点击OK按钮返回。在弹出如图6.62所示的确认对话框中点击Yes按

温馨提示

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

评论

0/150

提交评论