第3章 组合电路的VHDL设计_第1页
第3章 组合电路的VHDL设计_第2页
第3章 组合电路的VHDL设计_第3页
第3章 组合电路的VHDL设计_第4页
第3章 组合电路的VHDL设计_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第3章章 组合电路的组合电路的VHDL设计设计 3.1 多路选择器及其多路选择器及其VHDL描述描述 真值表真值表 saby 00X0 01X1 1X00 1X11 asd bse bsasy 3.1 多路选择器及其多路选择器及其VHDL描述描述 3.1 多路选择器及其多路选择器及其VHDL描述描述 实实 体体 结结 构构 体体 设设 计计 实实 体体 实体实体: ENTITY 引导,引导,END ENTITY mux21a结尾。结尾。 实体描述电路器件的外部情况及各信号端口的基本性质。实体描述电路器件的外部情况及各信号端口的基本性质。 结构体结构体: ARCHITECTURE引导,引导,

2、END ARCHITECTURE one结尾。结尾。 结构体描述电路器件的内部逻辑功能和电路结构。结构体描述电路器件的内部逻辑功能和电路结构。 结构体中语句:结构体中语句: 顺序语句顺序语句:按语句前后排列方式逐条顺序执行。:按语句前后排列方式逐条顺序执行。 并行语句并行语句:同时执行,与语句前后次序无关。:同时执行,与语句前后次序无关。 3.1 多路选择器及其多路选择器及其VHDL描述描述 3.1 多路选择器及其多路选择器及其VHDL描述描述 1. 1. 条件语句条件语句: :顺序语句,置于进程中。顺序语句,置于进程中。 2. 数据类型数据类型 :任一数据对象必须限定取值范围和数值类型任一数

3、据对象必须限定取值范围和数值类型 BIT:0 1 BOOLEAN:布尔类型,:布尔类型,true(1,真);,真);false(0,假,假) INTEGER:整数类型等:整数类型等 PROCESSPROCESS(a,b,sa,b,s) END PROCESS;END PROCESS; 进程语句,是并行语句进程语句,是并行语句 (a,b,sa,b,s): :敏感信号表,某一敏感信号变化启动进程语句执行敏感信号表,某一敏感信号变化启动进程语句执行 IF_THEN_ELSE_END IF; IF_THEN_ELSE_END IF; 顺序语句顺序语句 ,放在进程语句中。,放在进程语句中。 3. 3.

4、进程语句和顺序语句进程语句和顺序语句 4. 4. 端口语句和端口信号名端口语句和端口信号名 PORT(); p_name 3.1 多路选择器及其多路选择器及其VHDL描述描述 进程语句本身是并行语句,进程语句本身是并行语句,进程语句引导的语句是进程语句引导的语句是顺序语句。顺序语句。 3.1 多路选择器及其多路选择器及其VHDL描述描述 5. 5. 端口模式端口模式 “IN:“IN:输入端口输入端口” ”、 “ “OUTOUT:输出端口:输出端口” ”、 “ “INOUTINOUT:双向端口:双向端口 ,输入、输出,输入、输出” ”、 “ “BUFFERBUFFER:缓冲端口,回读内部产生,向

5、外输出的信号:缓冲端口,回读内部产生,向外输出的信号” ” 3.1 多路选择器及其多路选择器及其VHDL描述描述 6 6关键字关键字 7 7标识符标识符 VHDLVHDL中中预预定定义义的有特殊的有特殊还还有的有的词语词语。 ENTITYENTITY、 ARCHITECTUREARCHITECTURE、 END END 、ININ、OUTOUT、 ANDAND、OROR等等 VHDLVHDL中自定中自定义义,用于,用于标标示不同名示不同名称称的的词语词语。 实实体名、端口名等。体名、端口名等。 Mux21aMux21a、b b、oneone等。等。 “ “-”-”,用于注,用于注释释。 3.2

6、 半加器及其半加器及其VHDL描述描述 本位和:本位和: bababaSO baCO进位:进位: 3.2 半加器及其半加器及其VHDL描述描述 3.2 半加器及其半加器及其VHDL描述描述 3.2 半加器及其半加器及其VHDL描述描述 1. 1. 实体表达与实体名实体表达与实体名 实体表达实体表达 :描述电路器件的端口构成和信号属性:描述电路器件的端口构成和信号属性 实体名实体名 :e_name eg: mux21a;counter4b 错误:错误:3(数字)、(数字)、OR2(已定义已定义)、74LS02(数字起头数字起头) 设计实体:库设计实体:库+ +实体实体+ +结构体结构体 3.2

