设计中心 电子设计自动化技术 教师:李平教授(博导) Email: pli@uestc.edu.cn Tel: 83201794 2004年 5月 设计中心 电子设计自动化技术 第三章 VHDL构造体的描述方式 设计中心 Review VHDL程序组成部分及其功能 设计中心 Review VHDL程序的基本构成格式 设计中心 Review 设计中心 本章要点 ? 构造体:是VHDL程序中最复杂的部分。 构造体设计是VHDL程序设计的重点。 ? 构造体主要有三种描述方式: 行为描述、RTL描述、结构描述。 ? 设计者可以自由选择不同的描述方式 (根据设计阶段和设计意图的不同)。 ? 深入理解本章举例,深入理解行为描述、 RTL描述以及结构描述分别的特点。 设计中心 VHDL 构造体的描述方式 ? 行为( Behavioral)描述方式 ? 寄存器传输( RTL)或数据流 ( Data-Flow)描述方式 ? 结构化( Structural)描述方式 多层次的设计 直接用门电路单元搭建 u1 半加器 half_adder u2 半加器 half_adder u3 或门 or_gate x y cin a b sum cout c 设计中心 构造体的行为( Behavioral)描述方式 ? 基于系统数学模型或系统工作原理 ? 抽象程度高,不能进行逻辑综合 (Logic Synthesis) ? 设计复杂的或新的电子系统初,进行行为级描述 ? 用于保护设计者的知识产权 (e.g) 设计中心 e.g: 本人负责的国家 863超大规模集成电路设计 SOC专项 “可编程逻辑器件核及其编译开发 ” * 该项目研制出国内第一颗复杂可编程逻 辑器件 CPLD,填补国内空白; 于 2002.1-2003.12,国家863 计划SOC专项 资助下研制出具有72个宏单元的 CPLD芯 片(集成度为15万门), 2004年通过部级鉴 定,2005 年获国防科技进步三等奖。 鉴定意见:该项目结束了国外在可 编程逻辑器件设计技术方面垄断的 历史。 Behavioral描述方式应用举例 设计中心 T Region is a flash IP(0.35 um, 2P3M) It was provided by the foundry We, CPLD designer, could use it in the simulation, but we could not see it. 设计中心 s□20% f□ 40% 将大的 flash IP 分解成18个小 flash IP Trust! Closed cooperation! Final layout was finished by a joined team. 设计中心 【例 3-1】 一个五端口电路如图3-2 所示。我们希望它具有 如表3-1 所示的功能,问如何通过行为级描述来得到它的 输入输出波形。 x sum y cin cout 图 3-2 五端口电路 设计中心 表3-1此五端口逻辑电路功能表 n xycinsum cout 0 00000 001 0 1 0 1 00 0 11 110 1 0 1 311111 012 101 设计中心 对表3-1 观察,可见规律: 1. 输出信号sum 和 coun 的值仅与n 相关 n=0, (sum,cout)=0, 0 n=1, (sum,cout)=1, 0 n=2, (sum,cout)=0, 1 n=3, (sum,cout)=1, 1 2. 而 n=输入信号为1 的数 目 n xycinsum cout 0 00000 001 0 1 0 1 00 0 11 110 1 0 1 311111 012 101 表 3-1 设计中心 ENTITY five_ports_circuit IS PORT (x,y,cin:IN BIT; sum,count: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 cin01010101 x00110011 y00001111 cout00010111 sum01101001 从仿真波形 得出真值表: 表 3.2 设计中心 构造体的RTL描述方式 ? RTL描述方式 是一种使用寄存器实现数据传递的描述方 法,它能够表明寄存器之间的联结关系和数据流向或电路 功能,它必须是可综合的。 ? 前述5 端口电路描述是不可综合的,因此,它不是RTL 描述。 ? 但是,其仿真结果,表3.2 ,提供了有用的信息。 ? 怎样由上述行为级描述得到RTL 级描述? 设计中心 从 表 3.2总结得出: sum =x⊕ y⊕ cin cout=(x⊕ y)·cin+x·y (3-1)式 从 (3-1)式 看出该5 端口电路为全加器 化简(3-1 )式 令:s=x ⊕ y,得到 sum=s⊕ cin cout=s·cin+x·y (3-2)式 ( 3-2)式描绘出了全加器中从输入端到输出端的数据流 据此可写出全加器的RTL 构造 : 设计中心 【例 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; 信号赋值符号 < = 设计中心 关于RTL 描述 ? 对于RTL 描述加以不同的约束条件(延时、 面积、功耗等条件),其综合结果是不相同 的。 ? RTL描述的上述特点使它具有以下两种特别的 用途: 1> 可以形成IP软核,是有商业价值的; 2>同一个 RTL描述可以在不同的 ASIC加工工 艺线实现,或者用不同厂家的FPGA/CPLD实现。 设计中心 构造体的RTL描述方式应用举例 ? E.g:本人负责研制的VME总线控制VLSI芯片 类似于 PCI总线,但要强 大得多。可带21颗 CPU和 它们的外设,集成度20万 门 本教研室20多人的团队1 年半HDL RTL 描述 /验证 己投片成功,满足了国家 急需。售价1.2 万元 /只 。 设计中心 构造体的结构描述方式 ? 所谓构造体的结构( Structural)描述方式, 就是在多层次的设计中,高层次的设计模块调用低 层次的设计模块,或者直接用门电路设计单元来构 建一个复杂的逻辑电路的描述方式 例如: 通过对( 3-2)式的观察,我们可以看出该全加器由两 个半加器(half_adder )和一个 “或”门(or_gate)组成 u1 半加器 half_adder u2 半加器 half_adder u3 或门 or_gate x y cin a b sum cout c 设计中心 【例 3-3】全加器的一种结构描述 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)说明 元件引用语句 设计中心 关于结构描述方式 ? 结构描述方式属于RTL 描述方式,它是指明所 用器件的RTL 描述。 ? 采用结构描述方式可使得经综合得到的电路门 数减少,它是比较好的RTL 描述。 ? 进行结构描述方式的前提是设计者对所使用的 库有充分的理解,例如:设计者知道库中有何 器件,有何模块等等。 ? 结构描述方式是进行多层次的设计的有力工具 设计中心 作业