VHDL的描述风格.ppt_第1页
VHDL的描述风格.ppt_第2页
VHDL的描述风格.ppt_第3页
VHDL的描述风格.ppt_第4页
VHDL的描述风格.ppt_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VHDL的描述风格,1 行为描述方式 2 数据流描述方式(RTL描述方式) 3 结构化描述方式,VHDL语言是通过结构体具体描述整个设计实体的逻辑功能。通常结构体有四种不同的描述方式:行为描述方式(behavior)、数据流描述方式(dataflow)或寄存器RTL描述方式、结构化描述方式(structural)以及混合描述方式。VHDL通过这四种不同的描述方式从不同的侧面描述结构体的功能。前三种是最基本的描述方式,他们组合起来就成为混合描述方式。 下面结合一个全加器来说明这四种描述风格,全加器的端口示意图如图所示,其输入输出关系如表所示。,全加器的输入输出关系,输入 输出 c_in x y

2、c_out sum 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1,全加器框图,一、 行为描述方式,行为描述输入与输出间转换的行为,不需包含任何结构信息,它对设计实体按算法的路径来描述。行为描述在EDA工程中通常被称为高层次描述,设计工程师只需要注意正确的实体行为、准确的函数模型和精确的输出结果就可以了,无需关注实体的电路组织和门级实现。,例 1 : 1位二进制数全加器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full_ad

3、der IS PORT(x,y,c_in : IN STD_LOGIC; Sum, c_out : OUT STD_LOGIC); END full_adder; ARCHITECTURE behav OF full_adder IS BEGIN PROCESS (x, y, c_in) VARIABLE n: INTEGER; CONSTANT sum_vector: STD_LOGIC_VECTOR (0 TO 3) := “0101”; CONSTANT carry_vector: STD_LOGIC_VECTOR (0 TO 3) := “0011”;,BEGIN n := 0; IF

4、 x = 1 THEN n := n+1; END IF; IF y = 1 THEN n:=n+1; END IF; IF c_in = 1 THEN n:=n+1; END IF; - (0 TO 3) sum = sum_vector (n) AFTER 2*tpd; - - sum_vector初值为“0101” c_out = carry_vector (n) AFTER 3*tpd; - - carry_vector初值为“0011” END PROCESS; - (0 TO 3) END behav;,输入 输出 c_in x y c_out sum 0 0 0 0 0 0 0

5、1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1,对照真值表解释程序,二、数据流描述方式 数据流描述方式表示行为,也隐含表示结构,它描述了数据流的运动路线、运动方向和运动结果。,对于全加器,用布尔方程描述其逻辑功能如下: s = x XOR y sum = s XOR c_in c_out = (x AND y) OR( s AND c_in),下面是基于上述布尔方程的数据流风格的描述:,例 2 :全加器 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full

6、_adder IS GENERIC(tpd : TIME := 10 ns); PORT(x,y,c_in : IN STD_LOGIC; Sum, c_out : OUT STD_LOGIC); END full_adder; ARCHITECTURE dataflow OF full_adder IS BEGIN s = x XOR y AFTER tpd; sum = s XOR c_in AFTER tpd; c_out = (x AND y) OR( s AND c_in) AFTER 2* tpd; END dataflow;,三、结构描述方式,结构化描述方式就是在多层次的设计中,

7、高层次的设计可以调用低层次的设计模块,或直接用门电路设计单元来构成一个复杂逻辑电路的方法。利用结构化描述方法将已有的设计成果方便地用于新的设计中,能大大提高设计效率。在结构化描述中,建模的焦点是端口及其互连关系。,三、结构描述方式,结构化描述的建模步骤如下: (1)元件说明 (2)元件例化 (3)元件配置 元件说明用于描述局部接口;元件例化是要相对于其他元件来放置该元件;元件配置用于指定元件所用的设计实体。,对于上图给出的全加器端口结构,可以认为它是由两个半加器和一个或门组成的 。 基于上图所示的结构,可以写出全加器的结构化描述设计程序如下。,例:全加器的结构化描述 LIBRARY IEEE;

8、 USE IEEE.STD_LOGIC_1164.ALL; ENTITY half_adder IS GENERIC(tpd:TIME:=10 ns); PORT(in1, in2: IN STD_LOGIC; sum, carry: OUT STD_LOGIC); END half_adder; ARCHITECTURE rtl OF half_adder IS BEGIN PROSESS (in1, in2),BEGIN sum = in1 XOR in2 AFTER tpd; carry = in1 AND in2 AFTER tpd; END PROCESS; END rtl; - -

9、半加器设计完毕 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY or_gate IS GENERIC(tpd:TIME:=10 ns); PORT(in1, in2: IN STD_LOGIC; out1: OUT STD_LOGIC); END or_gate;,ARCHITECTURE rtl OF or_gate IS BEGIN out1 = in1 OR in2 AFTER tpd; END rtl; - - 或门设计完毕 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full_

10、adder IS GENERIC(tpd:TIME:=10 ns); PORT(x,y,c_in: IN STD_LOGIC; Sum, c_out: OUT STD_LOGIC); END full_adder;,ARCHITECTURE structural OF full_adder IS SIGNAL a, b, c:STD_LOGIC; COMPONENT half_adder PORT(in1, in2: IN STD_LOGIC; sum, carry: OUT STD_LOGIC); END COMPONENT; COMPONENT or_gate PORT(in1, in2:

11、 IN STD_LOGIC; out1: OUT STD_LOGIC); END COMPONENT; FOR u1,u2 : half_adder USE ENTITY WORK.half_adder (rtl); FOR u3: or_gate USE ENTITY WORK. or_gate (trl);,BEGIN u1: half_adder PORT MAP (x, y, b, a); u2: half_adder PORT MAP (c_in, b, sum, c); u3: or_gate PORT MAP (c, a, c_out); END structural;,由上例可

12、见,对于一个复杂的电子系统,可以将其分解为若干个子系统,每个子系统再分解成模块,形成多层次设计。这样,可以使更多的设计者同时进行合作。在多层次设计中,每个层次都可以作为一个元件,再构成一个模块或系统,可以先分别仿真每个元件,然后再整体调试。所以说结构化描述不仅是一种设计方法,而且是一种设计思想,是大型电子系统高层次设计的重要手段。,四、混合描述风格,在实际设计工作中,可以采用上述三种描述方式的任意组合,这就是混合描述。同样还是图所给出端口结构的全加器模型,其混合描述方式如下。,例:全加器的混合描述 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTIT

13、Y xor_gate IS GENERIC(tpd:TIME:=10 ns); PORT(in1,in2: IN STD_LOGIC; out1: OUT STD_LOGIC); END xor_gate;,ARCHITECTURE behavioral OF xor_gate IS BEGIN out1 = in1 XOR in2 AFTER tpd; END behavioral; LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; ENTITY full_adder IS GENERIC(tpd:TIME:=10 ns); PORT(x,y,c_in: IN STD_LOGIC; Sum, c_out: OUT STD_LOGIC); END full_adder;,ARCHITECTURE mix OF full_adder IS COMPONENT xor_gate PORT(in1, in2: IN STD_LOGIC; out1: OUT STD_LOGIC); END COMPONENT

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论