7、半加器及其半加器及其VHDL描述描述 2. 结构体表达结构体表达 说明语句:对结构体的功能描述语句中用到的数据类型、常说明语句:对结构体的功能描述语句中用到的数据类型、常 数、信号、子程序和元件等元素的加以说明。数、信号、子程序和元件等元素的加以说明。 功能描述语句:可以是并行或顺序语句或组合。功能描述语句:可以是并行或顺序语句或组合。 END ARCHITECTURE one ; 93标准 END; 87标准 3.2 半加器及其半加器及其VHDL描述描述 3. 3. 标准逻辑位数据类型标准逻辑位数据类型STD_LOGIC STD_LOGIC BITBIT数数据据类类型定型定义义: TYPE

8、BIT IS(0,1); -TYPE BIT IS(0,1); -只有只有两种两种取取值值 STD_LOGICSTD_LOGIC数数据据类类型定型定义义: TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-); TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-); -九种取值九种取值 只能综合:只能综合: X(或或-,),0,1,Z, 3.2 半加器及其半加器及其VHDL描述描述 4. 4. 赋值符号和逻辑操作符赋值符号和逻辑操作符 AND(与)、(与)、OR(或)、(或)、NOT(非)、(非)、NAND(与非)、(与非)、NOR(或(或 非)、非

9、)、XOR(异或)、(异或)、XNOR(同或)七种(同或)七种 操作数据类型:操作数据类型:BIT、BOOLEAN、STD_LOGIC 目标信号名目标信号名=驱动表达式驱动表达式 3.2 半加器及其半加器及其VHDL描述描述 5. 5. 设计库和标准程序包设计库和标准程序包 设计库和标准程序包:设计库和标准程序包: 许多数据类型的说明及类似的函数放于设计库和程序包中。许多数据类型的说明及类似的函数放于设计库和程序包中。 LIBRARY WORK ;-默认工作库,工程文件所在文件夹为默认工作库默认工作库,工程文件所在文件夹为默认工作库 LIBRARY STD ; -默认标准库默认标准库 USE

10、STD.STANDARD.ALL ;-默认程序包,其中有默认程序包,其中有BIT的定义。的定义。 定义表达式:定义表达式:LIBRARY ; USE .ALL ; eg: LIBRARY IEEE ; USE IEEE.STD_LOGIC_1164.ALL;-其中有其中有STD_LOGIC的定义的定义 3.2 半加器及其半加器及其VHDL描述描述 3.2 半加器及其半加器及其VHDL描述描述 6 6文件取名和存盘文件取名和存盘 7 7规范的程序书写格式规范的程序书写格式 后缀:后缀:“.vhd” 文件名与实体名一致:文件名与实体名一致:adder_f.vhd vhdl程序必须存入文件夹中。程序

11、必须存入文件夹中。 3.3 四选一多路选择器及其四选一多路选择器及其 VHDL描述描述 3.3.1 3.3.1 四选一多路选择器及四选一多路选择器及CASECASE语句表述方式语句表述方式 3.3 四选一多路选择器及其四选一多路选择器及其VHDL描述描述 3.3.1 四选一多路选择器及四选一多路选择器及CASE语句表述方式语句表述方式 CASE IS When = ; . ; ; When = ; . ; ; . WHEN OTHERS = ; END CASE ; CASECASE语句为顺序语句,在进程语句中使用语句为顺序语句,在进程语句中使用, ,直接表达真值表直接表达真值表 3.3 四选

12、一多路选择器及其四选一多路选择器及其 VHDL描述描述 3.3.2 CASE3.3.2 CASE语句语句 l 选择值在表达式取值范围内,数据类型必须匹配选择值在表达式取值范围内,数据类型必须匹配 l WHEN OTHERS使用:使选择值涵盖表达式的所有取值使用:使选择值涵盖表达式的所有取值 只能作为最后一个条件取值出现一次只能作为最后一个条件取值出现一次 l 选择值只出现一次选择值只出现一次 l 必须且只能选中条件语句中的一条执行必须且只能选中条件语句中的一条执行 3.3 四选一多路选择器及其四选一多路选择器及其 VHDL描述描述 3.3.2 CASE3.3.2 CASE语句语句 多条件选择值

13、表达式:选择值多条件选择值表达式:选择值 |选择值选择值 单个普通数值,如单个普通数值,如6。 数值选择范围,如数值选择范围,如(2 TO 4)(2 TO 4),表示取值为,表示取值为2 2、3 3或或4 4。 并列数值,如并列数值,如3 3 5 5,表示取值为,表示取值为3 3或者或者5 5。 混合方式,以上三种方式的混合。混合方式,以上三种方式的混合。 选择值选择值 表达表达 方式方式 3.3.2 CASE3.3.2 CASE语句语句 3.3 四选一多路选择器及其四选一多路选择器及其 VHDL描述描述 3.3 四选一多路选择器及其四选一多路选择器及其 VHDL描述描述 3.3.2 CASE

