收藏 分销(赏)

设计与应用.pptx

上传人:精**** 文档编号:2404045 上传时间:2024-05-29 格式:PPTX 页数:43 大小:221.81KB 下载积分:14 金币
下载 相关 举报
设计与应用.pptx_第1页
第1页 / 共43页
设计与应用.pptx_第2页
第2页 / 共43页


点击查看更多>>
资源描述
信息与通信工程学院信息与通信工程学院第二章VHDL基本概念基本概念 硬件描述语言概述VHDL程序的实体和结构体 VHDL程序的库和程序包1信息与通信工程学院信息与通信工程学院硬件描述硬件描述语言概述言概述 目前,国目前,国际上越来越多的上越来越多的EDA工具都接收工具都接收HDL语言作言作为设计输入。硬件描述入。硬件描述语言向着言向着标准化、集成化的方向准化、集成化的方向发展,展,VHDL和和Verilog HDL适适应了了这种种趋势的要求,先后的要求,先后成成为IEEE标准。目前准。目前应用最广泛的硬件描述用最广泛的硬件描述语言有言有VHDL和和Verilog两种。此外两种。此外ABEL-HDL也有少量也有少量应用。用。Verilog HDL Verilog HDL全称全称为Verilog硬件描述硬件描述语言,它是言,它是1983年年由由GDA公司的公司的Phil Moorby首首创的。的。1989年年Cadence公司公司收收购了了GDA公司,并公开了公司,并公开了Verilog HDL。基于。基于Verilog HDL的的优越性,越性,IEEE于于1995年制年制订了了Verilog HDL的的IEEE标准,即准,即Verilog HDL 1364-1995。2信息与通信工程学院信息与通信工程学院 Verilog HDL是是专为ASIC设计而开而开发的。的。Verilog HDL较为适合算法适合算法级、寄存器、寄存器传输级(Register Transfer Level,RTL)、门级和版和版图级的的设计,它可以很容易地把完,它可以很容易地把完成的成的设计移植到不同厂家的不同芯片中去,并且移植到不同厂家的不同芯片中去,并且对设计很很容易修改。容易修改。采用采用Verilog HDL输入法的最大入法的最大优点是其与工点是其与工艺的无的无关性,关性,这使得使得设计者在功能者在功能设计、逻辑验证阶段可不必段可不必过多考多考虑门级及其工及其工艺实现的具体的具体细节,只需要利用系,只需要利用系统设计时对芯片的要求,施加不同的芯片的要求,施加不同的约束条件,即可束条件,即可设计出出实际电路。路。Verilog HDL完全集成于完全集成于Quartus中,它可以包含中,它可以包含Quartus支持支持结构的任何形式的构的任何形式的组合,也可以包含合,也可以包含Altera提供的元器件和宏功能模提供的元器件和宏功能模块。利用。利用Verilog HDL可可以以进行功能描述、仿真行功能描述、仿真验证、时序分析、序分析、逻辑综合等。合等。硬件描述硬件描述语言概述言概述3信息与通信工程学院信息与通信工程学院VHDL Very-High Speed Integrated Circuit Hardware Description Language VHDL全称全称为超高速集成超高速集成电路硬件描述路硬件描述语言。它是美国言。它是美国国防部于国防部于20世世纪80年代后期出于年代后期出于军事工事工业的需要开的需要开发的。的。1987年年VHDL被被IEEE确定确定为标准化的硬件描述准化的硬件描述语言言,即即VHDL87版本版本。1993年,年,IEEE对VHDL进行了修行了修订,从更高的抽象,从更高的抽象层次和系次和系统描述能力上描述能力上扩展了展了VHDL的内容,形成了新版的内容,形成了新版本的本的VHDL,即,即VHDL93版本版本。硬件描述硬件描述语言概述言概述 VHDL语言涵盖面广,抽象描述能力言涵盖面广,抽象描述能力强,支持硬件的,支持硬件的设计、验证、综合与合与测试。4信息与通信工程学院信息与通信工程学院 利用利用VHDL描述描述设计,设计者者可以不懂硬件可以不懂硬件结构,也不必构,也不必考考虑最最终实现的目的目标器件是什么,只需用正确的器件是什么,只需用正确的语言描述系言描述系统的行的行为即可即可。正因。正因为VHDL的硬件描述与具体的工的硬件描述与具体的工艺技技术和硬件和硬件结构无关,使得构无关,使得VHDL设计程序的硬件程序的硬件实现目目标器件器件有广有广阔的的选择范范围,其中包括各系列的,其中包括各系列的CPLD、FPGA及各及各种种门阵列器件。列器件。在各种硬件描述在各种硬件描述语言中,言中,VHDL的行的行为抽象描述能力是最抽象描述能力是最强的的,从而决定了它成,从而决定了它成为系系统设计领域最佳的硬件描述域最佳的硬件描述语言。言。硬件描述硬件描述语言概述言概述 VHDL能在多个能在多个级别上上对同一同一逻辑功能功能进行描述,如可以行描述,如可以在在寄存器寄存器级别上上对电路的路的组成成结构构进行描述,也行描述,也可以在行可以在行为描述描述级别上上对电路的功能与性能路的功能与性能进行描述行描述。无。无论哪种哪种级别的的描述,都有描述,都有赖于于优良的良的综合器其合器其转化化为具体的硬件具体的硬件结构。构。5信息与通信工程学院信息与通信工程学院VerilogHDL与与VHDL的比的比较 一般的硬件描述一般的硬件描述语言可在三个言可在三个层次上次上进行行电路描述,其路描述,其层次由高到低依次可分次由高到低依次可分为行行为级、RTL级和和门电路路级。VHDL语言通常更适合行言通常更适合行为级和和RTL级的描述的描述;VerilogHDL通常只适合通常只适合RTL级和和门电路路级的描述的描述。因此与因此与VerilogHDL相比,相比,VHDL是一种高是一种高级描述描述语言言,适用于适用于电路高路高级建模,最适合描述建模,最适合描述电路的行路的行为,即描述,即描述电路的功能,但它几乎不能直接控制路的功能,但它几乎不能直接控制门电路,即控制路,即控制电路的路的资源;源;VerilogHDL则是一种低是一种低级的描述的描述语言言,最适合于,最适合于描述描述门级电路,易于控制路,易于控制电路路资源。源。硬件描述硬件描述语言概述言概述6信息与通信工程学院信息与通信工程学院 任何一种任何一种语言源程序,最言源程序,最终都要都要转换成成门电路路级才能被才能被布布线器或适配器所接收。器或适配器所接收。VHDL语言的言的综合通常要合通常要经过行行为级RTL级门电路路级的的转化化;而;而VerilogHDL语言的言的综合合过程要稍程要稍简单些,即些,即经过RTL级门电路路级的的转化化。VHDL和和VerilogHDL主要区主要区别在于在于逻辑表达的描述表达的描述级别。VHDL虽然也可以直接描述然也可以直接描述门电路,但路,但这方面的方面的能力却不如能力却不如VerilogHDL;相反,;相反,VerilogHDL在高在高级建建模描述方面不如模描述方面不如VHDL。VerilogHDL的描述的描述风格接近于格接近于电路原理路原理图,从某种意,从某种意义上上说,它是,它是电路原理路原理图的高的高级文本表示方式。文本表示方式。硬件描述硬件描述语言概述言概述7信息与通信工程学院信息与通信工程学院 由于由于VHDL和和VerilogHDL各有所各有所长,市,市场占有量也相占有量也相差不多。差不多。VHDL描述描述语言言层次次较高,不易控制底高,不易控制底层电路路,因而因而对综合器的合器的综合性能要求合性能要求较高。但当高。但当设计者者积累一定累一定经验后会后会发现,每种,每种综合器一般将一定描述合器一般将一定描述风格的格的语言言综合成确定的合成确定的电路,只要熟悉基本路,只要熟悉基本单元元电路的描述路的描述风格,格,综合后的合后的电路路还是易于控制的。是易于控制的。VHDL入入门相相对稍稍难,但在熟悉以后,但在熟悉以后,设计效率效率明明显高于高于VerilogHDL,生成的,生成的电路性能也与路性能也与VerilogHDL的不相上下的不相上下。在。在VHDL设计中,中,综合器完成的工作量是巨合器完成的工作量是巨大的,大的,设计者所做的工作就相者所做的工作就相对减少了;而在减少了;而在VerilogHDL设计中,中,设计者工作量通常比者工作量通常比较大,因大,因为设计者需要搞清除具体者需要搞清除具体电路路结构的构的细节。硬件描述硬件描述语言概述言概述8信息与通信工程学院信息与通信工程学院第二章VHDL基本概念基本概念 硬件描述语言概述VHDL程序的实体和结构体 VHDL程序的库和程序包9信息与通信工程学院信息与通信工程学院VHDL语言的程序言的程序结构构一般一般结构构 VHDL程序程序结构的一个构的一个显著特点就是,任何一个完整的著特点就是,任何一个完整的设计项目目(或称或称为设计实体,体,简称称实体体)都可以分都可以分为两部分。两部分。第一部分主要用于描述第一部分主要用于描述电路的路的“外部端口外部端口”,包括器件,包括器件名称、端口的名称、数据名称、端口的名称、数据类型等,我型等,我们把它称把它称为“实体体说明明”;第二部分主要用于描述第二部分主要用于描述电路的路的“内部内部结构、功能及其构、功能及其实现的算法的算法”,我,我们把它称把它称为“结构体构体”。以上两部分是一个以上两部分是一个VHDL程序必程序必备的两部分,缺一不可。的两部分,缺一不可。当一个当一个设计实体的内、外两部分都体的内、外两部分都设计完成后,其他完成后,其他设计实体就可以像体就可以像调用普通元件一用普通元件一样直接直接调用它。用它。10信息与通信工程学院信息与通信工程学院【例【例2-1】试用用VHDL语言描述一个言描述一个2输入端的与非入端的与非门。-第一部分:第一部分:“实体体说明明”ENTITY nand2 IS-实体体说明描述明描述,实体名称体名称为nand2 PORT(a,b:IN BIT;-a、b为输入引脚入引脚,数据数据类型型为BIT y:OUT BIT);-y为输出引脚出引脚,数据数据类型型为BIT END nand2;-结束束实体体说明明-第二部分:第二部分:“结构体构体”ARCHITECTURE a OF nand2 IS -结构体名称构体名称为a BEGIN y=a NAND b;-a和和b进行与非运算,行与非运算,结果果赋给yEND a;-结束束结构体描述构体描述 从从上上述述例例子子可可看看出出,VHDL的的所所有有语句句都都是是以以“;”结束的;束的;语句后面的句后面的“-”部分表示程序注部分表示程序注释。VHDL语言的程序言的程序结构构11信息与通信工程学院信息与通信工程学院 “实体体说明明”部部分分给出出了了器器件件nand2的的外外部部引引脚脚(PORT),如如图所所示示。a、b为输入入引引脚脚,y为输出出引引脚脚,数数据据类型型均均为BIT。BIT指指的的是是1位位二二进制制数数,只只有有2两两种种逻辑取取值“0”和和“1”。“结构构体体”部部分分给出出了了nand2的的内内部部功功能能信信息息。其其中中“NAND”是是实现“与与非非”运运算算的的运运算算符符;“=”是是赋值运运算算符符,从从电路路的的角角度度来来看看就就是是表表示示信信号号的的传输,即即将将a和和b“与非与非”运算后的运算后的结果信号果信号传输给y。VHDL语言的程序言的程序结构构12信息与通信工程学院信息与通信工程学院实体体 实体体是是VHDL程程序序设计中中最最基基本本的的模模块,可可以以单独独编译和并入和并入设计库。实体体就就是是设计对象象(或或设计项目目),实体体可可代代表表任任何何电路路,从从一一个个门电路路、一一个个芯芯片片、一一块电路路板板,到到一一个个复复杂系系统都都可可看看成成一一个个实体体。如如果果在在设计时采采用用的的是是自自顶向向下下分分层、划划分分模模块的的设计方方法法,那那么么,各各层的的设计模模块都都可可看看成成一一个个实体体。顶层的的系系统模模块称称为顶层实体体,低低层的的设计模模块称称为低低层实体。体。在在用用VHDL语言言描描述述时,顶层的的实体体可可将将比比它它低低的的低低层实体体当当作作元元件件来来调用用。至至于于低低层实体体的的具具体体结构构和和功功能能,在低在低层实体中描述。体中描述。13信息与通信工程学院信息与通信工程学院实体体说明明 实体体说明明的的功功能能就就是是对实体体与与外外部部电路路的的接接口口进行行描描述述,是是实体体的的表表层设计单元元,它它规定定了了实体体的的输入入输出出接接口信号,是口信号,是实体体对外的一个通信界面。外的一个通信界面。实体体说明常用的明常用的语句句结构如下:构如下:ENTITY 实体名体名IS GENERIC(类属参数属参数说明明语句句);PORT(端口端口说明明);END 实体名体名;实体体14信息与通信工程学院信息与通信工程学院2中中间方括号内的方括号内的语句描述并非必需。句描述并非必需。3对于于VHDL的的编译器和器和综合器来合器来说,程序程序对字母不区分字母不区分大小写大小写,但,但为了便于了便于阅读和分辨,建和分辨,建议将将VHDL的表示符的表示符或基本或基本语句的关句的关键词以大写方式表示,而由以大写方式表示,而由设计者添加的者添加的内容以小写方式来表示。内容以小写方式来表示。实体体说明中明中应注意以下几个注意以下几个问题:1实体名可由体名可由设计者自己者自己规定,可采用定,可采用英文字母英文字母“A-Z”、“a-z”,阿拉伯数字阿拉伯数字“0-9”,或,或底底线符号符号“_”,但字符数,但字符数不能不能超超过32个,个,不能不能以数字或以数字或“_”开开头,不能不能连续使用底使用底线符号符号“_ _”,也,也不能不能以以“_”结束。束。实体体15信息与通信工程学院信息与通信工程学院实体体说明明 实体体说明明的的功功能能就就是是对实体体与与外外部部电路路的的接接口口进行行描描述述,是是实体体的的表表层设计单元元,它它规定定了了实体体的的输入入输出出接接口信号,是口信号,是实体体对外的一个通信界面。外的一个通信界面。实体体说明常用的明常用的语句句结构如下:构如下:ENTITY 实体名体名IS GENERIC(类属参数属参数说明明语句句);PORT(端口端口说明明);END 实体名体名;实体体16信息与通信工程学院信息与通信工程学院ENTITY dff IS PORT(clk,d:IN BIT;q,qb:OUT BIT);END dff;【例【例2-2】试编写一个写一个D触触发器的器的实体体说明。明。本例中:本例中:实体名:体名:dff类属参数属参数说明明语句:没有句:没有(非必非必须)端口端口说明:明:输入端口入端口 clk,d ;输出端口出端口q,qb。端口端口类型型 BIT。实体体17信息与通信工程学院信息与通信工程学院一、一、一、一、类属参数属参数说明明语句句(GENERIC)类属参数属参数说明明语句必句必须放在端口放在端口说明明语句之前句之前,类属参属参数的数的值可由可由实体外部提供体外部提供,它通常用于,它通常用于设定元件内部定元件内部电路路的的结构和构和规模,模,设计者可从外面通者可从外面通过重新重新设定定类属参数的属参数的值而容易地改而容易地改变元件内部元件内部电路路结构和构和规模。模。类属参数属参数说明明语句的一般句的一般书写格式如下:写格式如下:GENERIC(常数名常数名:数据数据类型型:设定定值;常数名常数名:数据数据类型型:设定定值);其其中中的的常常数数名名由由设计者者定定义,数数据据类型型通通常常取取INTEGER(整整数数)或或TIME等等类型型,设定定值即即为常常数数名名所所代代表表的的值。但但需注意,需注意,综合器只支持整数数据合器只支持整数数据类型型。实体体18信息与通信工程学院信息与通信工程学院【例【例2-3】试编写一个写一个12位二位二进制制计数器的数器的实体体说明。明。ENTITY counter_n IS GENERIC(n:INTEGER:=12);PORT(clk:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(n-1 DOWNTO 0);END counter_n;本例中,定本例中,定义了了类属参数属参数n的的设定定值为12,在后,在后续语句中,句中,用到用到n的地方均可用的地方均可用12代替。本例的第代替。本例的第4行行语句也可写成句也可写成q:OUT STD_LOGIC_VECTOR(11 DOWNTO 0);优点点:当当在在某某个个实体体内内大大量量使使用用某某个个参参数数时,可可把把该参参数数定定义成成类属属参参数数。当当设计者者需需改改变该参参数数的的值时,只只需需在在类属属参参数数语句句中中改改写写一一次次即即可可。从从EDA工工具具综合合的的结果果来来看,将大大地影响看,将大大地影响设计结果的硬件果的硬件规模模。实体体19信息与通信工程学院信息与通信工程学院二、端口二、端口二、端口二、端口说说明明明明(PORT)(PORT)端端口口说明明对设计实体体与与外外部部电路路的的接接口口通通道道进行行了了说明明,包包括括对每每一一接接口口的的输入入输出出模模式式和和数数据据类型型进行行了了定定义。端口端口说明的一般明的一般书写格式如下:写格式如下:PORT(端口名端口名,端口名端口名:端口模式端口模式数据数据类型型;端口名端口名,端口名端口名:端口模式端口模式数据数据类型型);实体体20信息与通信工程学院信息与通信工程学院 端端口口名名是是设计者者赋给每每个个对外外通通道道的的名名字字,它它与与原原理理图中中元元件件符符号号上上的的管管脚脚名名相相类似似。对端端口口的的命命名名可可采采用用英英文文字字母母“A-Z”、“a-z”,阿阿拉拉伯伯数数字字“0-9”,或或底底线符符号号“_”,但但字字符符数数不不能能超超过32个个,不不能能以以数数字字或或“_”开开头,不不能能连续使使用用底底线符符号号“_ _”,也也不不能能以以“_”结束束。每每个个端口名在同一端口名在同一实体中必体中必须是唯一的,不能有重复是唯一的,不能有重复现象。象。端口模式用来端口模式用来说明端口上的数据流明端口上的数据流动方向。方向。端口模式包括端口模式包括IN、OUT、INOUT、BUFFER四种四种类型。型。(1)端口名端口名(2)端口模式端口模式实体体21信息与通信工程学院信息与通信工程学院 1)IN。定。定义的端口的端口为输入端口,可以通入端口,可以通过此端口将外部此端口将外部的其他信号的其他信号读入入设计实体中。体中。2)OUT。定。定义的端口的端口为输出端口,通出端口,通过此端口可将信号此端口可将信号从从设计实体体输出到外部。出到外部。3)INOUT。定。定义的端口的端口为输入入输出双向端口,即出双向端口,即实体可体可以通以通过该端口端口输入外部信号,又可以通入外部信号,又可以通过该端口把端口把实体内体内的信号的信号输出到外部。出到外部。实体体22信息与通信工程学院信息与通信工程学院 4)BUFFER。定。定义的端口的端口为具有数据具有数据读入功能的入功能的输出端出端口。它与口。它与INOUT的区的区别是,是,INOUT是双向端口,即可以是双向端口,即可以输入信号,也可以入信号,也可以输出信号;而出信号;而BUFFER也可以也可以输出出实体信体信号到外部,但作号到外部,但作为输入入时,信号不是由外部,信号不是由外部输入,而是在入,而是在实体内由体内由输出信号反出信号反馈得到,即得到,即BUFFER模式的端口在信模式的端口在信号号输出出实体的同体的同时,也可以被,也可以被实体本身体本身读入。入。(3)数据数据类型型数据数据类型是指端口信号的取型是指端口信号的取值类型。型。1)BIT。二。二进制位制位类型,其取型,其取值是一个是一个1位的二位的二进制数,制数,取取值只能是只能是0或或1。2)BIT_VECTOR。位向量数据。位向量数据类型,其取型,其取值是一是一组二二进制制数,常用来描述数,常用来描述总线等端口,如等端口,如data:IN BIT_VECTOR(3 DOWNTO 0),定,定义了一个具有了一个具有4位位位位宽的的输入数据入数据总线端口。端口。实体体23信息与通信工程学院信息与通信工程学院 3)STD_LOGIC。工。工业标准准逻辑类型,取型,取值有有0、1、Z(高阻高阻)、X(未知未知)等等9种,种,该数据数据类型由型由IEEE库中的中的STD_LOGIC_1164程序包定程序包定义。4)STD_LOGIC_VECTOR。工。工业标准准逻辑向量向量类型,型,是是STD_LOGIC的的组合,也常用来描述合,也常用来描述总线等端口。等端口。5)INTEGER。整数。整数类型,可用作循型,可用作循环的指的指针或常数,或常数,通常不用作通常不用作I/O信号。信号。6)BOOLEAN。布。布尔类型,取型,取值有有FALSE(假假)、TRUE(真真)两种。两种。实体体24信息与通信工程学院信息与通信工程学院关键字说明BOOLEAN布尔类型,取值有FALSE、TURE两种BIT二进制位类型,取值有0、1BIT_VECTOR位向量类型,表示一组二进制数STD_LOGIC工业标准的逻辑类型,取值0、1、X、ZSTD_LOGIC_VECTOR工业标准的逻辑向量类型,是STD_LOGIC的组合INTEGER整数类型,可用做循环的指针或常数常用端口数据常用端口数据类型型实体体25信息与通信工程学院信息与通信工程学院结构体构体 对一个一个设计实体而言,体而言,实体体说明部分描述的是明部分描述的是实体的体的对外接口,并不考外接口,并不考虑实体内部的具体体内部的具体细节。实体的内部体的内部结构与行构与行为由由结构体来描述。构体来描述。结构体是构体是实体的一个重要体的一个重要组成部分,主要用来成部分,主要用来描述描述实体内的硬件体内的硬件结构、元件之构、元件之间的的连接、接、实体所完成的体所完成的逻辑功功能以及数据的能以及数据的传输和和变换等等方面的内容。一个方面的内容。一个实体可以有体可以有一个或多个一个或多个结构体,每个构体,每个结构体可分构体可分别描述描述该实体功能的体功能的不同不同实现方案。方案。结构体一般由两大部分构体一般由两大部分组成:成:l对数据数据类型、常数、信号、子程序和元器件等因素的型、常数、信号、子程序和元器件等因素的说明明;l描述描述实体体逻辑行行为的的功能描述功能描述语句句,包括各种,包括各种顺序序语句和句和并行并行语句。句。结构体构体26信息与通信工程学院信息与通信工程学院一、一、一、一、结结构体的一般构体的一般构体的一般构体的一般书书写格式写格式写格式写格式 ARCHITECTURE 结构体名构体名OF 实体名体名IS 说明明语句句 BEGIN 功能描述功能描述语句句 END 结构体名;构体名;在在书写格式上需注意,写格式上需注意,结构体中构体中“实体名体名”必必须与与实体体说明中的明中的“实体名体名”相一致相一致,而,而“结构体名构体名”可由可由设计者者自己自己选择,但当一个,但当一个实体具有多个体具有多个结构体构体时,各,各结构体名构体名不可重复。不可重复。说明明语句必句必须放在关放在关键词“ARCHITECTURE”和和“BEGIN”之之间,结构体必构体必须以以“END 结构体名构体名;”作作为结束束句。句。结构体构体27信息与通信工程学院信息与通信工程学院二、二、结构体的构体的说明明语句句 结构体中的构体中的说明明语句是句是对结构体的功能描述构体的功能描述语句中要句中要用到的用到的信号信号(SIGNAL)、数据数据类型型(TYPE)、常数常数(CONSTANT)、元件元件(COMPONENT)、函数函数(FUNCTION)和和过程程(PROCEDURE)等加以等加以说明。明。结构体信号定构体信号定义和端口和端口说明一明一样,应有信号名称和有信号名称和数据数据类型定型定义,因是内部,因是内部连接用的信号不需接用的信号不需说明方向。明方向。需要注意的是,在一个需要注意的是,在一个结构体中构体中说明和定明和定义的数据的数据类型、常数、元件、函数和型、常数、元件、函数和过程只能用于程只能用于该结构体中构体中。如果希望如果希望这些定些定义也能用于其他的也能用于其他的实体或体或结构体中,需构体中,需要将其作要将其作为程序包程序包(Package)来来处理。理。结构体构体28信息与通信工程学院信息与通信工程学院三、功能描述三、功能描述三、功能描述三、功能描述语语句句句句 功能描述功能描述语句含有五种不同句含有五种不同类型且以并行方式工作型且以并行方式工作的的语句句结构,构,这可以看成是可以看成是结构体的五个子构体的五个子结构。而在构。而在每一子每一子结构的内部也可能含有构的内部也可能含有顺序运行的序运行的逻辑描述描述语句。句。这就是就是说虽然五个子然五个子结构本身是并行构本身是并行语句,但每个子句,但每个子结构内所包含的构内所包含的语句并不一定是并行句并不一定是并行语句。句。结构体构体29信息与通信工程学院信息与通信工程学院 右右图给出了出了结构体的构体的一般构造一般构造图。可以看出可以看出结构体包构体包含含说明明语句句和和功能描述功能描述语句句。有关常用的子有关常用的子结构构基本基本组成和成和语句描述将句描述将在后在后续内容中介内容中介绍。30信息与通信工程学院信息与通信工程学院四、四、结构体描述方法构体描述方法 n(1)行行为描述法描述法:采用:采用进程程语句,句,顺序描述被称序描述被称设计实体的行体的行为。n(2)数据流描述法数据流描述法:采用:采用进程程语句句顺序描述数据流在控制流作用下序描述数据流在控制流作用下被加工、被加工、处理、存理、存储的全的全过程。程。n(3)结构描述法构描述法,采用并行,采用并行处理理语句描述句描述设计实体内的体内的结构构组织和和元件互元件互连关系。关系。结构体构体31信息与通信工程学院信息与通信工程学院【例【例【例【例2-42-4】试试用用用用VHDLVHDL语语言描述下言描述下言描述下言描述下图图所示所示所示所示电电路。路。路。路。VHDL语言的程序言的程序结构构32信息与通信工程学院信息与通信工程学院 -实体体说明明ENTITY xor2 IS -实体名体名为xor2 PORT(A,B:IN BIT;-A、B为输入引脚入引脚,数据数据类型型BIT Y:OUT BIT);-Y为输出引脚出引脚,数据数据类型型BIT END xor2;-结构体构体ARCHITECTURE arc OF xor2 IS -结构体名构体名为arc SIGNAL temp1,temp2,temp3:BIT;-类属参数属参数说明明语句句BEGIN -开始开始结构体描述构体描述temp1=A NAND B;-A和和B与非运算与非运算,结果果赋给temp1k temp2=A NAND temp1;-A和和temp1与非运算与非运算给temp2l temp3=B NAND temp1;-B和和temp1与非运算与非运算给temp3m Y=temp2 NAND temp3;n END arc;-结束束结构体描述构体描述VHDL语言的程序言的程序结构构33信息与通信工程学院信息与通信工程学院 在上述例子中,在上述例子中,temp1、temp2、temp3和和Y这四条四条赋值语句之句之间是并行运行的关系,即它是并行运行的关系,即它们的的执行是同步的。行是同步的。只要某个信号只要某个信号发生生变化,都会立即引起相化,都会立即引起相应的的语句被句被执行,行,产生相生相应的的输出,而不管出,而不管该语句的句的书写先后写先后顺序。序。这一点和一点和传统的程序的程序设计语言的言的顺序序执行情况是不行情况是不同的,但它和硬件同的,但它和硬件电路的工作情况相一致,路的工作情况相一致,这种种并行的并行的执行方式行方式是是VHDL与与传统程序程序语言的最言的最显著区著区别。VHDL语言的程序言的程序结构构34信息与通信工程学院信息与通信工程学院第二章VHDL基本概念基本概念 硬件描述语言概述VHDL程序的实体和结构体 VHDL程序的库和程序包35信息与通信工程学院信息与通信工程学院一、一、一、一、库库(LIBRARY)库是是经编译后数据的集合,它可以是后数据的集合,它可以是预先定先定义好的数好的数据据类型,也可以是已型,也可以是已编译过的的设计单元元(包括包括实体体说明、明、结构体、程序包等构体、程序包等)。因此可以。因此可以把把库看成是用于存放看成是用于存放预先先完成的数据完成的数据类型和源型和源设计单元的元的仓库。如果在一。如果在一项VHDL设计中中要用到要用到库中的信息,就必中的信息,就必须在在这项设计中中预先打先打开开这个个库。在。在综合合过程中,每当程中,每当综合器遇到合器遇到库语言,就言,就可将可将库指定的源文件指定的源文件读入,并参与入,并参与综合。合。库的的语句句书写格式如下:写格式如下:LIBRARY 库名;名;VHDL的库36信息与通信工程学院信息与通信工程学院1IEEE库。IEEE库是是VHDL设计中中最常用的最常用的库,它包含了,它包含了IEEE标准的程序包和其他一些支持工准的程序包和其他一些支持工业标准的程序包。准的程序包。IEEE库中主要包括中主要包括STD_LOGIC_1164、STD_LOGIC_UNSIGNED、STD_LOGIC_SIGNED等等标准准程序包,其中的程序包,其中的STD_LOGIC_1164是最重要和最常用的程序是最重要和最常用的程序包。使用包。使用IEEE库时必必须先用先用语句句LIBRARY IEEE声明。声明。2STD库。STD库是是VHDL的的标准准库。在利用。在利用VHDL进行行设计时,可以自,可以自动使用使用这个个库,而不必像,而不必像IEEE库那那样需首先声需首先声明。因此明。因此类似似“LIBRARY STD;”的的语句是不必要的。句是不必要的。库的分的分类VHDL的的库37信息与通信工程学院信息与通信工程学院3WORK库。WORK库是是VHDL设计的的现行工作行工作库,用于存,用于存放用放用户设计和定和定义的一些的一些设计单元和程序包。因此它自元和程序包。因此它自动满足足VHDL标准,在准,在实际调用用时不必不必预先声明,所以像先声明,所以像“LIBRARY WORK;”的的语句也是不必要的。句也是不必要的。在在PC或工作站上利用或工作站上利用VHDL进行行项目目设计时,不允,不允许在在根目根目录下下进行,而必行,而必须为此此设定一个文件定一个文件夹,用于保存此,用于保存此项目的目的设计文件。文件。VHDL综合器将此文件合器将此文件夹默默认为WORK库。必必须注意,工作注意,工作库并非文件并非文件夹的名称,而是一个的名称,而是一个逻辑名,名,综合器将指向合器将指向该文件文件夹的路径。的路径。4用用户自定自定义库。用于。用于为自身自身设计需要所开需要所开发的共用程序包的共用程序包河河实体等,也可以体等,也可以汇集在一起定集在一起定义成一个成一个库。VHDL的的库38信息与通信工程学院信息与通信工程学院 在一个在一个库中往往有很多可使用的中往往有很多可使用的资源,源,这些些资源通常存源通常存放在不同的程序包中。使用放在不同的程序包中。使用时,除了声明所在的,除了声明所在的库外,外,还要要说明使用的是明使用的是该库中的哪个程序包。中的哪个程序包。说明明书写格式如下。写格式如下。LIBRARY 库名名;USE 库名名.程序包名程序包名.使用的范使用的范围;例如要使用例如要使用IEEE库的的STD_LOGIC_1164程序包中的所有内程序包中的所有内容,可如下容,可如下书写:写:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;注意注意:库说明明语句的作用范句的作用范围从一个从一个实体体说明开始到它所属明开始到它所属的的结构体、配置构体、配置为止。当一个源程序中出止。当一个源程序中出现多个多个实体体时,库说明明语句句应在每个在每个设计实体体说明明语句之前重复句之前重复书写。写。VHDL的的库39信息与通信工程学院信息与通信工程学院二、二、二、二、程序包程序包 在在实体体中中定定义的的各各种种数数据据类型型、数数据据对象象等等信信息息只只能能局局限限在在该实体体内内调用用,其其他他实体体是是不不可可用用的的。为了了使使这些些信信息息能能够被被其其他他设计实体体所所使使用用,需需要要把把这些些信信息息收收集集在在一一个个VHDL程程序序包包中中并并入入库,这些些信信息息就就成成为公公共共信信息息,其其他他设计实体就可以使用体就可以使用这些公共信息。些公共信息。程程序序包包一一般般由由程程序序包包首首和和程程序序包包体体两两部部分分组成成。其其语句句书写格式如下。写格式如下。-程序包首程序包首PACKAGE 程序包名程序包名IS 说明明语句句 END 程序包名程序包名;程序包程序包40信息与通信工程学院信息与通信工程学院 -程序包体程序包体PACKAGE BODY 程序包名程序包名IS 程序包体程序包体说明明语句句 END 程序包名程序包名;为了方便了方便设计,VHDL提供了一些提供了一些标准的程序包,如准的程序包,如STANDARD,它定,它定义了若干数据了若干数据类型、子型、子类型和函数。另外,型和函数。另外,在在IEEE库中中还有一些常用的程序包,有一些常用的程序包,这些程序包已些程序包已编译过,在使用在使用时,只需声明,只需声明库和使用的程序包即可。和使用的程序包即可。程序包程序包41信息与通信工程学院信息与通信工程学院库库 名名程序包名程序包名包中预定义的内容包中预定义的内容STDSTANDARDVHDLVHDL类型,如类型,如BIT,BIT_VECTORBIT,BIT_VECTORIEEESTD_LOGIC_1164定义了定义了STD_LOGICSTD_LOGIC,STD_LOGIC_VECTORSTD_LOGIC_VECTOR等数据类型等数据类型IEEESTD_LOGIC_UNSIGNED定义了基于定义了基于STD_LOGICSTD_LOGIC与与STD_LOGIC_VECTORSTD_LOGIC_VECTOR类型上的无类型上的无符号的算术运算符号的算术运算IEEESTD_LOGIC_SIGNED定义了基于定义了基于STD_LOGICSTD_LOGIC与与STD_LOGIC_VECTORSTD_LOGIC_VECTOR类型上的有类型上的有符号的算术运算符号的算术运算IEEESTD_LOGIC_ARITH定义了有符号与无符号类型,定义了有符号与无符号类型,及基于这些类型上的算术运算及基于这些类型上的算术运算VHDL标准程序包准程序包42信息与通信工程学院信息与通信工程学院习题n1什么是什么是Top-Down设计方式?方式?n2CPLD和和FPGA的主要区的主要区别是什么?是什么?n3.简述述CPLD/FPGA的的设计流流程程,并并解解释其中的主要概念。其中的主要概念。n4.什么是什么是时序仿真序仿真?什么是功能仿真?什么是功能仿真?n5.VHDL语言言有有什什么么特特点点?它它的的基基本本结构构分分成成几几个个部部分分?试简要要说明明每每一一部部分分的的功功能和格式。能和格式。第一次作第一次作业题:43
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服