数字电路及系统设计第10章.ppt
《数字电路及系统设计第10章.ppt》由会员分享,可在线阅读,更多相关《数字电路及系统设计第10章.ppt(122页珍藏版)》请在三一办公上搜索。
1、,用VHDL进行数字系统设计,总目录,退出,前言,EDAElectronic Design Automation(电子设计自动化)VHICVery High speed Integrated CircuitHDL-Hardware Description LanguageVHDL-VHIC HDL电子设计自动化的关键技术 用形式化方法描述数字系统的硬件电路。80年代后期美国国防部开发出VHDL,1993年推出修订版Verilog HDL 1993年 与C接近95年以后国内开展这方面工作,总目录,退出,数字系统硬件设计概述,传统的硬件设计方法传统的设计方法是自下而上的设计方法采用通用的元器件后期
2、进行仿真,浪费大,设计周期长主要设计文件是电路原理图,可读性差,文件量大,总目录,退出,图 11-9 测量频率电路图,总目录,退出,图 11-4 定时电路原理图,总目录,退出,数字系统硬件设计概述,VHDL语言设计方法VHDL 是硬件描述语言,是描述硬件电路的功能、信号连接关系、定时关系的语言。采用自上而下的设计方法早期仿真,提高了资源利用率,设计周期短行为级仿真RTL级仿真门级仿真降低设计难度主要设计文件是程序,可读性好,文件量小,可移植性好,总目录,退出,自上至下设计系统硬件过程,规格设计,行为级描述,行为级仿真,RTL级描述,RTL级仿真,逻辑综合、优化,门级仿真、检查,输出门级网表,总
3、目录,退出,数字系统硬件设计概述,利用VHDL语言设计电路的优点设计技术齐全,方法灵活 行为级设计设计数学模型 RTL级设计 生成电路 结构化设计生成电路,与原理图设计方法相似描述功能强设计电路与工艺无关成果易于共享,总目录,退出,VHDL 语言描述的范畴 ASIC电路设计 局部电路的设计和仿真 系统的硬件、软件的协同设计,数字系统硬件设计概述,总目录,退出,VHDL语言的基本结构,一般的高级语言:描述算法运算,是控制流,目的是实现过程控制。VHDL语言:描述具体的数字系统或数字电路的功能,目的是生成硬件电路,采用的主要是并发语言。,总目录,退出,VHDL语言的基本结构,VHDL 语言的基本结
4、构:库说明包集合实体构造体(配置)库:用来存放已经编译的实体、构造体、包集合和配置。库一般可由用户产生或者由ASIC芯片制造商提供。包集合:存放各设计模块都能共享的数据类型、常数和子程序。实体:系统的外部接口关系。构造体:描述系统内部的结构和行为。配置:用于从库中选取所需的单元,来组成系统设计的不同版本。,总目录,退出,VHDL语言的基本单元,VHDL语言的基本单元 一:VHDL语言描述方法 电原理图的描述方式,其中a,b是输入,c是输出,C=AB。如果用VHDL 语言来 描述此电路:实体描述输入、输出,构造体描述功能。实体构造体基本单元,总目录,退出,二:实体说明 ENTITY 实体名字 I
5、S PORT(端口名,);END 实体名;说明:1:实体名可用英文字母、数字、下划线表示,名字开头 只能为英文字母,结尾不能用下划线。2:PORT(端口名:方向 数据类型);端口名与实体名命名规则相同。方向:IN 表示输入 OUT 表示输出 INOUT 表示输入输出 BUFFER 表示输出端带有反馈类型。,总目录,退出,数据类型:与一般高级语言类似,有许多种,但一般常使用两种。BIT:位 BIT_VECTOR:位矢量表示数据总线 D0-D7的数据类型 BIT_VECTOR(7 DOWNTO 0);,总目录,退出,例:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.AL
6、L;ENTITY and2 IS PORT(a,b:IN BIT;c:OUT BIT);END and2;ARCHITECTURE rtl OF and2 IS BEGIN c=a AND b;END rtl;大写 保留字小写 名称VHDL语言对大写小写无区分,大写小写有利于阅读。,总目录,退出,上节课主要内容复习,VHDL 语言的基本结构:库说明包集合实体构造体库:用来存放已经编译的实体、构造体、包集合和配置。库一般可由用户产生或者由ASIC芯片制造商提供。包集合:存放各设计模块都能共享的数据类型、常数和子程序。实体:系统的外部接口关系。构造体:描述系统内部的结构和行为。,总目录,退出,上节
7、课主要内容复习,基本设计单元实体说明:接口信号 ENTITY and2 IS PORT(a,b:IN BIT;c:OUT BIT)END and2;构造体:内部逻辑和时序 ARCHITECTURE rtl OF and2 IS BEGIN c=a AND b;END rtl;,总目录,退出,STD_LOGIC STD_LOGIC_VECTOR 1993年制定出IEEE STD1164 标准。以电路需要,该类型数据可取如下9种不同的值。U 初始值 X X是不定的值,强不确定 0 强0 1 强1 Z 高阻 W 弱不确定 L 弱0 H 弱1 不可能情况,总目录,退出,VHDL描述数字系统的基本方法,
8、三:构造体 构造体用来描述实体的功能 ARCHITCTURE 构造体名 OF 实体名 IS 定义语句:内部信号,常数,数据类型,函数等的定义 BEGIN 并发语句 END 构造体名;构造体的名称可由设计者命名。通常根据描述的对象把构造体命 名为behav(behavior)行为描述,rtl寄存器传输描述,struct(structural)结构描述。,总目录,退出,总目录,退出,常数、变量、信号所描述的对象,在VHDL 语言中,可以赋予一个值的的对象就称为客体或对象。对象主要包括以下3种:信号(SIGNAL):对应物理意义上是实际电路连接线。变量(VARIABLE):相当于暂存寄存器,变量值不
9、是最终的结果。常数(CONSTANT):如电源、地等,用来描述固定的值。,总目录,退出,常数、变量、信号所描述的对象,1、常数(CONSTANT)格式:CONSTANT 常数名:数据类型:表达式;例:CONSTANT VCC:REAL:=5.0;CONSTANT DALY:TIME:=100ns;CONSTANT FBUS:BIT_VECTOR:=“1010”CONSTANT G1:BIT:1;数据类型和表达式表示的数据类型应该一致。表示是位信息,而“”表示的是位矢量信息。,总目录,退出,常数、变量、信号所描述的对象,2、变量(VARIABLE)变量是局部变量,只能在进程、过程、函数中使用和定
10、义。格式:VARIABLE 变量名:数据类型 约束条件:表达式;例:VARIABLE x,y:INTEGER VARIABLE x,y:INTEGER RANGE 0 TO 255:=10 在程序中,变量的赋值是立即生效的,不能产生附加延时。tmp1:=tmp2+tmp3 AFTER 10ns,总目录,退出,常数、变量、信号所描述的对象,3、信号(SIGNAL)信号量是全局变量,只能在构造体中定义,而不能在进程、过程、函数中定义。格式:SIGNAL 信号名:数据类型 约束条件:表达式;SIGANL ground:BIT:=0;SIGANL x,y:INTEGER RANGE 0 TO 255:
11、=10;,总目录,退出,常数、变量、信号所描述的对象,4、信号量和变量的区别信号量是全局量,而变量是局部量。信号赋值用“=”,而变量用“:”。信号和变量可以相互代入。如:a 是变量,b是信号,则a:=b;b=a;变量是立即赋值的,而信号量是在进程结束时赋值的。,总目录,退出,属性描述,描述时钟边沿的属性EVENTEVENT属性属于信号类属性。描述信号边沿出现的时刻如:时钟上升沿IF(clkEVENT AND clk=1)THEN q=d;,总目录,退出,例:设计一个2选1的数据选择器,总目录,退出,2选1的数据选择器,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.A
12、LL;ENTITY mux IS PORT(D0,D1,sel:IN BIT;F:OUT BIT);END mux;ARCHITECTURE rtl OF mux IS SIGNAL tmp1,tmp2:BIT;BEGIN tmp1=D1 AND sel;tmp2=D0 AND(NOT sel);F=tmp1 OR tmp2;END rtl;,总目录,退出,VHDL基本设计单元构成,一个完整的设计单元 LIBRARY IEEE;库 USE IEEE.STD_LOGIC_1164.ALL;包集合 ENTITY 实体名字 IS PORT(端口名,);END 实体名;ARCHITCTURE 构造体名
13、 OF 实体名 IS 定义语句:信号常数,数据类型等 BEGIN 并发语句 END 构造体名;,总目录,退出,2选1的数据选择器,ENTITY mux IS PORT(D0,D1,sel:IN BIT;F:OUT BIT);END mux;,LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;,ARCHITECTURE rtl OF mux IS SIGNAL tmp1,tmp2:BIT;BEGIN tmp1=D1 AND sel;tmp2=D0 AND(NOT sel);F=tmp1 OR tmp2;END rtl;,总目录,退出,VHDL基本设计单元构成,一个
14、完整的设计单元 LIBRARY IEEE;库 USE IEEE.STD_LOGIC_1164.ALL;包集合 ENTITY 实体名字 IS PORT(端口名,);END 实体名;ARCHITCTURE 构造体名 OF 实体名 IS 定义语句:信号常数,数据类型等 BEGIN 并发语句 END 构造体名;,总目录,退出,频率测量电路,总目录,退出,频率测量电路框图,总目录,退出,构造体的子结构描述,构造体的子结构描述 三种子结构描述语句:BLOCK 块 PROCESS 进程 SUBPROGRAM 子程序(PROCEDURE、FUNCTION),总目录,退出,块(BLOCK)语句结构描述,1 块(
15、BLOCK)语句结构 块结构名:BLOCK BEGIN 并发语句;:END BLOCK 块结构名;,总目录,退出,ARCHITECTURE rtl OF mux2 IS SINGAL tmp1,tmp2:BIT;BEGIN muxB:BLOCK BEGIN tmp1=d1 AND sel;tmp2=d0 AND(NOT sel);F=tmp1 OR tmp2;END BLOCK muxB;END rtl;,总目录,退出,块结构,ARCHITECTURE BEGIN black1:BLOCK BEGIN 并发语句;:END BLOCK black1;black2:BLOCK BEGIN 并发语句
16、;:END BLOCK black2;black3:BLOCK BEGIN 并发语句;:END BLOCK black3;,总目录,退出,进程(PROCESS)语句结构描述,2 进程(PROCESS)语句的结构 进程名:PROCESS(信号1,信号2,)-敏感量 BEGIN 顺序语句;:END PROCESS 进程名;进程中语句的顺序执行:进程内的顺序性;进程间的并发性进程的启动和执行:敏感量变化启动进程执行,总目录,退出,进程间的并发性,process1 PROCESS(信号1,信号2,)BEGIN 顺序语句;:END PROCESS process1;process2 PROCESS(信号
17、6,信号7,)BEGIN 顺序语句;:END PROCESS process2;F=a OR b;,总目录,退出,进程中定义变量,ARCHITECTURE rtl OF shff1 IS BEGINPROCESS(clk)VARIABLE z:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF(clkEVENT AND clk=1)THEN z(0):=a;z(1):=z(0);z(2):=z(1);z(3):=z(2);q=z(3);END IF;END PROCESS;END rtl;,总目录,退出,构造体中定义信号,ARCHITECTURE rtl OF shff
18、IS SIGNAL z:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk)BEGIN IF(clkEVENT AND clk=1)THEN z(0)=a;z(1)=z(0);z(2)=z(1);z(3)=z(2);q=z(3);END IF;END PROCESS;END rtl;,总目录,退出,进程举例,ARCHITECTURE rtl OF shff IS SIGNAL z:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINPROCESS(clk)BEGIN IF(clkEVENT AND clk=1)THEN z(0)=a;z(
19、1)=z(0);z(2)=z(1);z(3)=z(2);q=z(3);END IF;END PROCESS;END rtl;,ARCHITECTURE rtl OF shff1 IS BEGINPROCESS(clk)VARIABLE z:STD_LOGIC_VECTOR(3 DOWNTO 0);BEGINIF(clkEVENT AND clk=1)THEN z(0):=a;z(1):=z(0);z(2):=z(1);z(3):=z(2);q=z(3);END IF;END PROCESS;END rtl;,总目录,退出,D触发器的设计,ENTITY dff1 ISPORT(clk,d,res
20、et:INSTD_LOGIC;q:out STD_LOGIC);END dff1;ARCHITECTURE rtl OF dff1 IS BEGINPROCESS(clk,reset)BEGINIF(reset=0)THEN q=0;ELSIF(clkEVENT AND clk=1)THEN q=d;END IF;END PROCESS;END rtl;,总目录,退出,序列信号检测器的设计,用T触发器构成序列信号检测器,总目录,退出,ENTITY tff2 ISPORT(clk,x,reset:IN STD_LOGIC;q,F:OUT STD_LOGIC);END tff2;ARCHITECT
21、URE rtl OF tff2 IS BEGINPROCESS(clk,reset)BEGINIF(reset=0)THEN q=0;ELSIF(clkEVENT AND clk=1)THEN q=x xor q;END IF;F=q and x;END rtl;,总目录,退出,小结,VHDL 语言的基本结构库说明包集合实体构造体构造体中的子结构BLOCK 块PROCESS 进程进程的定义及进程的执行进程间并发进程内顺序执行,总目录,退出,作业 1、用VHDL语言设计一个一位全加器。2、电路如图所示,用VHDL语言描述该电路。,总目录,退出,信号(SIGNAL)、变量(VARIABLE)、常数
22、(CONSTANT)在VHDL语言中信号、变量、常数都要指定数据类型。VHDL语言定义数据类型比较严格,不同数据类型长度不同,也不能互相代入。数据类型可以自定义,使用相对灵活。标准的数据类型用户定义的数据类型,总目录,退出,一、标准数据类型(自己看书)1:整数 2:实数 3:位 4:位矢量 5:布尔量 6:字符 7:字符串 8:时间 9:错误等级 10:大于等于零的整数,总目录,退出,二:用户定义的数据类型 1:格式 TYPE 数据类型名 IS 数据类型定义 2:定义种类 枚举类型 整数 实数 数组 存取 文件 记录 时间,总目录,退出,三:数据子类型定义 1:格式 SUBTYPE 子类型名
23、IS 数据类型名 约束条件;2:例子 SUBTYPE digit IS INTEGER 0 TO 9;SUBTYPE iobus IS STD_LOGIC_VECTOR(7 DOWNTO 0);,总目录,退出,SINGAL a:STD_LOGIC_VECTOR(3 DOWNTO 0);“1010”为a信号上的值,则 a(3)=1;a(2)=0;a(1)=1;a(0)=0 SINGAL b:STD_LOGIC_VECTOR(0 TO 3);“1101”为b信号上的值,则 b(3)=1;b(2)=0;b(1)=1;b(0)=1,总目录,退出,ENTITY count6 IS PORT(reset,
24、clk:IN STD_LOGIC;q:OUT STD_LOGIC_VECTOR(2 DOWNTO 0);END count6;ARCHITECTURE rtl OF count6 IS BEGIN PROCESS(clk)VARIABLE q6:INTEGER;BEGIN IF(reset=0)THEN q6:=0;ELSIF(clkEVENT AND clk=1)THEN IF(q6=5)THEN q6:=0;ELSE q6:=q6+1;END IF;END IF;q=CONV_STD_LOGIC_VECTOR(q6,3);END PROCESS;END rtl;,总目录,退出,VHDL语言
25、中的运算符号,VHDL中的运算操作符有:逻辑运算:与、或、非、与非、或非、异或关系运算、/、=算术运算+、*、/、MOD、RME、*、ASB、并置运算&,总目录,退出,例:SINGAL a:STD_LOGIC_VECTOR(3 DOWNTO 0);SINGAL b:STD_LOGIC_VECTOR(2 DOWNTO 0);若取aa,而这实际是不正确的,所以在进行比较运算是数据定义类型的位数应该相同。用并置方法可以解决此问题。SINGAL c:STD_LOGIC_VECTOR(3 DOWNTO 0);c”0111”然后比较a和c即可。&是并置运算符,将信号可以连接起来。,总目录,退出,属性描述,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数字电路 系统 设计 10
链接地址:https://www.31ppt.com/p-6294827.html