构造体的三种描述方式.ppt
大规模数字集成电路设计大规模数字集成电路设计第三章第三章构造体的三种描述方式构造体的三种描述方式本章要点本章要点进一步认识构造体在进一步认识构造体在VHDLVHDL中的作用。中的作用。构造体的三种描述方式:构造体的三种描述方式:行为描述行为描述RTLRTL描述描述结构描述结构描述深入理解三种描述各自的特点深入理解三种描述各自的特点。3.13.1综合综合(Synthesis)(Synthesis)逻辑综合逻辑综合(Logic Synthesis),是是EDA设计一个重设计一个重要内容,它是一个把高层次的与工艺无关的描述转换为一要内容,它是一个把高层次的与工艺无关的描述转换为一个低层次的与特定工艺相关的逻辑电路的过程。个低层次的与特定工艺相关的逻辑电路的过程。c=a+b;z=x*y;t=c+x;out=t+u;(a)描述(b)直接实现abxybycztuout+*Synthesisoptimization布尔代数优化布尔代数优化优化的逻辑电路优化的逻辑电路3.2 VHDL 3.2 VHDL 构造体的描述方式构造体的描述方式行为(行为(Behavioral)描述方式)描述方式 (一般不可综合)(一般不可综合)寄存器传输(寄存器传输(RTL)或数据流)或数据流(Data-Flow)描述方式)描述方式(可综合)(可综合)结构化(结构化(Structural)描述方式)描述方式(可综合)(可综合)多层次的设计多层次的设计 直接用门电路单元搭建直接用门电路单元搭建 u1半加器半加器half_adder u2半加器半加器half_adder u3或门或门or_gatexycinabsumcoutc3.2.1 3.2.1 行为(行为(Behavioral)描述方式)描述方式 基于系统数学模型或系统工作原理基于系统数学模型或系统工作原理 抽象程度高,不一定能进行逻辑综抽象程度高,不一定能进行逻辑综合合 在复杂的或新的电子系统设计中,在复杂的或新的电子系统设计中,作为验证设计思想的有效手段作为验证设计思想的有效手段3.2.1 3.2.1 行为(行为(BehavioralBehavioral)描述方式)描述方式【例例3-1】一个五端口电路如图一个五端口电路如图3-2所示。我们希望它具所示。我们希望它具有如表有如表3-1所示的功能,问如何通过行为级描述来得到它所示的功能,问如何通过行为级描述来得到它的输入输出波形。的输入输出波形。x sum y cin cout 图3-2 五端口电路 3.2.1 行为(行为(Behavioral)描述方式)描述方式nxycinsumcout000000100110010100201101110101311111输出信号输出信号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 3.2.2 寄存器级寄存器级RTLRTL描述方式描述方式 RTL描述方式,也被称为数据流描述方式,是一种明确规定积存器的描述方法,在RTL描述中可采用积存器硬件一一对应的直接描述,也可采用积存器之间功能描述的方法。3.2.2 寄存器级寄存器级RTL描述方式描述方式cin01010101x00110011y00001111cout00010111sum01101001即:即:sum=x y cin cout=(x y)cin+xy(3-1)式式【例例3-2】五端电路的五端电路的RTL描述描述五端电路的真值表3.2.2 寄存器级寄存器级RTL描述方式描述方式s=xy sum=scin cout=scin+xy(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=xy sum=scin cout=scin+xy观察,我们可以看出该全加器由两个半加器观察,我们可以看出该全加器由两个半加器(half_adder)和一个)和一个“或或”门(门(or_gate)组成)组成 u1半加器半加器half_adder u2半加器半加器half_adder u3或门或门or_gatexycinabsumcoutc3.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 3.2.4 构造体三种描述的对比构造体三种描述的对比作 业