EDA电子设计自动化教程

上传人:fg****fg 文档编号:248124073 上传时间:2024-10-22 格式:PPTX 页数:120 大小:3.08MB
返回 下载 相关 举报
EDA电子设计自动化教程_第1页
第1页 / 共120页
EDA电子设计自动化教程_第2页
第2页 / 共120页
EDA电子设计自动化教程_第3页
第3页 / 共120页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,*,*,计算机EDA设计教 程,北航计算机学院,艾明晶,1,共2学时,第7章 Nios 嵌入式处理器设计,7.1,Nios,嵌入式处理器简介,7.2 Nios,嵌入式处理器软、硬件开发流程,7.3,Nios,嵌入式处理器系统的开发,7.4,Nios,嵌入式处理器外围接口,7.5 HAL系统库,7.6 设计实例电子钟,2,7.1,Nios,嵌入式处理器简介,一、第一代Nios嵌入式处理器,二、第二代Nios嵌入式处理器,三、可配置的软核嵌入式处理器的优势,内容概要,3,7.1,Nios,嵌入式处理器简介,一、第一代Nios嵌入式处理器,2000,年,Altera发布了,Nios,处理器,这是第一款可用于可编程逻辑器件的可配置的软核处理器。,基于RISC技术,16位指令集,16/32位数据通道,5级流水线,在一个时钟周期内完成一条指令的处理,具有一种基于JTAG的OCI(片上仪器)芯核,4,7.1,Nios,嵌入式处理器简介,2003,年,Altera发布了,Nios3.0,处理器,它有16位和32位两个版本,能在低成本的Cyclone和高性能的Stratrix芯片上实现。,主要特性:,更多的可配置寄存器,极大的灵活性和可扩展性,功能强大的开发工具(SOPC Builder),第一代Nios处理器的,缺点,没有提供软件开发的集成环境,用户需要在Nios SDK Shell中以命令行的形式执行软件的编译、运行、调试。程序的编辑、编译、运行都是分离的。,不支持对项目的编译。,5,7.1,Nios,嵌入式处理器简介,二、第二代Nios嵌入式处理器,2004年月,,Altera继在全球推出Cyclone和Stratrix器件系列后,又推出支持这些新款芯片的,Nios,嵌入式处理器。,与第一代Nios相比,,最大处理性能提高了3倍,CPU内核部分的面积最大可缩小1/2,(32位Nios 处理器占用1500个LE, Nios II 最少只占用600个LE)。广泛应用于嵌入式系统的设计中。,6,7.1,Nios,嵌入式处理器简介,种类,特性,CPU结构,32Bit指令集,32Bit数据宽度线,32个通用寄存器,2G Byte寻址空间,片内调试,基于边界扫描测试(JTAG)的调试逻辑,支持硬件断点、数据触发以及片外和片内的调试跟踪,定制指令,最多达到256个用户定义的CPU指令,软件开发工具,NiosIDE(集成开发环境),基于GNU的编译器,硬件辅助的调试模块,表7-1Nios 系列处理器的特性,7,7.1,Nios,嵌入式处理器简介,Nios II,提供,3,种,不同的内核,以满足系统对不同性能和成本的需求。,最高性能的优化,平衡性能和尺寸,最小逻辑占用的优化,表7-2Nios 系列处理器的成员,8,7.1,Nios,嵌入式处理器简介,Nios vs Nios,Nios ,Pipelined RISC Architecture,32,-Bit Instructions,Flat Register File,32,-Bit Data Path,32,Prioritized Interrupts,Optional Instruction & Data Cache,Custom Instructions,Branch Prediction,Nios,Pipelined RISC Architecture,16,-Bit Instructions,Windowed Register File,16,-Bit or,32,-Bit Data Path,64,Prioritized Interrupts,Optional Instruction & Data Cache,Custom Instructions,9,7.1,Nios,嵌入式处理器简介,Nios : Faster & Smaller(Nios /f),10,7.1,Nios,嵌入式,处,处理器,简,简介,Nios : Faster& Smaller,(,(Nios,/s),11,7.1,Nios,嵌入式,处,处理器,简,简介,Nios : Faster& Smaller,(,(Nios,/e),12,7.1,Nios,嵌入式,处,处理器,简,简介,High-Performance Interconnect,采用内,部,部,Avlon,总线,,连,连接,主从构,件,件,并,进,进行主,从,从构件,间,间的通,信,信。,主外设,从外设,13,7.1,Nios,嵌入式,处,处理器,简,简介,Some ImportantPeripheralsforNiosII,SystemIDPeripheral,Used to EnsureHardware/SoftwareVersion Synchronization,Simple2read-onlyregisterperipheralcontaining hardware ID tags.,Register1 contains randomnumber,Register2 contains timeand datewhensystemwas generatedinSOPC Builder,Canbecheckedatruntime to ensurethat thesoftwaretobedownloaded matchesthe hardware image,MemoryInterfaces,EPCS SerialFlashController,On-Chip,RAM, ROM,Off-Chip,SRAM,CFIFlash,14,7.1,Nios,嵌入式,处,处理器,简,简介,OtherImportantPeripheralsfor NiosII,LCDDisplay,JTAG UART,SingleJTAGConnection For:,DeviceConfiguration,Code Download,Debug,TargetSTDIO(printing),FlashProgramming,Compact Flash Interface,Mass StorageSupport,True IDEMode,Compact Flash Mode,SoftwareSupports,Low-LevelAPI,MicroC/OS- FileSystemSupport,CLinux FileSystem,15,7.1,Nios,嵌入式,处,处理器,简,简介,NewPeripheralsfor NiosII5.0,SSRAMController,Cypress CY7C1380CSync SRAMcontroller,Providedtosupport SSRAM componentonCyclone II devkitboard,Notafullyconfigurablegeneralpurpose controller,Support forDDR/DDR2inSOPC BuilderGUI,With burst adapter,Sequential mastertointerleavedslaveenhancement,SeparateREAD/Write duplexslaves,Automatically matchesaddressofread/write slaves,Arbitrationlogicconnectsread/write masterstobothslaves,Support forPCIand Bursting DMAinSOPC BuilderGUI,Higherbandwidth transfersthrough PCI,16,7.1,Nios,嵌入式,处,处理器,简,简介,Example of aNios, ProcessorSystem,处理器,内,内核,内部总,线,线,定时器,外设接,口,口,17,7.1,Nios,嵌入式,处,处理器,简,简介,Nios II:Hard Numbers,18,7.1,Nios,嵌入式,处,处理器,简,简介,三、可,配,配置的,软,软核嵌,入,入式处,理,理器的,优,优势,1.,合,合理的,性,性能组,合,合,使用,Nios嵌入式,处,处理器,和,和FPGA,,用,用户可,以,以实现,在,在处理,器,器、外,设,设、存,储,储器和I/O,接,接口方,面,面的合,理,理组合,。,。,3种处,理,理器内,核,核,60余,种,种SOPCBuilder配备,的,的,IP,核,无限的DMA,通,通道组,合,合,可配置,的,的硬件,及,及软件,调,调试特,性,性,19,7.1,Nios,嵌入式,处,处理器,简,简介,2.,提,提升系,统,统的性,能,能,Nios系,统,统的性,能,能可根,据,据应用,来,来裁减,,,,与固,定,定的处,理,理器相,比,比,在,较,较低的,时,时钟速,率,率下具,备,备更高,的,的性能,。,。,多CPU内核,:可选,择,择最快,的,的内核,,,,或在,一,一片FPGA,内,内采用,多,多个内,核,核,支持的FPGA系列,:Stratix,,,,Stratix,StratixGX,Cyclone,Cyclone,,HardCopy Stratix,定制指,令,令,:把用,户,户自定,义,义的功,能,能直接,添,添加到Nios处,理,理器的ALU,中,中,加,快,快专项,任,任务的,执,执行,,以,以提高,系,系统的,性,性能,硬件加,速,速,:专用,的,的硬件,加,加速器,添,添加到FPGA中作,为,为CPU的协,处,处理器,20,7.1,Nios,嵌入式,处,处理器,简,简介,3.,降,降低系,统,统成本,主要途,径,径,:,更大规,模,模的系,统,统集成,优化,FPGA/CPU,的选择,:选择,经,经济型,内,内核应,用,用于低,成,成本、,低,低性能,系,系统,,或,或者在,单,单个FPGA,上,上使用,多,多个内,核,核,更好的,库,库存管,理,理,4. 延,长,长产品的,生,生命周期,加快产品,上,上市时间,:,:,FPGA,可,可编程、,可,可随时验,证,证修改,建立有竞,争,争性的优,势,势,:硬件加,速,速、定制,指,指令、定,制,制外设,延长了产,品,品的生存,时,时间,:可对硬,件,件和软件,及,及时进行,升,升级,在产品产,量,量增加的,情,情况下减,少,少成本,:可将FPGA设,计,计无缝移,植,植到Altera,的,的HardCopy器件(,一,一种结构,化,化的ASIC)中,21,7.2,Nios,嵌入式处,理,理器软、,硬,硬件开发,流,流程,一、硬件,开,开发流程,二、软件,开,开发流程,内容概要,22,7.2,Nios,嵌入式处,理,理器软、,硬,硬件开发,流,流程,Nios, Design Flow,SOPCBuilderGUI,Connect Blocks,Processor Library,Custom Instructions,Peripheral Library,Select & Configure Peripherals, IP,IP Modules,Configure Processor,Generate,EDIF Netlist,HDL Source Files,Testbench,Synthesis &Fitter,User Design,Other IP Blocks,Hardware Development,Quartus II,On-Chip,Debug,Software Trace,Hard Breakpoints,SignalTap II,Altera,PLD,JTAG,Serial, or,Ethernet,Executable,Code,Hardware,Configuration,File,Verification,& Debug,(1),(2),(3),(4),C Header files,Custom Library,Peripheral Drivers,Compiler,Linker, Debugger,Software Development,User Code,Libraries,RTOS,GNU Tools,Nios II IDE,23,7.2,Nios,嵌入式处,理,理器软、,硬,硬件开发,流,流程,一、硬件,开,开发流程,下载完硬,件,件配置文,件,件后,软,件,件开发者,就,就可以把,此,此开发板,作,作为软件,开,开发的初,期,期硬件平,台,台进行软,件,件功能的,开,开发验证,了,了。,(1)定义,Nios,嵌入式处,理,理器系统,:,:,使用SOPC Builder系统,综,综合软件,选,选取合适,的,的CPU,、,、存储器,以,以及外围,器,器件,并,定,定制其功,能,能。,(2),指定目标,器,器件、分,配,配引脚、,编,编译硬件,:使用Quartus,选取Altera,器,器件系列,,,,并对SOPCBuilder生,成,成的HDL设计文,件,件进行布,局,局布线;,再,再选取目,标,标器件,,分,分配管脚,,,,进行硬,件,件编译选,项,项或时序,约,约束的设,置,置。编译,,,,生成网,表,表文件和,配,配置文件,。,。,(3),硬件下载,:,:,使用Quartus,软件和下,载,载电缆,,将,将配置文,件,件下载到,开,开发板上,的,的FPGA中。当,校,校验完当,前,前硬件设,计,计后,还,可,可再次将,新,新的配置,文,文件下载,到,到开发板,上,上的非易,失,失存储器,里,里。,24,7.2,Nios,嵌入式处,理,理器软、,硬,硬件开发,流,流程,二、软件,开,开发流程,(1)在,使,使用SOPC Builder进行,硬,硬件设计,的,的同时,,就,就可以开,始,始编写独,立,立于器件,的,的C/C+软件,,,,比如算,法,法或控制,程,程序。用,户,户可以使,用,用现成的,软,软件库和,开,开放的操,作,作系统内,核,核来加快,开,开发过程,。,。,(2)在Nios,IDE,中,中建立新,的,的软件工,程,程时,IDE会根,据,据SOPC Builder对系统,的,的硬件配,置,置自动生,成,成一个定,制,制HAL(硬件抽,象,象层)系,统,统库。这,个,个库能为,程,程序和底,层,层硬件的,通,通信提供,接,接口驱动,程,程序。,(3)使,用,用NiosIDE对软件,工,工程进行,编,编译、调,试,试。,(4)将,硬,硬件设计,下,下载到开,发,发板后,,就,就可以将,软,软件下载,到,到开发板,上,上并在硬,件,件上运行,。,。,25,7.3,Nios,嵌入式处,理,理器系统,的,的开发,一、Nios,集成开发,环,环境(IDE)介,绍,绍,二、Nios ,嵌,嵌入式处,理,理器系统,设,设计过程,内容概要,26,7.3,Nios,嵌入式处,理,理器系统,的,的开发,Nios, IDE是Nios,系,系列嵌入,式,式处理器,的,的基本软,件,件开发工,具,具,包括,程,程序的编,辑,辑、编译,、,、调试和,下,下载运行,。,。,Nios, IDE使用,方,方法和Visual C+类似。,在,在7.6,节,节中会结,合,合示例进,行,行讲解。,Nios, IDE为软,件,件开发提,供,供了4个,功,功能:,工程管理,器,器;,编辑器和,编,编译器;,调试器;,闪存编程,器,器。,一、Nios集,成,成开发环,境,境(IDE)介绍,27,7.3,Nios,嵌入式处,理,理器系统,的,的开发,(1)新,工,工程向导,自动建立C/C+应用程,序,序工程和,系,系统库工,程,程。,(2)软,件,件工程模,板,板,提供软件,代,代码实例,,,,帮助用,户,户尽快推,出,出可运行,的,的系统,(3)软,件,件组件(,系,系统软件,),),Nios,运行,库,库(或称,为,为硬件抽,象,象层HAL);,轻量级IP TCP/IP,库,库;,C/OS 实,时,时操作系,统,统(RTOS);,Altera压缩,文,文件系统,。,。,1. 工,程,程管理器,28,7.3,Nios,嵌入式处,理,理器系统,的,的开发,(1)文,本,本编辑器,全功能源,文,文件编辑,器,器:,语法高亮,显,显示C/C+程,序,序代码;,全面的搜,索,索工具;,文件管理,;,;,快速定位,及,及自动纠,错,错;,内置调试,功,功能等,(2)C/C+编译器,提供图形,化,化用户界,面,面;,提供按钮,式,式流程;,自动生成,一,一个基于,特,特定用户,配,配置的makefile。,2. 编,辑,辑器和编,译,译器,29,7.3,Nios,嵌入式处,理,理器系统,的,的开发,(1)基,本,本调试功,能,能,运行控制,;,;,调用堆栈,查,查看;,软件断点,;,;,反汇编代,码,码查看;,调试信息,查,查看;,指令集仿,真,真器。,(2),高,高级调试,功,功能,硬件断点,调,调试ROM或闪存,中,中的代码,;,;,数据触发,;,;,指令跟踪,。,。,3. 调,试,试器,(3)调,试,试信息查,看,看,使用户可,以,以访问本,地,地变量、,寄,寄存器、,存,存储器、,断,断点以及,表,表达式赋,值,值函数。,(4),连,连接多种,目,目标,FPGA,开,开发板(,通,通过JTAG);,指令集仿,真,真器;,硬件逻辑,仿,仿真器。,30,7.3,Nios,嵌入式处,理,理器系统,的,的开发,4. 闪,存,存编程器,闪存可用,来,来存储FPGA配,置,置数据和/或Nios ,编,编程数据,。,。,Nios,IDE,闪,闪存编程,器,器可对连,接,接到FPGA的兼,容,容通用闪,存,存接口(CFI),的,的闪存器,件,件、或Altera串行配,置,置器件进,行,行编程。,内容类型,说 明,系统固定软件,用于Nios处理器复位时从闪存中导入启动程序,FPGA配置数据,使用配置控制器,FPGA能够在上电复位时从闪存获取配置数据,任意二进制数据,开发人员可以将任何二进制数据存储到闪存内,如图形、音频等,表7-3,编,编程到,闪,闪存中的,通,通用内容,类,类型,31,7.3,Nios,嵌入式处,理,理器系统,的,的开发,1. 硬,件,件设计过,程,程,(1)创,建,建一个Quqrtus ,工,工程,(2)创,建,建Nios 系,统,统模块,启动SOPC Builder,添加CPU和外围,器,器件,指定基地,址,址,系统设置,生成系统,模,模块,(3)将Nios,系统,模,模块符号,添,添加到BDF文件,中,中,(4)编,译,译Quqrtus,工程,(5)配,置,置FPGA,二、Nios ,嵌,嵌入式处,理,理器系统,设,设计过程,32,7.3,Nios,嵌入式处,理,理器系统,的,的开发,(1)启,动,动Nios IDE;,(2)建,立,立新的软,件,件工程,,编,编写源程,序,序;,(3)编,译,译工程;,(4)运,行,行程序;,(5)调,试,试程序;,(6)将,程,程序下载,到,到开发板,上,上的Flash中,。,。,2. 软,件,件设计过,程,程,33,7.4,Nios,处理器外,围,围接口,一、标准,外,外围设备,二、用户,定,定制外围,设,设备,内容概要,34,7.4,Nios,处理器外,围,围接口,一、标准,外,外围设备,Nios,包括,一,一个常用,外,外围设备,及,及接口库,,,,在AlteraFPGA中可免,费,费使用。,标准外围,设,设备为即用型,设,设计模块,,,,采用,VerilogHDL和VHDL,的,的源代码,方,方式交付,使,使用,其,中,中包括简,单,单系统集,成,成所需要,的,的所有软,件,件子程序,。,。,查看各接,口,口的详细,说,说明:可,在,在SOPC Builder的元件,池,池中用右,键,键点击元,件,件,在弹,出,出的菜单,中,中选择“DataSheet”选项。,35,7.4,Nios,处理器外,围,围接口,外围设备接口,说 明,CompactFlash接口,提供大容量存储支持,用户逻辑接口,将片内用户逻辑或片外器件连接到SOPC Builder生成的系统中,UART,提供通用串行接口,具有可变波特率、奇偶校验、停止和数据位及可选的流量控制信号,间隔时钟,提供32位时钟,可作为周期脉冲发生器或系统看门狗时钟,并行I/O接口,提供1位到32位的并行I/O接口(输入、输出、边缘采样),串行外围设备接口(SPI),实现工业标准串行外围设备接口,支持主设备或从设备协议,DMA控制器,与存储器进行批数据交换,减轻CPU的负担,SDRAM控制器,提供一个简单Avalon接口,与片外的SDRAM沟通,支持8、16、32和64位数据宽度,存储器接口,包括:片内ROM和RAM、SDRAM、SSRAM、SRAM和Flash,Altera的串行配置器件,以太网端口,包括:10/100兆比特每秒SMSC LAN91C111单芯片以太网控制器,提供轻量级的IP TCP/IP协议栈的软件支持,已经包含在Nios,开发套件中,JTAG UART,(仅在Nios,中有),通过内嵌在Altera FPGA内部的联合测试行动组(JTAG)电路,在PC主机和SOPC Builder系统之间进行串行字符流通信,表7-4,Nios&Nios,外围设备,接,接口,36,7.4,Nios,处理器外,围,围接口,二、用户,定,定制外围,设,设备,用户可以,创,创建自己,的,的外围设,备,备,并通,过,过用户逻,辑,辑接口向,导,导集成到Nios,处理器系,统,统中。,整个过程,用,用户介入,很,很少。,37,7.5,HAL系,统,统库,一、HAL系统库,简,简介,二、使用HAL开,发,发程序,内容概要,38,7.5,HAL系,统,统库,一、 HAL系统,库,库简介,什么是HAL系统,库,库?,用户在进,行,行嵌入式,系,系统的软,件,件开发时,,,,会涉及,到,到与硬件,的,的通信问,题,题。,HAL(HardwareAbstractionLayer,硬,件,件抽象层)系统库,可,可为与硬,件,件通信的,程,程序提供简单,的,的设备驱,动,动接口。它是用,户,户在NiosIDE中创,建,建一个新,的,的工程时,,,,由IDE基于用户,在,在SOPC Builder中创建,的,的Nios处理,器,器系统自动生成的。,HAL应,用,用程序接,口,口(API)和ANSIC标准库,综,综合在一,起,起,它使,用,用户用类,似,似C语言,的,的库函数,来,来访问硬,件,件设备或,文,文件,如printf(),、,、fopen(),、,、fwrite()等函数,。,。,39,7.5,HAL系,统,统库,HAL为,嵌,嵌入式系,统,统中的外,围,围设备提,供,供接口程,序,序。HAL和SOPC Builder紧密,相,相关,如,果,果硬件配,置,置有了变,化,化,HAL设备驱,动,动配置也,会,会自动随,之,之改动,,从,从而避免,了,了由于底,层,层硬件的,变,变化而产,生,生的程序,错,错误。,用户不必,自,自己创建,或,或拷贝HAL文件,,,,也不必,编,编辑HAL中的任,何,何源代码,。,。NiosIDE会为用,户,户自动创建,和,和管理HAL文,件,件。,40,7.5,HAL系,统,统库,与ANSI C合,成,成的标准,库,库提,供,供类似C,语,语言的标,准,准库函数,;,;,设备驱动,提供,访,访问系统,中,中每个设,备,备的驱动,程,程序;,HALAPI,提供标,准,准的接口,程,程序,如,设,设备访问,、,、中断处,理,理等;,系统初始化,在main()函,数,数之前执行,对,对处理器的,初,初始化;,设备初始化,在main()函,数,数之前执行,对,对系统中外,围,围设备的初,始,始化。,用户程序,C语言标准库,HAL API,硬件,设备驱动,设备驱动,设备驱动,图7-1HAL,所,所基于的系,统,统层次,1. HAL构成,41,7.5,HAL系统,库,库,应用程序开,发,发,是用户软件,开,开发的主要,部,部分,包括,系,系统的主程,序,序和其他子,程,程序。,应用程序与,系,系统设备的通信主要是通过C语言标准,库,库或HAL系统,库,库API来实现。,驱动程序开,发,发,指编写供应,用,用程序访问,设,设备的程序,。,。,驱动程序直,接,接和底层硬,件,件的宏定义,打,打交道。,一旦用户要,访,访问设备的,驱,驱动程序编,写,写好,用户,的,的程序开发,只,只要利用HAL提供的,各,各种函数就,可,可以编写各,种,种应用程序,了,了。,2.应用程序和,驱,驱动,42,7.5,HAL系统,库,库,HAL为嵌,入,入式系统中,常,常见的外围,设,设备提供了,通,通用的设备,模,模型,使用,户,户无需考虑,底,底层硬件,,只,只需利用与,之,之相一致的API编写,应,应用程序即,可,可。,字符模式设,备,备发送和,接,接受字符串,的,的外围硬件,设,设备,如UART,定时器设备对时钟,脉,脉冲计数并,能,能产生周期,性,性中断请求,的,的外围硬件,设,设备,文件子系统提供访,问,问存储在物,理,理设备中的,文,文件的操作,,,,如用户可,以,以利用有关Flash,存,存储器设备,的,的HALAPI编写Flash,文,文件子系统,驱,驱动来访问Flash,。,。,以太网设备对Altera提,供,供的轻量级,的,的IP协议,提,提供访问以,太,太网的连接,。,。,DMA设备执行大,量,量数据在数,据,据源和目的,地,地之间传输,的,的外围设备,。,。数据源和,目,目的地可以,是,是存储器或,其,其他设备,,如,如以太网连,接,接。,Flash,存,存储器设备利用专,门,门编程协议,存,存储数据的,非,非易失性存,储,储设备。,3. 通用,设,设备模型,43,7.5,HAL系统,库,库,5. HAL支持的,外,外围设备,Altera提供了许,多,多在Nios 处理,器,器系统中使,用,用的外围设,备,备,大部分,外,外围设备都,提,提供了HAL驱动,使,用,用户可通过HAL API访问硬,件,件。,字符模式设,备,备,定时器设备,文件子系统,以太网设备,DMA设备,Flash,存,存储器设备,一些第三方,外,外围设备,4. C,标,标准库Newlib,HAL系统,库,库与ANSI C标准,库,库一起构成HAL的运,行,行环境(Runtime Environment)。HAL使用,的,的Newlib是C语,言,言标准库的,一,一种开放源,代,代码的实现,,,,是在嵌入,式,式系统上使,用,用的C语言,程,程序库,正,好,好与HAL,和,和Nios,处理器,相,相匹配。,44,7.5,HAL系统,库,库,二、使用HAL开发程,序,序,HAL和SOPC Builder紧密相关,,,,如果硬件,配,配置有了变,化,化,HAL,设,设备驱动配,置,置也会自动,随,随之改动,,从,从而避免了,由,由于底层硬,件,件的变化而,产,产生的程序,错,错误。,用户不用自,己,己创建或拷,贝,贝HAL文,件,件,而且用,户,户也不用编,辑,辑HAL中,的,的任何源代,码,码。NiosIDE,会,会为用户自,动,动创建和管,理,理HAL文,件,件。,45,7.5,HAL系统,库,库,1. Nios IDE工程结,构,构,软件,硬件,46,7.5,HAL系统,库,库,2. System.h 系统描,述,述文件,System.h文件,是,是HAL系,统,统库的基础,,,,它提供了,关,关于Nios 系统,硬,硬件的软件,描,描述。它描,述,述了系统中,的,的每个外围,设,设备,并给,出,出以下一些,详,详细信息:,外围设备的,硬,硬件配置;,基地址;,中断优先级,;,;,外围器件的,符,符号名称。,用户无须编,辑,辑System.h文,件,件,它是由Nios,IDE自,动,动生成的。,可以到以下,目,目录中查看System.h文件,,,,:,Quartus工程,softwareNios,工程名,_syslibDebugsystem_description,47,7.5,HAL系统,库,库,3. 数据,宽,宽度和HAL类型定义,alt_types.h头文件定,义,义了HAL,的,的数据类型,。,。在以下路,径,径可以查看,该,该文件:,Nios,安装路径,componentsaltera_nios2HALinc,部分代码摘,抄,抄如下:,typedef signedcharalt_8;,typedef unsigned char alt_u8;,typedef signedshortalt_16;,typedef unsigned short alt_u16;,typedef signedlongalt_32;,typedef unsigned long alt_u32;,类型,说明,alt_8,有符号8位整数,alt_u8,无符号8位整数,alt_16,有符号16位整数,alt_u16,无符号16位整数,alt_32,有符号32位整数,alt_u32,无符号32位整数,48,7.5,HAL系统,库,库,4. 文件,系,系统,HAL提出,了,了文件系统,的,的概念,可,以,以使用户操,作,作字符模式的设备和文,件,件。,在整个HAL文件系统,中,中将文件子,系,系统注册为,载,载入点,要,访,访问这个载,入,入店下的文,件,件就要由这,个,个文件子系,统,统管理。,字符,模,模式,的,的设,备,备寄,存,存器,常,常作,为,为HAL,文,文件,系,系统,中,中的,节,节点,。,。通,常,常情,况,况下,,,,system.h文件,中,中将,设,设备,节,节点,的,的名,字,字定,义,义为,前,前缀/dev/+在SOPCBuilder,中,中指,定,定给,硬,硬件,元,元件,的,的名,称,称。,以下,例,例子,完,完成,了,了从,一,一个,只,只读,文,文件,的,的文,件,件子,系,系统rozipfs中,读,读取,字,字符,的,的功,能,能。,49,7.5,HAL系,统,统库,例从文,件,件子,系,系统,中,中读,取,取字,符,符。,#include,#include,#include,#defineBUF_SIZE(10),intmain(),FILE*fp;,charbufferBUF_SIZE;,fp=fopen(“/mount/rozipfs/test”,”r”);,if(fp=NULL),printf(“cannotopenfile.n”);,exit(1);,fread(buffer,BUF_SIZE,1,fp);,Fclose();,return0;,50,7.5,HAL系,统,统库,5.,外,外,围,围设,备,备的,使,使用,现以,字,字符,模,模式,外,外围,设,设备,为,为例,介,介绍,在,在用,户,户程,序,序中,如,如何,对,对外,围,围设,备,备进,行,行操,作,作。,字,字符,模,模式,外,外围,设,设备,在,在HAL,文,文件,系,系用,中,中被,定,定义,为,为节点。一,般,般情,况,况下,,,,程,序,序先,将,将一,个,个文件和设备,名,名称联系,起,起来,,,,再,通,通过,使,使用file.h,中,中定,义,义的ANSIC,文,文件,操,操作,向,向文,件,件写,数,数据,或,或从,文,文件,读,读取,数,数据,。,。,(1,),)标,准,准输,入,入(stdin),、,、标,准,准输,出,出(stdout,),)和,标,标准,错,错误,(,(stderr),函,函数,使用,这,这些,函,函数,是,是最,简,简单,的,的控,制,制I/O,的,的方,法,法;,HAL系,统,统库,在,在后,台,台管,理,理stdin,、,、stdout和stderr,函,函数,。,。,例发送Helloworld给,任,任何,一,一个,和,和stdout连,接,接的,设,设备,。,。,#include,intmain(),printf(“Helloworld!/n,”,”);,return0;,51,7.5,HAL系,统,统库,(2,),)字,符,符模,式,式设,备,备的,通,通用,访,访问,方,方法,除stdin,、,、stdout和stderr,函,函数,外,外,,访,访问,字,字符,模,模式,设,设备,还,还可,以,以通,过,过打,开,开和,写,写文,件,件的,方,方式,。,。,例向UART写,入,入字,符,符”helloworld”,。,。,#include,#include,intmain(),char*msg=,“,“helloworld,”,”;,FILE*fp;,fp=fopen(“/dev/uart1,”,”,”,”w,”,”);,if(fp),fprintf(fp,”%s,”,”,msg);,fclose(fp);,return0;,52,7.5,HAL系,统,统库,(3,),)/dev/null设,备,备,所有,的,的系,统,统都,包,包括/dev/null设,备,备。,向,向,/dev/null写,数,数据,对,对系,统,统没,有,有什,么,么影,响,响,,所,所写,的,的数,据,据将,被,被丢,弃,弃。,/dev/null用,来,来在,系,系统,启,启动,过,过程,中,中重,定,定向,安,安全I/O,,也,也可,以,以用,在,在应,用,用程,序,序中,丢,丢弃,不,不需,要,要的,数,数据,。,。这,个,个设,备,备只,是,是个,软,软件,指,指令,,,,不,与,与系,统,统中,任,任何,一,一个,硬,硬件,设,设备,相,相关,。,。,53,7.6,设计,实,实例,电,子,子钟,一、,设,设计,要,要求,与,与软,硬,硬件,规,规划,二、,硬,硬件,部,部分,设,设计,三、,软,软件,部,部分,设,设计,内容,概,概要,54,7.6,设计,实,实例,电,子,子钟,一、,设,设计,要,要求,与,与软,硬,硬件,规,规划,本节,介,介绍,一,一个,电,电子,钟,钟的,软,软、,硬,硬件,方,方案,设,设计,以,以及,具,具体,的,的软,件,件实,现,现。,1.,系,系,统,统功,能,能,1),在,在液,晶,晶屏,上,上显,示,示时,间,间、,日,日期,、,、状,态,态提,示,示;,2),对,对时,间,间、,日,日期,能,能够,进,进行,设,设置,。,。,2.,硬,硬件系,统,统组成,规,规划,本系统,需,需使用,的,的外围,器,器件包,括,括:,1)LCD:,电,电子钟,显,显示屏,幕,幕;,2)按,钮,钮:电,子,子钟设,置,置功能,键,键;,3)Flash存储,器,器:存,储,储硬件,和,和程序,;,;,4)SRAM,存,存储器,:,:程序,运,运行时,将,将其导,入,入SRAM,。,55,7.6,设计实,例,例电,子,子钟,2.,硬,硬件系,统,统组成,规,规划(,续,续),在SOPCBuilder中建,立,立系统,要,要添加,的,的模块,包,包括:,1)Nios 32bits CPU;,2)定,时,时器;,3)按,键,键PIO;,4)LCDDisplay ;,5)外,部,部RAM总线(Avalon 三,态,态桥),;,;,6)外,部,部RAM接口,;,;,7)外,部,部Flash,接,接口;,8)重,新,新配置,请,请求PIO;,9)JTAGUARTInterface,;,;,10)EPCS SerialFlashController。,56,7.6,设计实,例,例电,子,子钟,端口定,义,义表,序 号,名称,输入/输出,描述,1,clk,In,时钟输入,50MHz,2,reset_n,In,复位输入,3,in_port_to_the_button_3.0,In,4个按键输入,4,be_n_to_the_ext_ram3.0,Out,字节选择,5,ext_ram_bus_address22.0,Out,SRAM地址,6,ext_ram_bus_data31.0,Inout,SRAM数据,7,read_n_to_the_ext_flash,Out,FLASH输出使能(即读信号),8,read_n_to_the_ext_ram,Out,SRAM输出使能,9,select_n_to_the_ext_flash,Out,FLASH片选信号,10,select_n_to_the_ext_ram,Out,SRAM片选信号,57,7.6,设计实,例,例电,子,子钟,端口定,义,义表(,续,续),序号,名 称,输入/输出,描 述,11,write_n_to_the_ext_flash,Out,FLASH写信号,12,write_n_to_the_ext_ram,Out,SRAM写信号,13,LCD_E_from_the_lcd_display,Out,LCD使能信号,14,LCD_RW_from_the_lcd_display,Out,LCD读写信号,15,LCD_RS_from_the_lcd_display,Out,LCD端口寻址信号,16,LCD_data_to_and_from_the_lcd_display7.0,Inout,LCD数据,17,bidir_port_to_and_from_the_reconfig_request_pio,Inout,重新配置请求,58,7.6,设计实,例,例电,子,子钟,软件功,能,能包括,显,显示、,设,设置和,时,时间算,法,法三大,部,部分。,1)显,示,示部分,(1),显,显示时,间,间(小,时,时:分,钟,钟:秒),(2),显,显示日,期,期(年-月-,日,日),(3),显,显示状,态,态提示(如BeijingTime、Sethour等,等,等),2)设,置,置部分,其功能,包,包括设,置,置小时,、,、分钟,、,、年份,、,、月份,、,、日期,和,和退出,设,设置。,编写程,序,序前对,开,开发板,上,上4个,功,功能键,的,的分配,如,如下:,(1),主,主菜单,SW0,:,:设置,选,选择键,可依,次,次选择,设,设置小,时,时、分,钟,钟、年,份,份、月,份,份、日,期,期,SW1,:,:显示,日,日期键,SW2,:,:显,示,示时间,键,键,(2),子,子菜单(即进,入,入到对,某,某个对,象,象设置,后,后的键,盘,盘功能),SW1,:,:对,象,象数字,增,增加,SW2,:,:对,象,象数字,减,减少,SW3,:,:退,出,出,返,回,回主菜,单,单,3.,软,软件系,统,统规划,59,7.6,设计实,例,例电,子,子钟,3)时,间,间算法,部,部分,(1),时,时间累,加,加,(2),确,确定每,个,个月的,最,最大天,数,数,使,年,年、月,、,、日能,够,够正确,累,累加,3.,软,软件系,统,统规划,(,(续),只有显,示,示和响,应,应按键,部,部分涉,及,及硬件,,,,其它,子,子程序,可,可以在,进,进行硬,件,件设计,的,的同时,开,开始编,写,写。,60,7.6,设计实,例,例电,子,子钟,电子钟,主,主程序,流,流程图,61,7.6,设计实,例,例电,子,子钟,按键处,理,理子程,序,序handle_button_press(FILE*lcd),是一个,主,主要的,子,子程序,。,。,它,首先采,用,用多分,支,支ifelse ifelse形式,,根,根据flag,的,的取值,,,,执行,不,不同的,程,程序块,。,。在每,一,一个条,件,件下(,如,如flag=0,flag=1,,,flag=5,),),又,采,采用开,关,关(switch)分支,结,结构,,根,根据edge_capture的,值,值判断,应,应执行,哪,哪个程,序,序段。,flag=0,flag=1,flag=2,flag=3,flag=4,flag=5,进入主菜单,进入小时设置子菜单,进入分钟设置子菜单,进入年份设置子菜单,进入月份设置子菜单,进入日期设置子菜单,哪个按键被按下,SW0,SW1,SW2,SW3,edge_capture取值(十六进制),0x1,0x2,0x4,0x8,62,7.6,设计实,例,例电,子,子钟,按键处,理,理子程,序,序流程,flag=0,flag=1,flag=2,flag=3,flag=4,flag=5,SW0被按下,调用timer_set子程序,调用timer_set子程序,、显示时间,调用timer_set子程序,、显示时间,调用timer_set子程序,、显示日期,调用timer_set子程序,、显示日期,调用timer_set子程序、显示日期,SW1被按下,显示Todays date和日期,小时数+1、显示时间,分钟数+1、显示时间,年份数+1、显示日期,月份数+1、显示日期,天数+1、显示日期,SW2被按下,显示Beijing Time和时间,小时数-1、显示时间,分钟数-1、显示时间,年份数-1、显示日期,月份数-1、显示日期,天数-1、显示日期,SW3被按下,显示Beijing Time和时间,退出当前设置、显示Beijing Time和时间,退出当前设置、显示Beijing Time和时间,退出当前设置、显示Beijing Time和时间,退出当前设置、显示Beijing Time和时间,退出当前设置、显示Beijing Time和时间,下面以,表,表格形,式,式给出,按键处,理,理子程,序,序进行,处理的,关,关键步,骤,骤。,63,7.6,设计实,例,例电,子,子钟,二、硬,件,件部分,设,设计,1)创,建,建一个Quartus工,程,程,(1),启,启动Quartus,5.0,(2),创,创建工,程,程quartus_nios2_project, 按,第,第4章,所,所教的,方,方法建,立,立一个,工,工程,,取,取名为quartus_nios2_project.qpf,选,择,择元件,为,为Cyclone库,的,的EP1C20F400C7, 新,建,建设计,文,文件,quartus_nios2_project.bdf, 在,设,设计文,件,件中依,次,次添加,如,如下图,所,所示的,一,一些引,脚,脚,最简单,的,的方法,是,是沿用Nios IDE,已,已给示,例,例的硬,件,件设计,!,!,64,7.6,设计实,例,例电,子,子钟,新建设,计,计文件quartus_nios2_project.bdf,65,7.6,设计实,例,例电,子,子钟,方法:,(1)将“C:alterakitsnios2examplesverilog,niosII_cyclone_1c20standard”中,所,所有文,件,件拷入,自,自己新,建,建的工,作,作目录elec_timer_std;,(2)在Quartus,5.0中打,开,开其中,的,的standard.qpf文件;,(3)打开顶,层,层图形,文,文件standard.bdf;,(4)根据实,际,际需要,删,删除或,添,添加引,脚,脚,对引,脚,脚重命,名,名等。,说明:最简单,的,的方法,是,是沿用Nios IDE,已,已给示,例,例的硬,件,件设计,,,,这样,容,容易将,设,设计成,功,功下载,到,到目标,芯,芯片中,。,。,66,7.6,设计实,例,例电,子,子钟,打开已,有,有的设,计,计standard.bdf,67,7.6,设计实,例,例电,子,子钟,重点掌,握,握!,2)创,建,建Nios,系统,模,模块,(1),启,启动SOPCBuilder,在Quartus,5.0中执,行,行“ToolsSOPC Builder”命令,,,,则出,现,现Create NewSystem,设,设置向,导,导;,在“SystemName”栏,中,中输入,系,系统名,称,称first_nios2_system;,点击OK按钮,,,,弹出AlteraSOPCBuilder主窗,口,口;,在Target-Board选择Nios Development Board Cyclone(EP1C20),;,;,在Clock-clk中输,入,入50,。,。,68,7.6,设计实,例,例电,子,子钟,修改已,有,有的Nios,系,统,统模块,的,的方法,:,:,1,. 在standard.bdf,文,文件中,双,双击std_1c20,则自,动,动打开SOPC Builder;,2,. 在SOPC Builder,的,的模块,表,表中将,不,不用组,件,件(或,称,称模块,),)的Use复,选,选框去,掉,掉;更,改,改某些,组,组件的,名,名称;,删,删除不,用,用的组,件,件(如systemID);添,加,加所需,的,的新组,件,件;,3,. 如,果,果需要,,,,还可,以,以右击cpu,,,,选择,“,“Edit”,对,该,该cpu的类,型,型、InstuctionsCaches,大,大小等,选,选项重,新,新进行,设,设置。,说明:若沿用,的,的是Nios,IDE已,给,给示例,的,的硬件,设,设计,,则,则不必,从,从头创,建,建Nios,系统,模,模块,,可,可对已,有,有的Nios,系,统,统模块,进,进行适,当,当修改,,,,而快,速,速得到,用,用户所,需,需的Nios,系,统,统模块,。,。,69,7.6,设计实,例,例电,子,子钟,对已有,的,的Nios,系统,模,模块std_1c20进行,修,修改,不用组,件,件的Use复,选,选框去,掉,掉,70,7.6,设计实,例,例电,子,子钟,需从SOPCBuilder的,元,元件池,中,中选择,以,以下元,件,件加入,到,到当前,系,系统中,:,: Nios,32bitCPU,、,、 JTAGUART,接,接口、,定,定时器,、,、按键PIO,、,、LCD Display,、,、外部RAM,总,总线(Avalon,三,三态,桥,桥)、,外,外部RAM接,口,口、外,部,部Flash,接,接口和,新,新配置,请,请求PIO。, 添,加,加Nios, 32bit CPU,在模块,池,池的AvalonModule,下,下选择Nios Processor-AlteraCorporation;,点击Add,出现,设,设置向,导,导(默,认,认名为cpu_0),;,;,在Nios, Core,页,页中选,择,择Nios /S,在Caches& TightlycoupledMemoris页中,选,选择Instuctions Caches为4 Kbytes,在JTAGDebugModule页中,选,选择Level1;,点击Finish返回主,窗,窗口,,将,将cpu_0,重,重命名,为,为,cpu,。,(2),添,添加CPU和,外,外围器,件,件,71,7
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 营销创新


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!