电子设计自动化技术 第三章 构造体的三种描述方式 本章要点 ? 进一步认识构造体在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 构造体三种描述的对比 作业