行为描述
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
行为描述
如果VHDL 的结构体只描述了所设计模块的功能或者说模块行为,而没有直接描述实现这些行为的硬件的结构,包括硬件特性、连线方式、逻辑行为方式,则称这种描述方式为行为描述。行为描述只表示输入与输出间转换的行为,它不包含任何结构信息;是以算法形式对系统模型、功能的描述,与硬件结构无关。抽象程度最高。常用语句:进程、过程、函数。
在应用VHDL进行系统设计时,行为描述方式是最重要的逻辑描述方式,行为描述方式是VHDL编程的核心。只有VHDL作为硬件电路的行为描述语言,才能满足自顶向下设计流程的要求,从而成为电子线路系统级仿真和设计的最佳选择。本书中大量采用了行为描述方式来进行设计,如例3.50,这里不再单独举例说明。
数据流描述
数据流描述风格,也称RTL描述方式。RTL 是寄存器传输语言的简称。RTL级描述是以规定设计中的各种寄存器形式为特征,然后在寄存器之间插入组合逻辑。这类寄存器或者显式地通过元件具体装配,或者通过推论作隐含的描述。
一般地,VHDL的RTL描述方式类似于布尔方程,可以描述时序电路,也可以描述组合电路,它既含有逻辑单元的结构信息,又隐含表示某种行为,数据流描述主要是指非结构化的并行语句描述。例3.51所示,采用数据流的描述方式实现了半减器。
【例3.51】半减器:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
entity halfdec is
port(a,b:in std_logic;
borrow,y:out std_logic);
end halfdec;
architecture a of halfdec is
begin
y<=a xor b;
borrow<=not a and b;
end a;
数据流的描述风格是建立在用并行信号赋值语句描述基础上的,数据流描述方式能比较直观地表达底层逻辑行为。
结构化描述
VHDL结构型描述风格是基于元件例化语句或生成语句的应用,利用这种语句可以用不同
类型的结构,来完成多层次的工程,即从简单的门到非常复杂的元件(包括各种已完成的设计实体子模块)来描述整个系统。元件间的连接是通过定义的端口界面来实现的,其风格最接近实际的硬件结构,即设计中的元件是互连的。
结构描述就是表示元件之间的互连,这种描述允许互连元件的层次化设计。图3.18所示,为一位全加器的结构图。例3.52是对该全加器的结构化描述。
图3.18 一位全加器的基本结构
【例3.52】一位全加器的结构化描述:
library ieee;
use ieee.std_logic_1164.all;
entity f_adder is
port(ain,bin,cin:in std_logic;
cout,sum: out std_logic);--定义全加器的输入输出端口
end entity f_adder;
architecture hh of f_adder is
component halfdder --调用库元件“半加器”
port (a,b:in std_logic;
co,so:out std_logic);
end component h_adder;
component or1――调用库元件“或门”
port(a,b: in std_logic;
c: out std_logic);
end component;
signal d,e,f:std_logic; --信号赋值语句
begin
U1:halfadder port map(a=>ain,b=>bin,co=>d,so=>e);
U2:halfadder port map(a=>e,b=>cin,co=>f,so=>sum);
U3:or1 port map( a=>d,b=>f,c=>cout);
end hh;
利用结构描述方式,可以采用结构化、模块化设计思想将一个大的设计划分为许多小的模块,逐一设计调试完成,然后利用结构描述方法将它们组装起来,形成更为复杂的设计。