电子设计自动化技术
第三章
构造体的三种描述方式
本章要点
? 进一步认识构造体在VHDL中的作用。
? 构造体的三种描述方式:
行为描述
RTL描述
结构描述
? 深入理解三种描述各自的特点。
3.1综合(Synthesis)
逻辑综合(Logic Synthesis),是EDA设计一个重
要内容,它是一个把高层次的与工艺无关的描述转换为一
个低层次的与特定工艺相关的逻辑电路的过程。
c = a + b;
z = x * y;
t = c + x;
out = t + u;
(a) 描述(b) 直接实现
a
b
x
y
b
y
c
z
t
u
out
++
+
**
Synthesis
optimization
布尔代数优化→优化的逻辑电路
3.2 VHDL 构造体的描述方式
?行为(Behavioral)描述方式
(一般不可综合)
?寄存器传输(RTL)或数据流
(Data-Flow)描述方式(可综合)
?结构化(Structural)描述方式(可综合)
多层次的设计
直接用门电路单元搭建
u1
半加器
half_adder
u2
半加器
half_adder
u3
或门
or_gate
x
y
cin
a
b
sum
cout
c
3.2.1 行为( Behavioral)描述方式
?基于系统数学模型或系统工作原理
?抽象程度高,不一定能进行逻辑综
合
?在复杂的或新的电子系统设计中,
作为验证设计思想的有效手段
3.2.1 行为(Behavioral)描述方式
【例3-1】一个五端口电路如图3-2所示。我们希望它具
有如表3-1所示的功能,问如何通过行为级描述来得到它
的输入输出波形。
x sum
y
cin cout
图3-2 五端口电路
3.2.1 行为(Behavioral)描述方式
n xycinsum cout
0 00000
001
010
100
011
110
101
3 11111
012
101
输出信号sum和cout的值与输入信号中“1”的数目有关
表3-1逻辑功能表
ENTITY five_ports_circuit IS
PORT (x,y,cin:IN BIT;
sum,cout:OUT BIT );
END five_ports_circuit;
ARCHITECTOR behavioral_view OF five_ports_circuit IS
BEGIN
PROCESS
VARIABLE n :INTEGER;
CONSTANT sum_vector :BIT_VECTOR(0 TO 3) := “0101”;
CONSTANT carry_vector :BIT_VECTOR (0 TO 3) := “0011”;
BEGIN
WAIT ON x, y,cin;
n :=0;
IF x =’1’ THEN n :=n+1;END IF;
IF y =’1’ THEN n :=n+1;END IF;
IF cin =’1’ THEN n :=n+1;END IF;
sum <=sum_vector (n) ;
cout <=carry_vector (n) ;
END PROCESS;
END behavioral_view;
变量赋值符号: =
进程语句描述一个进程(process)
进程中的所有语句顺序执行(step by step)
行为级描述:
借助变量n描述了一
个逻辑电路的外部
行为
3.2.1 行为(Behavioral)描述方式
3.2.1 行为级(Behavioral)描述方式
仿真波形如下
3.2.2 寄存器级RTL描述方式
RTL描述方式,也被称为数据
流描述方式,是一种明确规定积存
器的描述方法,在RTL描述中可采
用积存器硬件一一对应的直接描述,
也可采用积存器之间功能描述的方
法。
3.2.2 寄存器级RTL描述方式
cin01010101
x00110011
y00001111
cout00010111
sum01101001
即:sum =x⊕y⊕cin
cout=(x⊕y)·cin+x·y
(3-1)式
【例3-2】五端电路的RTL描述
五端电路的真值表
3.2.2 寄存器级RTL描述方式
s=x⊕y
sum=s⊕cin
cout=s·cin+x·y
(3-2)式描绘出了全加器中从输入端到输出端的数
据流
据此可写出全加器的RTL构造
【例3-2】五端电路的RTL描述
(3-2)式
【例3-2】全加器的RTL级描述(数据流)
ARCHITECTURE RTL_view OF
full_adder IS
SIGNAL s : BIT;
BEGIN
s <= x XOR y;
sum <= s XOR cin;
cout <= (s AND cin ) OR (x
AND y);
END RTL_view;
信号赋值符号< =
3.2.2 寄存器级RTL描述方式
就是在多层次的设计
中,高层次的设计模块调
用低层次的设计模块,或
者直接用门电路设计单元
来构建一个复杂的逻辑电
路的描述方式
3.2.3 结构级(Structural)描述方式
【例3-3】五端电路的优化逻辑
s=x⊕y
sum=s⊕cin
cout=s·cin+x·y
观察,我们可以看出该全加器由两个半加器
(half_adder)和一个“或”门(or_gate)组成
u1
半加器
half_adder
u2
半加器
half_adder u3
或门
or_gate
x
y
cin
a
b
c
sum
cout
3.2.3 结构级(Structural)描述方式
ARCHITETURE structure_view OF Full_adder IS
COMPONENT half_adder
PORT (a,b : IN BIT ;s ,c : OUT BIT);
END COMPONENT;
COMPONENT or_gate
PORT (in1,in2:IN BIT;out1:OUT BIT);
END COMPONENT;
SIGNAL a,b,c:BIT;
BEGIN
u1: half_adder PORT MAP (x,y,a,b);
u2: half_adder PORT MAP (a,cin,sum,c);
u3: or_gate PORT MAP (b,c,cout);
END structure_view;
SIGNAL:内部信号连线
元件(component)说明
元件引用语句
3.2.3 结构级(Structural)描述方式
? 行为级描述一般难于综合
? 对于RTL描述加以不同综合库、
ASIC工艺库或约束条件(延时、
面积、功耗等条件),其综合结
果也会有所不同
? 构造级描述硬件特征已经确定,
综合出的电路与描述中的连接关
系完全相同
3.2.4 构造体三种描述的对比
作业