14、3.3.2 CASE语句语句 3.3 四选一多路选择器及其四选一多路选择器及其 VHDL描述描述 3.3.2 CASE3.3.2 CASE语句语句 3.3 四选一多路选择器及其四选一多路选择器及其 VHDL描述描述 3 3点注意:点注意: (1 1)不加)不加OTHERS,OTHERS,综合器判错。综合器判错。 (2 2) 加了加了WHEN OTHERS =NULLWHEN OTHERS =NULL,可能在输出口综合出,可能在输出口综合出 时序模块时序模块; ; (3 3)加了)加了WHEN OTHERS =out1out1 连接端口名连接端口名,.); u1 : h_adder PORT M

15、AP(a=ain,co=d,so=e); 插座号插座号 : 元件名元件名 PORT MAP(元件端口名元件端口名 =顶层系统端口名或通信线名顶层系统端口名或通信线名); 端口名关联法也称为端口名映射法。端口名关联法也称为端口名映射法。 位置关联法或称位置映射法。位置关联法或称位置映射法。 以位置的对应关系连接相应的端口。以位置的对应关系连接相应的端口。 3.4 全加器及其全加器及其VHDL表述表述 半加器不能改为:半加器不能改为: 3.4 全加器及其全加器及其VHDL表述表述 3.4.3 83.4.3 8位加法器设计及算术操作符应用位加法器设计及算术操作符应用 3.4 全加器及其全加器及其VH

16、DL表述表述 3.4.3 83.4.3 8位加法器设计及算术操作符应用位加法器设计及算术操作符应用 “+”“+”号的两个操作数实现标准逻辑位矢量相加,需调用运算符重载号的两个操作数实现标准逻辑位矢量相加,需调用运算符重载 函数,以便赋予加号函数,以便赋予加号“+”+”具备新的数据类型的操作功能具备新的数据类型的操作功能 。 运算符重载函数:重新定义运算符,允许被重载的运算符能够对新的运算符重载函数:重新定义运算符,允许被重载的运算符能够对新的 数据类型进行操作,或允许不同的数据类型之间用此运算符进行运算。数据类型进行操作,或允许不同的数据类型之间用此运算符进行运算。 使用语句使用语句 USE

17、IEEE_LOGIC_UNSIGNED.ALLUSE IEEE_LOGIC_UNSIGNED.ALL 3.4 全加器及其全加器及其VHDL表述表述 信号赋值:信号赋值:a=a+1 信号信号:如同一根导线在整个结构体如同一根导线在整个结构体(电路电路)中传递信息。中传递信息。 变量:只在进程和子程序中使用,作为临时存放数据的单元变量:只在进程和子程序中使用,作为临时存放数据的单元 ,不能将信息带出,不能将信息带出 对它做出定义的当前结构,其适用范围仅限于定义变量的进程和子程序中。对它做出定义的当前结构,其适用范围仅限于定义变量的进程和子程序中。 3.5 乘法器及其乘法器及其VHDL表述表述 3.

18、5.1 3.5.1 统计位矢中含统计位矢中含1 1个数的电路模块设计个数的电路模块设计 3.5.1 3.5.1 统计位矢中含统计位矢中含1 1个数的电路模块设计个数的电路模块设计 2.2.不完整条件句:不完整条件句:IF-THENIF-THEN:构成时序逻辑电路,没有给出全部所:构成时序逻辑电路,没有给出全部所 有的条件及处理方法,引入了存储器等时序电路。不完整条件句是有的条件及处理方法,引入了存储器等时序电路。不完整条件句是 VHDLVHDL描述时序电路的重要途径。描述时序电路的重要途径。 3.3.使用了使用了FOR-LOOPFOR-LOOP循环语句循环语句 。 3.5 乘法器及其乘法器及其

19、VHDL表述表述 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.2 FOR_LOOP循环语句用法循环语句用法 (1) 单个单个LOOP语句,其语法格式如下:语句,其语法格式如下: LOOP标号:标号: LOOP 顺序语句顺序语句 -必须引入跳出循环的控制语句必须引入跳出循环的控制语句 END LOOP LOOP标号标号 ; 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.2 FOR_LOOP循环语句用法循环语句用法 (2) FOR_LOOP语句,语法格式如下:语句,语法格式如下: LOOP标号:标号: FOR 循环变量循环变量IN 循环次数范围循环次数范围 LOOP 顺序语句顺序

