1计算机EDA设计教程北航计算机学院艾明晶2第7章NiosⅡ嵌入式处理器设计7.1NiosⅡ嵌入式处理器简介7.2NiosⅡ嵌入式处理器软、硬件开发流程7.3NiosⅡ嵌入式处理器系统的开发7.4NiosⅡ嵌入式处理器外围接口7.5HAL系统库7.6设计实例——电子钟37.1NiosⅡ嵌入式处理器简介一、第一代Nios嵌入式处理器二、第二代Nios嵌入式处理器三、可配置的软核嵌入式处理器的优势内容概要47.1NiosⅡ嵌入式处理器简介一、第一代Nios嵌入式处理器2000年,Altera发布了Nios处理器,这是第一款可用于可编程逻辑器件的可配置的软核处理器。基于RISC技术16位指令集16/32位数据通道5级流水线在一个时钟周期内完成一条指令的处理具有一种基于JTAG的OCI(片上仪器)芯核57.1NiosⅡ嵌入式处理器简介2003年,Altera发布了Nios3.0处理器,它有16位和32位两个版本,能在低成本的Cyclone和高性能的Stratrix芯片上实现。主要特性:更多的可配置寄存器极大的灵活性和可扩展性功能强大的开发工具(SOPCBuilder)第一代Nios处理器的缺点没有提供软件开发的集成环境,用户需要在NiosSDKShell中以命令行的形式执行软件的编译、运行、调试。程序的编辑、编译、运行都是分离的。不支持对项目的编译。67.1NiosⅡ嵌入式处理器简介二、第二代Nios嵌入式处理器2004年6月,Altera继在全球推出CycloneⅡ和StratrixⅡ器件系列后,又推出支持这些新款芯片的NiosⅡ嵌入式处理器。与第一代Nios相比,最大处理性能提高了3倍,CPU内核部分的面积最大可缩小1/2(32位Nios处理器占用1500个LE,NiosII最少只占用600个LE)。广泛应用于嵌入式系统的设计中。77.1NiosⅡ嵌入式处理器简介种类特性CPU结构32Bit指令集32Bit数据宽度线32个通用寄存器2GByte寻址空间片内调试基于边界扫描测试(JTAG)的调试逻辑,支持硬件断点、数据触发以及片外和片内的调试跟踪定制指令最多达到256个用户定义的CPU指令软件开发工具NiosⅡIDE(集成开发环境)基于GNU的编译器硬件辅助的调试模块表7-1NiosⅡ系列处理器的特性87.1NiosⅡ嵌入式处理器简介NiosII提供3种不同的内核,以满足系统对不同性能和成本的需求。最高性能的优化平衡性能和尺寸最小逻辑占用的优化表7-2NiosⅡ系列处理器的成员97.1NiosⅡ嵌入式处理器简介NiosⅡvsNiosNiosⅡPipelinedRISCArchitecture32-BitInstructionsFlatRegisterFile32-BitDataPath32PrioritizedInterruptsOptionalInstruction&DataCacheCustomInstructionsBranchPredictionNiosPipelinedRISCArchitecture16-BitInstructionsWindowedRegisterFile16-Bitor32-BitDataPath64PrioritizedInterruptsOptionalInstruction&DataCacheCustomInstructions107.1NiosⅡ嵌入式处理器简介NiosⅡ:Faster&Smaller(NiosⅡ/f)117.1NiosⅡ嵌入式处理器简介NiosⅡ:Faster&Smaller(NiosⅡ/s)127.1NiosⅡ嵌入式处理器简介NiosⅡ:Faster&Smaller(NiosⅡ/e)137.1NiosⅡ嵌入式处理器简介High-PerformanceInterconnect采用内部Avlon总线,连接主从构件,并进行主从构件间的通信。主外设从外设147.1NiosⅡ嵌入式处理器简介SomeImportantPeripheralsforNiosIISystemIDPeripheralUsedtoEnsureHardware/SoftwareVersionSynchronizationSimple2read-onlyregisterperipheralcontaininghardwareIDtags.•Register1containsrandomnumber•Register2containstimeanddatewhensystemwasgeneratedinSOPCBuilderCanbecheckedatruntimetoensurethatthesoftwaretobedownloadedmatchesthehardwareimageMemoryInterfacesEPCSSerialFlashControllerOn-Chip•RAM,ROMOff-Chip•SRAM•CFIFlash157.1NiosⅡ嵌入式处理器简介OtherImportantPeripheralsforNiosIILCDDisplayJTAGUARTSingleJTAGConnectionFor:DeviceConfigurationCodeDownloadDebugTargetSTDIO(printing)FlashProgrammingCompactFlashInterfaceMassStorageSupport•TrueIDEMode•CompactFlashModeSoftwareSupports•Low-LevelAPI•MicroC/OS-ⅡFileSystemSupport•µCLinuxFileSystem167.1NiosⅡ嵌入式处理器简介NewPeripheralsforNiosII5.0SSRAMControllerCypressCY7C1380CSyncSRAMcontroller•ProvidedtosupportSSRAMcomponentonCycloneIIdevkitboard•NotafullyconfigurablegeneralpurposecontrollerSupportforDDR/DDR2inSOPCBuilderGUIWithburstadapter•SequentialmastertointerleavedslaveenhancementSeparateREAD/Writeduplexslaves•Automaticallymatchesaddressofread/writeslaves•Arbitrationlogicconnectsread/writemasterstobothslavesSupportforPCIandBurstingDMAinSOPCBuilderGUIHigherbandwidthtransfersthroughPCI177.1NiosⅡ嵌入式处理器简介ExampleofaNiosⅡProcessorSystem处理器内核内部总线定时器外设接口187.1NiosⅡ嵌入式处理器简介NiosII:HardNumbers197.1NiosⅡ嵌入式处理器简介三、可配置的软核嵌入式处理器的优势1.合理的性能组合使用NiosⅡ嵌入式处理器和FPGA,用户可以实现在处理器、外设、存储器和I/O接口方面的合理组合。3种处理器内核60余种SOPCBuilder配备的IP核无限的DMA通道组合可配置的硬件及软件调试特性207.1NiosⅡ嵌入式处理器简介2.提升系统的性能NiosⅡ系统的性能可根据应用来裁减,与固定的处理器相比,在较低的时钟速率下具备更高的性能。多CPU内核:可选择最快的内核,或在一片FPGA内采用多个内核支持的FPGA系列:StratixⅡ,Stratix,StratixGX,Cyclone,CycloneⅡ,HardCopyStratix定制指令:把用户自定义的功能直接添加到NiosⅡ处理器的ALU中,加快专项任务的执行,以提高系统的性能硬件加速:专用的硬件加速器添加到FPGA中作为CPU的协处理器217.1NiosⅡ嵌入式处理器简介3.降低系统成本主要途径:更大规模的系统集成优化FPGA/CPU的选择:选择经济型内核应用于低成本、低性能系统,或者在单个FPGA上使用多个内核更好的库存管理4.延长产品的生命周期加快产品上市时间:FPGA可编程、可随时验证修改建立有竞争性的优势:硬件加速、定制指令、定制外设延长了产品的生存时间:可对硬件和软件及时进行升级在产品产量增加的情况下减少成本:可将FPGA设计无缝移植到Altera的HardCopy器件(一种结构化的ASIC)中227.2NiosⅡ嵌入式处理器软、硬件开发流程一、硬件开发流程二、软件开发流程内容概要237.2NiosⅡ嵌入式处理器软、硬件开发流程NiosⅡDesignFlowSOPCBuilderGUIConnectBlocksProcessorLibraryCustomInstructionsPeripheralLibrarySelect&ConfigurePeripherals,IPIPModulesConfigureProcessorGenerateEDIFNetlistHDLSourceFilesTestbenchSynthesis&FitterUserDesignOtherIPBlocksHardwareDevelopmentQuartusIIOn-ChipDebugSoftwareTraceHardBreakpointsSignalTapIIAlteraPLDJTAG,Serial,orEthernetExecutableCodeHardwareConfigurationFileVerification&Debug(1)(2)(3)(4)CHeaderfilesCustomLibraryPeripheralDriversCompiler,Linker,DebuggerSoftwareDevelopmentUserCodeLibrariesRTOSGNUToolsNiosIIIDE247.2NiosⅡ嵌入式处理器软、硬件开发流程一、硬件开发流程下载完硬件配置文件后,软件开发者就可以把此开发板作为软件开发的初期硬件平台进行软件功能的开发验证了。(1)定义NiosⅡ嵌入式处理器系统:使用SOPCBuilder系统综合软件选取合适的CPU、存储器以及外围器件,并定制其功能。(2)指定目标器件、分配引脚、编译硬件:使用QuartusⅡ选取Altera器件系列,并对SOPCBuilder生成的HDL设计文件进行布局布线;再选取目标器件,分配管脚,进行硬件编译选项或时序约束的设置。编译,生成网表文件和配置文件。(3)硬件下载:使用QuartusⅡ软件和下载电缆,将配置文件下载到开发板上的FPGA中。当校验完当前硬件设计后,还可再次将新的配置文件下载到开发板上的非易失存储器里。257.2NiosⅡ嵌入式处理器软、硬件开发流程二、软件开发流程(1)在使用SOPCBuilder进行硬件设计的同时,就可以开始编写独立于器件的C/C++软件,比如算法或控制程序。用户可以使用现成的软件库和开放的操作系统内核来加快开发过程。(2)在NiosⅡIDE中建立新的软件工程时,IDE会根据SOPCBuilder对系统的硬件配置自动生成一个定制HAL(硬件抽象层)系统库。这个库能为程序和底层硬件的通信提供接口驱动程序。(3)使用NiosⅡIDE对软件工程进行编译、调试。(4)将硬件设计下载到开发板后,就可以将软件下载到开发板上并在硬件上运行。267.3NiosⅡ嵌入式处理器系统的开发一、NiosⅡ集成开发环境(IDE)介绍二、NiosⅡ嵌入式处理器系统设计过程内容概要277.3NiosⅡ嵌入式处理器