VHDL硬件描述语言 (2).ppt
《VHDL硬件描述语言 (2).ppt》由会员分享,可在线阅读,更多相关《VHDL硬件描述语言 (2).ppt(105页珍藏版)》请在三一办公上搜索。
1、4.1 VHDL概述 4.2 VHDL语言基础知识4.3 VHDL的基本语句4.4 VHDL的子程序,第四章 VHDL硬件描述语言,4.1 VHDL概述,一、VHDL语言及产生背景二、VHDL的特点,4.1 VHDL概述,一、VHDL语言及产生背景 VHDL(Very High Speed Integrated Circuit Hardware Description Language)即超高速集成电路硬件描述语言。美国国防部在20世纪80年代初为其超高速集成电路VHSIC计划提出的硬件描述语言,它是硬件设计者和EDA工具之间的界面。设计者使用HDL来描述自己的设计,并把这个描述告诉EDA工具
2、,最后在EDA工具的帮助下进行详细地设计及验证。,4.1 VHDL概述,产生背景:美国国防部电子系统项目有着众多的承包商,他们各自建立和使用自己的电路硬件描述语 言,这就使得各公司之间的设计不能被重复利用,造成了信息交换和维护方面的困难。为解决此问题,20世纪80年代初美国国防部制定了VHDL,以作为各承包商之间提交复杂电路设计文档的一种标准方案。1987年12月,VHDL被正式接受为国际标准,编号为IEEE Std1076-1987,即VHDL87。1993年被更新为IEEE Std1164-1993,即VHDL93。,4.1 VHDL概述,功能强大,描述力强。可移植性好。研制周期短,成本低
3、。可以延长设计的生命周期。具有向ASIC移植的能力。,二、VHDL的特点,4.1 VHDL概述,三、VHDL和VerilogHDL的比较,1.一般的硬件描述语言可以在三个层次上进行电路描述,其描述层次依次可分为行为级、RTL级和门电路级。Verilog属于RTL级硬件描述语言,通常只适用于RTL级和更低层次的门电路级描述。VHDL更适合于行为级(也包括RTL级)的描述,也称行为描述语言。,2.由于任何一种硬件描述语言源程序最终都要转换成门电路级才能被布线器或适配器所接受,Verilog语言源程序的综合过程稍简单,只要经过RTL门电路级的转化即可;而VHDL语言源程序的综合则通常要经过行为级RT
4、L门电路级的转化方可。,4.1 VHDL概述,3.VHDL语言是一种高级描述语言,适用于电路高级建模,比较适合于CPLD/FPGA目标器件的设计,或间接方式的ASIC设计;而Verilog语言则是一种较低级的描述语言,更适用于描述门级电路,易于控制电路资源,因此更适用于直接的集成电路或ASIC设计。,4.VHDL和Verilog语言的共同特点是:能形式化地抽象表示电路的结构和行为,支持逻辑设计中层次与领域的描述,可借用高级语言的精巧结构来简化电路的描述,具有电路仿真与验证机制以保证设计的正确性,支持电路描述由高层到低层的综合转换,便于文档管理,易于理解和设计重用。,4.1 VHDL概述,5.V
5、HDL和Verilog语言的主要区别在于逻辑表达的描述级别。VHDL虽然也可以直接描述门电路,但这方面的能力却不如Verilog语言,而Verilog语言在高级描述方面不如VHDL语言。VHDL语言更适合于描述电路的行为,其先进行行为描述,然后由综合器根据功能要求来生成符合要求的电路网表;Verilog语言的描述风格接近于电路原理图,从某种意义上说,它是电路原理图的高级文本表示方式。,6.VHDL语言描述层次较高,不易控制底层电路,因而对VHDL综合器的综合性能要求较高。只要熟悉基本单元电路的描述风格,综合后的电路还是易于控制的。在Verilog设计中,工作量通常比较大,因为设计者需要搞清楚具
6、体电路的细节。目前,大多数软件都支持VHDL和Verilog语言混合设计.,4.2 VHDL语言基础知识,一、VHDL的程序结构二、VHDL的语言元素,4.2 VHDL语言基础知识,一、VHDL的程序结构,五个部分,实体(Entity),结构体(Architecture),配置(Configuration),程序包(Package),库(Library),可选,实体和结构体是VHDL设计文件的两个基本组成部分。实体描述设计系统的外部接口信号.结构体用于描述系统的行为、系统数据的流程或者系统组织结构形式(即系统的内部电路)。配置用于从库中选取所需元件安装到设计单元的实体中。包集合存放各设计模块能
7、共享的数据类型、常数、子程序等。库用于存放已编译的实体、结构体、包集合和配置。,4.2 VHDL语言基础知识,LIBRARY 库名;库USE 库名.程序包名.;程序包ENTITY 实体名 IS 实体PORT();END 实体名;ARCHITECTURE 结构体名 OF 实体名结构体()END 结构体名;,VHDL源文件基本格式,4.2 VHDL语言基础知识,VHDL源程序基本格式举例:,ENTITY test ISPORT(input_pin_name:IN bit;output_pin_name:OUT bit);END test;ARCHITECTURE test_body OF test
8、 ISBEGINoutput_pin_name=input_pin_name;END test_body;,4.2 VHDL语言基础知识,4.2 VHDL语言基础知识,例4-1 与门的逻辑描述,1、实体,格式,ENTITY 实体名 IS GENERIC(类属表);PORT(端口表);END 实体名;,实体说明所设计的逻辑电路的输入、输出信号及其特性(输入、输出、双向),在层次化系统设计中,实体是整个模块或整个系统的输入/输出;在一个器件级的设计中,实体是一个芯片的输入/输出。,4.2 VHDL语言基础知识,说明,PORT(端口名:端口模式 数据类型;端口名:端口模式 数据类型);,端口名是设计
9、者为实体的每一个对外通道所取的名字 端口模式是指这些通道上的数据流动方式 数据类型是指端口上流动的数据的表达格式或取值类型,VHDL要求只有相同数据类型的端口信号和操作数才能相互作用。实体名、端口名等均为符合VHDL命名规则的标识符,PORT说明语句是对一个设计实体界面的说明及对设计实体与外部电路的接口通道的说明,其中包括对每一接口的输入输出模式和数据类型的定义。它是设计实体和外部环境动态通信的通道,其功能对应于电路符号的一个引脚。,格式,4.2 VHDL语言基础知识,说明,IN 输入,信号只能自端口到实体 OUT 输出,信号只能自实体到端口 INOUT 双向,信号既可输入又可输出 BUFFE
10、R 缓冲,信号自实体输出,又有 内部反馈,几种常用端口模式,4.2 VHDL语言基础知识,Out与Buffer的区别,Entity test1 is port(a:in std_logic;b,c:out std_logic);end test1;architecture a of test1 is begin b=not(a);c=b;-Errorend a;,Entity test2 is port(a:in std_logic;b:buffer std_logic;c:out std_logic);end test2;architecture a of test2 isbegin b=n
11、ot(a);c=b;end a;,4.2 VHDL语言基础知识,4.2 VHDL语言基础知识,图4.3 四位加法器add4电路符号,ENTITY add4 IS PORT(a,b:IN STD_LOGIC_VECTOR(3 downto 0);Ci:IN STD_LOGIC;Sum:OUT STD_LOGIC_VECTOR(3 downto 0);Co:OUT STD_LOGIC);END add4;,例4-2 四位全加器实体说明程序,2、结构体,格式,对数据类型、常数、信号、子程序和元件 等元素的说明 描述实体逻辑行为,ARCHITECTURE 结构体名 OF 实体名 IS 说明语句BEGI
12、N 功能描述、并行处理语句END 结构体名;,4.2 VHDL语言基础知识,功能,4.2 VHDL语言基础知识,“结构体名”原则上可以是任意合法的标识符。为了提高程序的可读性,通常依据该结构体所采用的描述方式,用相应的英文单词如:behavior(行为)、dataflow(数据流)、structure(结构)或它们的缩略形式为其命名。“实体名”说明该结构体隶属于哪个实体。“定义语句”用于对该结构体内部使用的信号、常数、数据类型、函数进行定义。特别需要注意的是:实体说明中定义的I/O信号为外部信号,而结构体定义的信号为内部信号。“并行处理语句”是结构体功能描述的主要语句。该语句可以是赋值语句、元
13、件调用语句、进程语句、块语句、子程序等。需要注意的是:这些语句是并行执行的,此并行性是由硬件本身的并行性决定的。,说明,ARCHITECTURE one OF mux21a ISBEGIN y=a WHEN s=0 ELSE b;END one;,结构体,举例:2选1多路选择器的VHDL结构体描述,4.2 VHDL语言基础知识,ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT);END mux21a;ARCHITECTURE one OF mux21a IS BEGIN y=a WHEN s=0 ELSE b;END one;,2选1多路选
14、择器的VHDL描述,4.2 VHDL语言基础知识,例4.3 八选一数据选择器,4.2 VHDL语言基础知识,LIBRARY IEEE;ENTITY mux8 IS PORT;(I0,I1,I2,I3,I4,I5,I6,I7,A,B,C:IN STD_LOGIC;Y:OUT STD_LOGIC);END mux8;ARCHITECTURE behav OF mux8 IS SIGNAL sel:INTEGER;BEGIN Y=I0 WHEN sel=0 ELSE I1 WHEN sel=1 ELSE I2 WHEN sel=2 ELSE I3 WHEN sel=3 ELSE I4 WHEN se
15、l=4 ELSE I5 WHEN sel=5 ELSE I6 WHEN sel=6 ELSE I7;Sel=0 WHEN A=0 AND B=0 AND C=0 ELSE 1 WHEN A=0 AND B=0 AND C=1 ELSE 2 WHEN A=0 AND B=1 AND C=0 ELSE 3 WHEN A=0 AND B=1 AND C=1 ELSE 4 WHEN A=1 AND B=0 AND C=0 ELSE 5 WHEN A=1 AND B=0 AND C=1 ELSE 6 WHEN A=1 AND B=1 AND C=0 ELSE 7;END behav;,说明:sel代表控
16、制信号的当前取值,由sel选择八个输入中的一个送给输出Y。从顺序上看,计算sel在使用sel之后,但实际上,位于结构体中的两个赋值语句并行工作,该程序是正确的。建议实际编写时将计算sel放在前,这样易于理解和阅读。,4.2 VHDL语言基础知识,结构体的描述方法:行为描述法、数据流描述法、结构描述法,结构体的行为描述 结构体的行为描述是对设计实体按算法的路径来描述,即描述该设计单元的功能。主要使用函数、过程和进程语句,以算法形式描述数据的变换和传递。,例4.4 用行为描述法设计四位比较器LIBRARY IEEE;ENTITY comp4 IS PORT(a,b:IN STD_LOGIC_VEC
17、TOR(3 downto 0);y:OUT STD_LOGIC);END comp4;ARCHITECTURE ehavior OF comp4 BEGIN comp:PROCESS(a,b)BEGIN IF a=b THEN y=1;ELSE y=0;ENDIF;END PROCESS comp;END behavio;,4.2 VHDL语言基础知识,结构体的数据流描述法 结构体的数据流描述法类似于寄存器传输级的描述方法,它描述了数据流的运动路径、运动方向和运动结果。,此程序的数据流程为:当a=b时,y=1;其余时间y=0。数据流描述的语句与行为描述的语句不同。数据流描述法采用并发信号赋值语
18、句,而不是进程语句。CASE-WHEN、WITH-SELECT-WHEN是数据流描述法常用的语句。,例4.5 用数据流描述法设计四位比较器LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY comp4 IS PORT(a,b:IN STD_LOGIC_VECTOR(3 downto 0);y:OUT STD_LOGIC);END comp4;ARCHTECTURE dataflow OF comp4 ISBEGIN y=1 WHEN(a=b)ELSE 0;END dataflow;,4.2 VHDL语言基础知识,结构体的结构化描述法结构体的结构化描述
19、法描述该设计单元的硬件结构,即该硬件是如何构成的。该描述法主要使用元件例化语句及配置指定语句来描述元件的类型及元件之间的互连关系。,例4.6 用结构化描述法设计四位比较器LIBRARY IEEE;ENTITY comp4 IS PORT(a,b:IN STD_LOGIC_VECTOR(3 downto 0);y:OUT STD_LOGIC);END comp4;ARCHITECTURE structural OF comp4 ISCOMPONENT xnor2 PORT(in1,in2:IN STD_LOGIC;out:OUT STD_LOGIC);END COMPONENT;COMPONEN
20、T and4 PORT(in1,in2,in3,in4:IN STD_LOGIC;out:OUT STD_LOGIC);END COMPONENT;SIGNAL s:STD_LOGIC(0 TO 3);BEGIN u0:xnor2 PORT MAP(a(0),b(0),s(0);u1:xnor2 PORT MAP(a(1),b(1),s(1);u2:xnor2 PORT MAP(a(2),b(2),s(2);u3:xnor2 PORT MAP(a(3),b(3),s(3);u4:and4 PORT MAP(s(0),s(1),s(2),s(3),y);END structural;,3、配置,
21、CONFIGURATION 配置名 OF 实体名 IS 说明语句;END 配置名;,格式,配置语句(Configuration)用于描述层与层之间的连接关系和实体与结构体之间的连接关系。它主要用于指定与实体对应的结构体。这种配置用于选择不包含块(BLOCK)和元件(COMPONENTS)的构造体。在配置语句中只包含有实体所选配的构造体名,其他什么也没有。,4.2 VHDL语言基础知识,说明,4.2 VHDL语言基础知识,说明语句形式有多种:对于不含块语句(BLOCK)和元件语句(COMPONENTS)的结构,可使用如下形式:FOR 选配结构体名END FOR 对于包含COMPONENTS语句的
22、结构体,可使用如下的配置形式:FOR 选配结构体名 FOR 元件标号表:元件型号 USE ENTITY WORK.实体名(结构体名);END FOR;END FOR;利用配置语句将例4-4、例4-5和例4-6三个独立的例子合在一起,组成一个含有一个实体和三个结构体的新设计文件,例如4-7。,说明,4.2 VHDL语言基础知识,例4.7 加入了配置的四位比较器设计文件LIBRARY IEEE;ENTITY comp4 IS PORT(a,b:IN STD_LOGIC_VECTOR(3 DOWNTO 0);y:OUT STD_LOGIC);END comp4;ARCHITECTURE behavi
23、o OF comp4 BEGIN comp:PROCESS(a,b)BEGIN IF a=b THEN y=1;ELSE y=0;ENDIF;END PROCESS comp;END behavio;,ARGHTECTURE dataflow OF comp4 IS BEGIN y=1 WHEN(a=b)ELSE 0;END dataflow;ARCHITECTURE structural OF comp4 IS COMPONENT xnor2 PORT(in1,in2:IN STD_LOGIC;out:OUT STD_LOGIC);END COMPONENT;COMPONENT and4 P
24、ORT(in1,in2,in3,in4:IN STD_LOGIC;out:OUT STD_LOGIC);END COMPONENT;SIGNAL s:STD_LOGIC(0 TO 3);BEGIN u0:xnor2 PORT MAP(a(0),b(0),s(0);u1:xnor2 PORT MAP(a(1),b(1),s(1);u2:xnor2 PORT MAP(a(2),b(2),s(2);u3:xnor2 PORT MAP(a(3),b(3),s(3);u4:and4 PORT MAP(s(0),s(1),s(2),s(3),y);END structural;CONFIGUATION c
25、omp4_con OF comp4 IS FOR behavio END FOR;END comp4_con;,若要对structural结构体中的元件xnor2、and4进行配置,则需要在该结构体中增加如下配置语句,CONFIGUATION comp4_con OF comp4 IS FOR u1:xnor2 USE ENTITY WORK.xnor2END FOR;FOR u2:and4 USE ENTITY WORK.and4END FOR;END comp4_con;,4、包集合 为使一组类型说明、常量说明和子程序说明能被其他的设计实体及其结构体所引用,VHDL提供了程序包(包集合)结
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VHDL硬件描述语言 2 VHDL 硬件 描述 语言

链接地址:https://www.31ppt.com/p-6522927.html