《电子设计自动化EDA》第三章 VHDL的描述风格.doc
文本预览下载声明
第三章 VHDL的描述风格
3.1 行为描述方式
总目录
章目录
第一节
第二节
第三节
第四节
3.2 数据流描述方式(RTL描述方式)
3.3 结构化描述方式
3.4 混合描述风格
VHDL语言是通过结构体具体描述整个设计实体的
逻辑功能。
通常结构体有四种不同的描述方式:
行为描述方式(behavior)
数据流描述方式(dataflow)或寄存器RTL描述方式
结构化描述方式(structural)
总目录
章目录
第一节
第二节
第三节
第四节
混合描述方式。
VHDL通过这四种不同的描述方式从不同的侧面描述
结构体的功能。前三种是最基本的描述方式,他们组合起
来就成为混合描述方式。
下面结合一个全加器来说明这四种描述风格,全加器
的端口示意图如图所示,其输入输出关系如表所示。
全加器的输入输出关系
全加器框图
总目录
章目录
第一节
第二节
第三节
第四节
3.1 行为描述方式
行为描述输入与输出间转换的行为,不需包含任何结
构信息,它对设计实体按算法的路径来描述。
总目录
章目录
第一节
第二节
第三节
第四节
行为描述在EDA工程中通常被称为高层次描述,设计
工程师只需要注意正确的实体行为、准确的函数模型和
精确的输出结果就可以了,无需关注实体的电路组织和
门级实现。
例:基于全加器真值表采用行为描述方式设计的全加器
(1位二进制数全加)
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 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 x = ’1’ THEN
n := n+1;
END IF;
输入
输出
对照真值表解释程序
IF y = ’1’ THEN
n:=n+1;
END IF;
c_in
0
0
0
0
1
x
0
0
1
1
0
y
0
1
0
1
0
c_out
0
0
0
1
0
sum
0
1
1
0
1
总目录
IF c_in = ’1’ THEN
1
0
1
1
0
章目录
n:=n+1;
END IF;
(0 TO 3)
1
1
1
1
0
1
1
1
0
1
第一节
sum = sum_vector (n) AFTER 2*tpd;
sum_vector初值为 “0101”
第二节
第三节
c_out = carry_vector (n) AFTER 3* tpd;
END PROCESS;
第四节 END behav;
(0 TO 3)
carry_vector初值为 “0011”
3.2 数据流描述方式
数据流描述方式表示行为,也隐含表示结构,它描述
了数据流的运动路线、运动方向和运动结果。
对于全加器,用布尔方程描述其逻辑功能如下:
总目录
章目录
第一节
第二节
第三节
第四节
s = x XOR y
sum = s XOR c_in
c_out = (x AND y) OR( s AND c_in)
下面是基于上述布尔方程的数据流风格的描述:
例:采用数据流描述方式的全加器
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 dataflow OF full_adder IS
BEGIN
s = x XOR y AFTER tpd;
sum = s XOR c_in AFTER tpd;
c_o
显示全部