VHDL语言绪论.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《VHDL语言绪论.ppt》由会员分享,可在线阅读,更多相关《VHDL语言绪论.ppt(141页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章 VHDL语言绪论nEDA(Electronic Design Automation)nVHDLn自顶向下的系统设计方法n应用VHDL的EDA过程n在系统编程技术nFPGA/CPLD的优势nVHDL的学习Electronic Design AutomationnEDA技术就是以计算机为工具,在EDA软件平台上,对以硬件描述语言HDL为系统逻辑描述手段完成的设计文件自动地自动地完成完成逻辑编译、逻辑化简、逻辑分割、逻辑综合及优化、逻辑布局布线、逻辑仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。Very High Speed Integrated Circuit Hardw
2、are Description LanguagenVHDL主要用于描述数字系统的结构、行为、功能和接口。系统设计领域最佳的硬件描述语言既是硬件描述语言又是仿真语言具有类属描述语句和子程序调用等功能VHDL的硬件描述与具体的工艺技术和硬件结构无关自顶向下的系统设计方法n自底向上设计方法 首先确定可用的元器件,然后根据这些器件进行逻辑设计,完成各模块后进行连接,最后形成系统。nTOP-TO-DOWN(自顶向下):采用硬件描述语言,在系统的基本功能或行为级上对设计的产品进行描述和定义,结合多层次的仿真技术、在确保设计的可行性与正确性的前提下,完成功能确认。然后利用EDA工具的逻辑综合功能,把功能描述
3、转换成某一具体目标芯片的网表文件,输出给该器件厂商的布局布线适配器,进行逻辑映射及布局布线,再利用产生的仿真文件进行功能和时序的验证,以确保实际系统的性能。自顶向下的系统设计方法自顶向下设计方法的优越性:1 顶层的功能描述可以完全独立于目标器件的结构2 设计成果的再利用得到保证 Intellectual Property Core(IP核)3 可实现多人多任务的并行工作方式,使系统的设计规模和效率大幅度提高。4 在选择实现系统的目标器件的类型、规模、硬件结构等方面具有更大的自由度。应用VHDL的EDA过程In-System Programmabilityn采用ISP技术的CPLDFPGA构成的
4、系统可以在装配后进行逻辑设计和编程下载。并能根据需要对系统硬件功能实时地加以修改或按预定程序改变逻辑组态,从而使整个硬件系统变得像软件那样灵活而易于修改。即利用ISP技术,可在不改变硬件电路和结构的情况下重构逻辑,或硬件升级。EEPROM编程下载技术FPGA/CPLD的优势n高集成度、高速和高可靠是FPGA/CPLD最明显的特点,其时钟延迟可达纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用前景。美国TI公司认为,一个ASIC 80的功能可用IP核等现成逻辑合成。而未来大系统的FPGA/CPLD设计仅仅是各类再应用逻辑与IP核的拼装,其设计周期将更短。第二章 VHDL
5、语言入门n2选1选择器设计n锁存器设计n全加器设计2.1 二选一选择器设计na和b分别是两个数据输入瑞的端口名,s为通道选择控制信号输入端的端口名,y为输出端的端口名。其逻辑功能可表述为:若s=0,则ya;若s1,则yb。仿真结果MUX21的RTL图2.2 锁存器设计n与多路选择器不同,锁存器的工作状态必须用时序逻辑才能描述,锁存器的引脚D是数据输入端口、ENA是数据锁存使能控制端口,Q为数据输出端口。ENA1,允许锁入 ENA0,禁止锁入Latch的RTL图VHDLVHDL语言设计实体的基本结构语言设计实体的基本结构配置(配置(CONFIGURATION)ENTITY(实体说明实体说明)结构
6、体(ARCHITECTURE)进程进程或其它并行结构或其它并行结构 库、程序包程序包设计实体设计实体 第3章 VHDL语言程序结构VHDL程序设计基本结构 3.1 VHDL3.1 VHDL程序基本结构程序基本结构n一个完整的一个完整的VHDLVHDL语言程序通常可含有语言程序通常可含有五个部分五个部分:n实体(实体(EntityEntity):描述系统的外部接口信号描述系统的外部接口信号n结构结构体(体(ArchitectureArchitecture):描述系统内部的结构描述系统内部的结构和行为和行为n配置(配置(ConfigurationConfiguration):属性选项,描述层与属性
7、选项,描述层与层之间、实体与结构体之间的连接关系层之间、实体与结构体之间的连接关系n程序包程序包(PackagePackage):属性选项,用于把共享的属性选项,用于把共享的定义放置其中。具体讲,就是存放各模块都能共定义放置其中。具体讲,就是存放各模块都能共享的数据类型、常数、子程序等。享的数据类型、常数、子程序等。n库(库(LibraryLibrary):存放已编译的实体、存放已编译的实体、结构体结构体、程序包程序包和配置,可由用户生成或和配置,可由用户生成或由由ASICASIC芯片制造芯片制造商提供。商提供。Entity-Architecture Pairinput1inputnoutpu
8、t1outputnEntity SymbolCLRNENADQclkclrmux_outadsel2bcArchitecture Schematic好比好比PCB板板上的一上的一个个IC插插座座好比好比PCB板板插座插座上的一上的一个个IC实体说明单元的常用语句结构如下:ENTITY 实体名 IS GENERIC(类属表);PORT(端口表);END ENTITY 实体名;文件名(MAX+plus II)1实体语句结构实体语句结构 类属类属(Generics)(Generics)参数说明参数说明n类属说明的一般书写格式如下:nGENERIC(常数名:数据类型:设定值 ;常数名:数据类型:设定值
9、);n 类属参量以关键词GENERIC引导一个类属参量表,在表中提供时间参数或总线宽度等静态信息。n类属参数的说明类属参数的说明必须放在端口说明之前必须放在端口说明之前Integer,time ENTITY MCK IS GENERIC(WIDTH:INTEGER:=16);PORT(ADD_BUS:OUT STD_LOGIC_VECTOR(WIDTH-1 DOWNTO 0);.在这里,GENERIC语句对实体MCK的作为地址总线的端口ADD_BUS的数据类型和宽度作了定义,即定义ADD_BUS为一个16位的位矢量。端口端口说明说明端口一般书写格式如下:端口一般书写格式如下:nPORTPORT
10、(n 端口名端口名,端口名,端口名:方向:方向 数据类型;数据类型;n n 端口名端口名,端口名,端口名:方向:方向 数据类型数据类型n ););端口名端口名n赋于每个外部引脚的名称通常赋于每个外部引脚的名称通常以以1 1个或个或n n个英文字母或以字母个英文字母或以字母打头后跟数字命名打头后跟数字命名n如:如:d0d0、d1d1、selsel、q q端口方向:端口方向:n定义外部引脚是输入还是输出定义外部引脚是输入还是输出n表明方向的说明符如下:表明方向的说明符如下:nIN IN 输入,信号从端口进入结构体内;输入,信号从端口进入结构体内;nOUT OUT 输出,信号从结构体内流经端口输出输
11、出,信号从结构体内流经端口输出 (结构体内不再使用)(结构体内不再使用)nINOUT INOUT 双向;双向;nBUFFER BUFFER 输出,结构体可再使用输出,结构体可再使用OUTOUT、INOUTINOUT与与BUFFER BUFFER 的区别的区别:OUTOUT、INOUTINOUT与与BUFFER BUFFER 的区别的区别n OUTOUT:仅允许数据流从实体内仅允许数据流从实体内流向外流向外n INOUTINOUT:驱动信号可以在实体内向外驱动信号可以在实体内向外 也可在实体外向内,也允许用于也可在实体外向内,也允许用于 内部反馈内部反馈n BUFFERBUFFER:输出输出(即
12、驱动只能在实体内(即驱动只能在实体内 向外),但也可被用于向外),但也可被用于内部反馈内部反馈2 2 结构结构体(体(Architecture BodyArchitecture Body)n结构体结构体是一个基本设计单元的实体是一个基本设计单元的实体n它具体指明它具体指明:n 该基本设计单元的行为该基本设计单元的行为n 单元内部的连接关系单元内部的连接关系n定义了定义了n设计单元设计单元具体的功能或内部操作特性具体的功能或内部操作特性结构体构造图对结构体的描述方式对结构体的描述方式n有以下三种:有以下三种:n 行为描述行为描述n 数据流方式数据流方式n 结构描述结构描述行为描述:行为描述:n对
13、设计实体对设计实体的的数学模型数学模型的描述的描述n其抽象程度远高于其他描述其抽象程度远高于其他描述n主要使用函数、过程或进程语句主要使用函数、过程或进程语句n以算法形式描述数据的变换和传送以算法形式描述数据的变换和传送n描述该设计单元的描述该设计单元的功能功能,即:,即:描述输描述输入与输出的行为入与输出的行为input1,.,inputnoutput1,.,outputnIF shift_left THENFOR j IN high DOWNTO low LOOP shft(j):=shft(j-1);END LOOP;output1=shft AFTER 5ns;Behavioral M
14、odelingnDescribes Functionality OnlynHardware IndependentnSupported in Synthesis&SimulationLeft Bit Shifter数据流方式:数据流方式:n又称又称RTL(Register Transfer Level)RTL(Register Transfer Level)级方式级方式n对从信号到信号的数据流的路径形式进行描对从信号到信号的数据流的路径形式进行描述述n描述数据的传输和变换描述数据的传输和变换n主要主要使用并行的信号赋值语句使用并行的信号赋值语句n既明显表示了该设计单元的行为既明显表示了该设计单
15、元的行为n也隐式表示了该设计单元的结构也隐式表示了该设计单元的结构n容易进行逻辑综合容易进行逻辑综合结构描述:n描述该设计单元的硬件结构描述该设计单元的硬件结构n主要使用主要使用n 配置指定语句配置指定语句n 元件例化语句元件例化语句n 描述元件的类型及互连关系描述元件的类型及互连关系input1inputnoutput1outputnHigher-level ComponentLower-levelComponent1Structural ModelingnDescribes Functionality&StructurenCalls Out Specific Hardware or Log
16、icnSynthesis OnlyLower-levelComponent11)1)结构体描述的一般格式:结构体描述的一般格式:nARCHITECTUREARCHITECTURE 结构体名结构体名 OF OF 实体名实体名 ISISn 定义语句定义语句 n 包括:内部信号,常数,数据类型,元件包括:内部信号,常数,数据类型,元件n 函数,过程等的定义函数,过程等的定义n BEGINBEGINn 并行处理语句并行处理语句 n 包括包括:并行信号赋值语句,进程语句,:并行信号赋值语句,进程语句,n 生成语句,元件例化语句生成语句,元件例化语句n END END 结构体名;结构体名;2 2)结构体名
17、称的命名结构体名称的命名n为了使阅读为了使阅读VHDLVHDL程序的人能了解设计者程序的人能了解设计者所采用的所采用的描述方式描述方式n通常把采用的描述方式来对结构体名称通常把采用的描述方式来对结构体名称进行命名进行命名n如如:n ARCHITECTURE ARCHITECTURE structuralstructural OF OF muxmux IS ISn如:如:n ARCHITECTURE ARCHITECTURE dataflow dataflow OF OF muxmux IS IS3 3)定义语句定义语句n定义语句位于定义语句位于ARCHITECTUREARCHITECTURE和
18、和BEGINBEGIN之间,之间,n用于对结构体内部所使用的用于对结构体内部所使用的信号信号、常数常数、数据类型数据类型和和函数进行定义函数进行定义,例如:例如:nARCHITECTURE ARCHITECTURE behavbehav OF OF muxmux IS ISnSIGNAL SIGNAL nesnes:BITBIT;n nBEGINBEGINn nEND END behavbehav;4 4)并行处理语句并行处理语句n在结构体在结构体中的语句中的语句都是可以都是可以并行执行的并行执行的n语语句句的的执执行行不不以以书书写写的的语语句句顺顺序序为为执执行行顺序顺序n并行处理语句位于
19、并行处理语句位于BEGINBEGIN和和ENDEND之间之间n这这些些语语句句具具体体的的描描述述了了结结构构体体的的行行为为及及其连接关系其连接关系3.3.结构体的子结构描述结构体的子结构描述n一一个个结结构构体体可可以以用用几几个个子子结结构构,即即由由几几个个比比较较独立的模块独立的模块来构成来构成nVHDLVHDL语言可以有语言可以有3 3种形式的子结构描述语句:种形式的子结构描述语句:n BLOCKBLOCK语句结构语句结构n PROCESSPROCESS语句结构语句结构n SUBPROGRAMSUBPROGRAM语句结构语句结构二、进程二、进程(PROCESSPROCESS)语句描
20、述语句描述n PROCESSPROCESS语句的格式:语句的格式:n 进进 程程 名名 :PROCESSPROCESS(信信 号号 1 1,信信 号号 2 2,)nBEGINBEGINn nEND PROCESSEND PROCESS;n进程名可以有也可以省略进程名可以有也可以省略在进程说明部分中不允许定义信号和共享变量abselcCLRNENADQdclkclrqsensitivity list includes all inputs used in the combinatorial logic sensitivity list does not include the d input,o
21、nly the clock or/and control signals Sequential Process Sensitive to Specific Inputs(i.e.Clock and/or Control Signals)Example PROCESS(clr,clk)Combinatorial Process Sensitive to All Inputs Example PROCESS(a,b,sel)Types of Processes 变变量量只只在在进进程程中中定定义义,变变量量只只能能在在进进程程语语句句、函函数数语语句句和和过过程程语语句句结结构构中中使用使用,它是
22、一个局部量。它是一个局部量。n变量的赋值是变量的赋值是立即生效立即生效的的n而而信号信号只有只有当进程执行完以后才生效。当进程执行完以后才生效。进程中的进程中的信号与变量变量三、子程序三、子程序(SUBPROGRAMSUBPROGRAM)的结构描述)的结构描述n子程序子程序与其它高级语言中的子程与其它高级语言中的子程序概念相当,它可以反复调用,但序概念相当,它可以反复调用,但子程序子程序返回以后才能被再调用。返回以后才能被再调用。VHDLVHDL子程序子程序有两种类型:有两种类型:n过程过程(PROCEDUREPROCEDURE)n函数函数(FUNCTIONFUNCTION)n其中其中:n过过
23、程程与与其其它它高高级级语语言言中中的的子子程程序序相相当当n而而“函函数数”与与其其它它高高级级语语言言中中的的函函数相当数相当1 1 库(库(LibraryLibrary)n库是经编译后的数据的集合库是经编译后的数据的集合n它它存存放放程程序序包包定定义义、实实体体定定义义、结结构构体定义、配置定义体定义、配置定义库的功能库的功能n类类似似于于DOSDOS操操作作系系统统中中的的目目录录或或WINDOWSWINDOWS中中的的文件夹文件夹n库库中中存存放放着着已已编编译译好好的的实实体体、结结构构体体、程程序序包和配置包和配置n在在VHDLVHDL语语言言中中库库的的说说明明总总是是放放在
24、在设设计计单单元元的的最前面:最前面:n LIBRARY LIBRARY 库名库名;库的种类库的种类n在在VHDLVHDL中存在的库大致可分为中存在的库大致可分为5 5类:类:n IEEEIEEE库库n STDSTD库库n ASICASIC库库n WORKWORK库库n 用户定义用户定义库库 IEEE IEEE库库nIEEEIEEE库是最常用的资源库库是最常用的资源库nIEEEIEEE库中的程序包有:库中的程序包有:n Std_logic_1164Std_logic_1164程序包程序包n Numeric_BitNumeric_Bit程序包程序包n Numeric_StdNumeric_Std
25、程序包程序包n Math_RealMath_Real程序包程序包n Math_ComplexMath_Complex程序包程序包n vital_Timingvital_Timing程序包程序包n vital_Primitivesvital_Primitives程序包程序包现在有些公司现在有些公司n如如SYNOPSYSSYNOPSYS公司也提供一些程序包如:公司也提供一些程序包如:n“STD_LOGIC_ARITHSTD_LOGIC_ARITH”n“STD_LOGIC_UNSIGNEDSTD_LOGIC_UNSIGNED”“STD_LOGIC_SIGNEDSTD_LOGIC_SIGNED”n虽虽
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL 语言 绪论
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内