20、语句 END LOOP LOOP标号标号; “循环变量循环变量”是一个临时变量,属是一个临时变量,属LOOPLOOP语句的局部变量,不必事先定义。语句的局部变量,不必事先定义。 “循环次数范围循环次数范围”规定规定LOOPLOOP语句中的顺序语句被执行的次数。循环变量从循环次语句中的顺序语句被执行的次数。循环变量从循环次 数范围的初值开始,每执行完一次顺序语句后递增数范围的初值开始,每执行完一次顺序语句后递增1 1,直至达到循环次数范围指定,直至达到循环次数范围指定 的最大值,循环的范围以常数表示。的最大值,循环的范围以常数表示。 每一次循环都将产生一个硬件电路。每一次循环都将产生一个硬件电路

21、。 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.3 移位相加型乘法器的移位相加型乘法器的VHDL表述方法表述方法 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.4 GENERIC参数定义语句参数定义语句 GENERIC( 常数名常数名 : 数据类型数据类型 : 设定值设定值 ;常数名常数名 : 数据类型数据类型 : 设定值设定值 ) ; 参数传递说明语句(参数传递说明语句(GENERIC 语句)是一种常数参数的语句)是一种常数参数的端口界面端口界面, 为所说明的环境提供了一种静态信息通道。被传递的参数或称类属参为所说明的环境提供了一种静态信息通道。被传递的参数或称类属参 量(

22、类属值或类属变量)可以由设计实体外部提供。设计者可以通过量(类属值或类属变量)可以由设计实体外部提供。设计者可以通过 参数传递说明语句中的类属参量的重新设定,改变一个设计实体或一参数传递说明语句中的类属参量的重新设定,改变一个设计实体或一 个元件的内部电路结构和规模。个元件的内部电路结构和规模。 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.5 整数数据类型整数数据类型 整数类型整数类型 :包含正整数、负整数和零,定义在:包含正整数、负整数和零,定义在STD库的库的STANDARD 包包 中;综合器将中;综合器将INTEGER综合为无符号数综合为无符号数 1,35 十进制整数十进制整数

23、 10E3 十进制整数,等于十进制整数十进制整数,等于十进制整数1000 16#D9# 十六进制整数,等于十六进制整数十六进制整数,等于十六进制整数D9H 8#720# 八进制整数,等于八进制整数八进制整数,等于八进制整数720O 2#11010010# 二进制整数,等于二进制整数二进制整数,等于二进制整数11010010B RANGERANGE子句限定数的范围,确定二进制位数:子句限定数的范围,确定二进制位数: 4 4位二进制数,位二进制数,Q(3)-Q(0)Q(3)-Q(0) Q : BUFFER NATURAL RANGE 15 DOWNTO 0; 自然数 3.5 乘法器及其乘法器及其V

24、HDL表述表述 3.5.6 省略赋值操作符省略赋值操作符 SIGNAL d1 : STD_LOGIC_VECTOR(4 DOWNTO 0); VARIABLE a1 : STD_LOGIC_VECTOR(15 DOWNTO 0); . d1 0); a1 := (OTHERS=0) ; 等同于:等同于:d1 = “00000”; a1 :=“0000000000000000” ; d2 1,3=1,OTHERS=0) ;等同于等同于 :d2=“000001010” 可在较多位的位矢量赋值中作省略化赋值:可在较多位的位矢量赋值中作省略化赋值: 以下两式赋值等同:以下两式赋值等同: d1 e(3)

25、,3=e(5), OTHERS=e(1) ); d1 = e(1) 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.7 移位操作符移位操作符 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.8 各类运算操作对数据类型的要求各类运算操作对数据类型的要求 所有数据作无符号数处理。所有数据作无符号数处理。 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.8 各类运算操作对数据类型的要求各类运算操作对数据类型的要求 所有数据作有符号数处理。所有数据作有符号数处理。 无符号数:无符号数:“0101”“1001” “0101” *“1001” =5*(-7)=-35=-x”23” =“1

26、0100011”(原码原码) =“11011101”(补码补码)=X“DD” 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.8 各类运算操作对数据类型的要求各类运算操作对数据类型的要求 所有数据作无符号数处理。所有数据作无符号数处理。 同例3-15 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.8 各类运算操作对数据类型的要求各类运算操作对数据类型的要求 所有数据作有符号数处理。所有数据作有符号数处理。 同例3-16 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.8 各类运算操作对数据类型的要求各类运算操作对数据类型的要求 3.5 乘法器及其乘法器及其VHDL表述表述 3.5.8 各类运算操作对数据类型的要求各类运算操作对数据类型的要求 VHDLVHDL中的操作符与操作数间的运算特别注意:中的操作符与操作数间的运算特别注意: 严格遵循在基本操作符间操作数是相同的数据类型严格遵循在基本操作符间操作数是相同的数据类型 严格遵循操作数的数据类型必须与操作符要求的数据类型相同严格遵循操作数的数据类型必须与操

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论