EDA技术实用教程-VHDL版第3章VHDL设计初步.ppt
《EDA技术实用教程-VHDL版第3章VHDL设计初步.ppt》由会员分享,可在线阅读,更多相关《EDA技术实用教程-VHDL版第3章VHDL设计初步.ppt(72页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第 3 3 章章 VHDL设计初步设计初步3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.1 2选选1多路选择器的多路选择器的VHDL描述描述 图图3-1 mux21a实体实体 3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.1 2选选1多路选择器的多路选择器的VHDL描述描述 图图3-2 mux21a结构体结构体 3.1组合逻辑电路的组合逻辑电路的VHDL描述描述【例】二选一选择器描述方法【例】二选一选择器描述方法1 ENTITY mux21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARC
2、HITECTURE one OF mux21a IS SIGNAL d,e:BIT;-说说明明语语句句 BEGINd=a AND(NOT S);e=b AND s;y=d OR e ;END ARCHITECTURE one;实体结构体3.1.1 2选选1多路选择器的多路选择器的VHDL描述描述 3.13.1组合逻辑电路的组合逻辑电路的VHDLVHDL描述描述 n此电路的VHDL描述由两大部分组成:n (1)以关键词ENTITY引导,n END ENTITY mux2la结尾的语句部分,n 称为实体。n 实体描述了电路器件的外部情况及各信号端口的基本n 性质。n (2)以关键词ARCHITEC
3、TURE引导,n END ARCHITECTURE one结尾的语句部分,n 称为结构体。n 结构体负责描述电路器件的内部逻辑功能或电路结构。3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.2 相关语句结构和语法说明相关语句结构和语法说明 ENTITY e_name IS PORT(p_name:port_m data_type;.p_namei:port_mi data_type);END ENTITY e_name;红红色色为为描述描述实实体的关体的关键词键词,不分大小写。,不分大小写。1.1.实体表达实体表达 2.2.实体名实体名 e_name,由,由设计设计者自定的者自定的
4、标识标识符。由字母、数字、下划符。由字母、数字、下划线线构成。构成。不能以数字起不能以数字起头头,不能用中文,不能与关,不能用中文,不能与关键词键词或或EDA工具工具库库的元件名相同。的元件名相同。如:如:72lk,OR2均均为为非法非法实实体名。体名。3.3.端口语句和端口信号名端口语句和端口信号名 PORT(););描述描述电电路的端口及其端口信号。路的端口及其端口信号。如如 PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );3.13.1组合逻辑电路的组合逻辑电路的VHDLVHDL描述描述 端口信号名端口模式端口信号的数据类型3.1.2 相关语句结构和语法说明相关语
5、句结构和语法说明 3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.2 相关语句结构和语法说明相关语句结构和语法说明 4.4.端口模式端口模式 IN:输入端口,定义的通道为单向只读模式输入端口,定义的通道为单向只读模式OUT:输出端口,定义的通道为单向输出模式输出端口,定义的通道为单向输出模式 INOUT:定义的通道确定为输入输出双向端口定义的通道确定为输入输出双向端口BUFFER:缓冲端口,其功能与缓冲端口,其功能与INOUT类似类似 3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.2 相关语句结构和语法说明相关语句结构和语法说明 5.5.数据类型数据类型 INTEGE
6、R类类型型 (整数(整数类类型)型)BOOLEAN类类型型 (布(布尔尔类类型)型)取取值值范范围为围为true,false STD_LOGIC类类型型 (标标准准逻辑逻辑位位类类型)型)取取值值范范围围有:有:U,X,0,1,Z,W,L,H,-BIT类类型型 (位(位类类型)型)取取值值范范围围是是逻辑逻辑位位1,03.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.2 相关语句结构和语法说明相关语句结构和语法说明 6.6.结构体表达结构体表达 ARCHITECTURE arch_name OF e_name IS 说明语句说明语句BEGIN (功能描述语句功能描述语句)END AR
7、CHITECTURE arch_name;红红色色为为描述描述结结构体的关构体的关键词键词,不分大小写。,不分大小写。说说明明语语句并非必句并非必须须,而功能描述,而功能描述语语句必句必须须存在。存在。结构体名实体名7.7.逻辑操作符逻辑操作符 AND、OR、NOT、NAND(与非)、(与非)、NOR(或非)、(或非)、XOR(异或)、(异或)、XNOR(同或)(同或)逻辑操作符的操作数是逻辑操作符的操作数是BIT、BOOLEAN、STD_LOGIC。3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.2 相关语句结构和语法说明相关语句结构和语法说明 3.1组合逻辑电路的组合逻辑电路的
8、VHDL描述描述 3.1.2 相关语句结构和语法说明相关语句结构和语法说明 8.8.赋值符号和数据比较符号赋值符号和数据比较符号 赋值符赋值符 “=”如如 表达式表达式 y=a 表示表示输输入端口入端口a的数据向的数据向输输出端口出端口y传输传输。注:注:赋值赋值符符“=”两两边边的信号的数据的信号的数据类类型必型必须须一致。一致。数据比较符号数据比较符号“=”其输出结果的数据类型是其输出结果的数据类型是BOOLEAN类型。类型。如如 表达式表达式 IF s=0 THEN.3.1组合逻辑电路的组合逻辑电路的VHDL描述描述【例】二选一选择器描述方法【例】二选一选择器描述方法2ENTITY mu
9、x21a IS PORT(a,b:IN BIT;s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN y=a WHEN s=0 ELSE b ;END ARCHITECTURE one;实体结构体3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.2 相关语句结构和语法说明相关语句结构和语法说明 9.WHEN_ELSE9.WHEN_ELSE条件信号赋值语句(属于并行语句)条件信号赋值语句(属于并行语句)赋值目标赋值目标=表达式表达式 WHEN 赋值条件赋值条件 ELSE 表达式表达式 WHE
10、N 赋值条件赋值条件 ELSE .表达式表达式 ;z =a WHEN p1=1 ELSE b WHEN p2=1 ELSE c ;3.1组合逻辑电路的组合逻辑电路的VHDL描述描述【例【例3-3】二选一选择器描述方法】二选一选择器描述方法3 ENTITY mux21a IS PORT(a,b,s:IN BIT;y:OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mux21a IS BEGIN PROCESS(a,b,s)BEGIN IF s=0 THEN y=a;ELSE y=b;END IF;END PROCESS;END ARCHITECTU
11、RE one;3.1.2 相关语句结构和语法说明相关语句结构和语法说明 进程的敏感信号表3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.2 相关语句结构和语法说明相关语句结构和语法说明 1010.条件语句条件语句 (属于顺序语句)(属于顺序语句)IF_THEN_ELSE IF语句必须以语句语句必须以语句 “END IF;”结束结束 如如 IF s=0 THEN y=a;ELSE y=b;END IF;END IF;3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 3.1.2 相关语句结构和语法说明相关语句结构和语法说明 11.11.进程语句和顺序语句进程语句和顺序语句 顺顺 序序
12、 语语 句句“IF_THEN_ELSE END IF;”是是 放放 在在 由由“PROCESSEND PROCESS”引引导导的的语语句句中中的的。由由PROCESS引引导导的的语语句句称称为为进进程程语语句句。在在VHDLVHDL中中,所所有有合合法法的的顺顺利利描描述述语语句句都都必必须须放在进程语句中。放在进程语句中。PROCESS旁旁的的()称称为为进进程程的的敏敏感感信信号号表表,要要求求将将进进程程中中的的所所有有输输入入信信号号都都放放在在敏敏感感信信号号表表中中。当当信信号号表表中中的的某某一一敏敏感感信信号号从从原原来来的的“1”变变成成“0”,或或者者从从原原来来的的“0”
13、变变成成“1”时时,将将启启动动此此进程语句,即将其中的语句全部执行一遍。进程语句,即将其中的语句全部执行一遍。12.文件取名和存盘文件取名和存盘 12.12.文件取名和存盘文件取名和存盘 3.1 3.1 组合逻辑电路的组合逻辑电路的VHDLVHDL描述描述 用用Quartus iiQuartus ii提供的提供的VHDLVHDL文本编辑器编辑文本编辑器编辑VHDLVHDL代码文件,代码文件,在保存文件时,文件名为在保存文件时,文件名为 “*.vhd *.vhd”。建议程序的文件名。建议程序的文件名尽可能与该程序的实体名一致。推荐使用小写。尽可能与该程序的实体名一致。推荐使用小写。3.1.2
14、相关语句结构和语法说明相关语句结构和语法说明 3.1组合逻辑电路的组合逻辑电路的VHDL描述描述 mux21a功能时序波形图功能时序波形图3.1 组合逻辑电路的组合逻辑电路的VHDL描述描述【例【例3-18】或门逻辑描述或门逻辑描述 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2a IS PORT(a,b:IN STD_LOGIC;c:OUT STD_LOGIC);END ENTITY or2a;ARCHITECTURE one OF or2a IS BEGIN c=a OR b;END ARCHITECTURE one;半加器半加器h_
15、adder电路图及其真值表电路图及其真值表 3.3.1 半加器描述半加器描述 3.3.1 半加器描述半加器描述 3.3 1位二进制全加器的位二进制全加器的VHDL描述描述【例【例3-16】LIBRARY IEEE;-半加器描述半加器描述(1):布尔方程描述方法布尔方程描述方法USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder is BEGIN so=a XOR b;co=a A
16、ND b;END ARCHITECTURE fh1;K KX康芯科技康芯科技【例【例3-17】LIBRARY IEEE;-半加器描述半加器描述(2):真值表描述方法真值表描述方法USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT(a,b:IN STD_LOGIC;co,so:OUT STD_LOGIC);END ENTITY h_adder;ARCHITECTURE fh1 OF h_adder is SIGNAL X:STD_LOGIC_VECTOR(1 DOWNTO 0);-定义标准逻辑位矢量定义标准逻辑位矢量 数据类型数据类型BEGIN
17、X so=0;co so=1;co so=1;co so=0;co NULL;END CASE;END PROCESS;END ARCHITECTURE fh1;3.1 组合逻辑电路的组合逻辑电路的VHDL描述描述 1.1.CASECASE语句语句(属于顺序语句,必须放在进程语句中)属于顺序语句,必须放在进程语句中)CASE ISWhen =;.;;When =;.;;.WHEN OTHERS=;END CASE;3.1 组合逻辑电路的组合逻辑电路的VHDL描述描述 2.2.标准逻辑矢量数据类型标准逻辑矢量数据类型 STD_LOGIC_VECTOR 与与 STD_LOGIC 都被定都被定义义在
18、在STD_LOGIC_1164的程序包中。的程序包中。STD_LOGIC_VECTOR定定义为标义为标准一准一维维数数组组,数,数组组中的每个中的每个元素都是元素都是标标准准逻辑逻辑位位STD_LOGIC。在使用在使用STD_LOGIC_VECTOR中,中,必须注明其数组宽度,即位宽,如:必须注明其数组宽度,即位宽,如:B:OUT STD_LOGIC_VECTOR(7 DOWNTO 0);或或 SIGNAL A:STD_LOGIC_VECTOR(1 TO 4);B=01100010;-B(7)为为 0 B(4 DOWNTO 1)=1101;-B(4)为为 1 B(7 DOWNTO 4)=A;-
19、B(6)等于等于 A(2)3.1 组合逻辑电路的组合逻辑电路的VHDL描述描述 3.3.并置操作符并置操作符 SIGNAL a:STD_LOGIC_VECTOR(3 DOWNTO 0);SIGNAL d:STD_LOGIC_VECTOR(1 DOWNTO 0);.a ain,b=bin,co=d,so=e);-例化语句例化语句 u2:h_adder PORT MAP(a=e,b=cin,co=f,so=sum);cout连接端口名连接端口名);其中,例化名相当于当前系统(电路板)中的一个插座名。其中,例化名相当于当前系统(电路板)中的一个插座名。元元件件名名相相当当于于准准备备在在此此插插座座
20、上上插插入入的的已已定定义义的的元元件件,即即为为待待调调用用的的元元件件的的名字。名字。PORT MAP为关键词。为关键词。端口名为待调用的元件本身的端口名。端口名为待调用的元件本身的端口名。连接端口名为顶层文件中准备与调用元件的端口相连的通信线(端口)名。连接端口名为顶层文件中准备与调用元件的端口相连的通信线(端口)名。3.2 基本时序电路的基本时序电路的VHDLVHDL描述描述3.2.1 D触发器的触发器的VHDL描述描述 K KX康芯科技康芯科技【例【例3-8】LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY DFF1 IS PORT(CL
21、K:IN STD_LOGIC;D:IN STD_LOGIC;Q:OUT STD_LOGIC);END;ARCHITECTURE bhv OF DFF1 IS SIGNAL Q1:STD_LOGIC;-类似于在芯片内部定义一个数据的暂存节点类似于在芯片内部定义一个数据的暂存节点 BEGIN PROCESS(CLK,Q1)BEGIN IF CLKEVENT AND CLK=1 THEN Q1=D;END IF;END PROCESS;Q=Q1;-将内部的暂存数据向端口输出(双横线将内部的暂存数据向端口输出(双横线-是注释符号)是注释符号)END bhv;图4-4 D触发器D触发器实体触发器实体D触
22、发器仿真波形触发器仿真波形边沿触发边沿触发D触发器:触发器:当时钟信号的当时钟信号的上升沿上升沿到来时,到来时,Q=D。否则,否则,Q保持原值不变。保持原值不变。3.2 基本时序电路的基本时序电路的VHDLVHDL描述描述3.2.2 VHDL描述的语言现象说明描述的语言现象说明 图4-4 D触发器1.1.标准逻辑位数据类型标准逻辑位数据类型STD_LOGICSTD_LOGIC BIT数据类型定义:数据类型定义:TYPE BIT IS(0,1);-只有两种取值只有两种取值 STD_LOGIC数据类型定义:数据类型定义:TYPE STD_LOGIC IS(U,X,0,1,Z,W,L,H,-);ST
23、D_LOGIC类型比类型比BIT类型包含的内容多,且包含了类型包含的内容多,且包含了BIT类型。类型。以下是程序包中对两种数据类型的定义。以下是程序包中对两种数据类型的定义。3.2 基本时序电路的基本时序电路的VHDLVHDL描述描述3.2.2 VHDL描述的语言现象说明描述的语言现象说明 图4-4 D触发器2.2.设计库和标准程序包设计库和标准程序包 VHDL综合器附带了设计库和程序包,用来存放数据类型的综合器附带了设计库和程序包,用来存放数据类型的说明,以及函数的。说明,以及函数的。如:如:BIT数据类型的定义是包含在数据类型的定义是包含在VHDL标准程序包标准程序包STANDARD中的,
24、而该程序包是包含在中的,而该程序包是包含在VHDL的标准库的标准库STD中的。中的。为了使用为了使用BIT数据类型,则应该在程序之前增加说明语句。数据类型,则应该在程序之前增加说明语句。3.2 基本时序电路的基本时序电路的VHDLVHDL描述描述例例3-1LIBRARY WORK;-表示打开用表示打开用户户工程文件所在的目工程文件所在的目录录,该该目目录为录为默默认认工作工作库库WORKLIBRARY STD;-表示打开表示打开STD库库USE STD.STANDARD.ALL;-表示允表示允许许使用使用STD库库中的中的STANDARD 程序包中的所有内容程序包中的所有内容(.all)ENT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EDA 技术 实用教程 VHDL 设计 初步
限制150内