版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第3 3章章 VHDL设计初步设计初步 1 组合电路的组合电路的VHDL描述描述2 基本时序电路的基本时序电路的VHDL描述描述3 计数器的计数器的VHDL描述描述 使用计数器的使用计数器的VHDL描述描述2选选1多路选择器多路选择器全加器全加器3.1.1 2选选1多路选择器及其多路选择器及其VHDL描述描述1 3.1.1 2选选1多路选择器及其多路选择器及其VHDL描述描述1 3.1.1 2选选1多路选择器及其多路选择器及其VHDL描述描述1 ENTITY mux21a IS PORT ( a : IN BIT; b : IN BIT; s : IN BIT; y : OUT BIT );
2、END ENTITY mux21a;ARCHITECTURE one OF mnx21a IS BEGIN y = a WHEN s=0 ; ELSE b; END ARCHITECTURE one;VHDL表述的二选一多路选择器完整电路模块程序VHDL实体描述部分VHDL结构体描述部分电路模块端口说明和定义段电路模块逻辑功能描述部分3.1.1 2选选1多路选择器及其多路选择器及其VHDL描述描述1 1. 实体表达实体表达ENTITY e_name IS PORT ( p_name : port_m data_type; p_namei : port_mi data_type );END EN
3、TITY e_name;2. 实体名实体名注意:注意: (1)不应用数字或中文定义实体名;)不应用数字或中文定义实体名;(2)不应用)不应用EDA软件工具库中以定义好的元件名作为实软件工具库中以定义好的元件名作为实体名体名 如如or2、latch等;等;(3)不能用数字起头的实体名,)不能用数字起头的实体名, 如如74LS160;3. 端口语句和端口信号名端口语句和端口信号名注意:注意: 标识符都不应用数字、数字起头的文字或中文表示。标识符都不应用数字、数字起头的文字或中文表示。标识符标识符 一般的,程序中所有由设计者子自定义的名称,都是一般的,程序中所有由设计者子自定义的名称,都是标识符。标
4、识符。 如如端口名端口名、实体名实体名、信号名称信号名称等;等;4. 端口模式端口模式 用于定义端口上数据的流动方向和方式。用于定义端口上数据的流动方向和方式。(1)IN:输入端口。:输入端口。 单向只读模式单向只读模式(2)OUT:输出端口。:输出端口。 单向输出模式单向输出模式(3)INOUT:双向端口。:双向端口。 从端口内部看:从端口内部看: -可以对此端口进行赋值可以对此端口进行赋值 -通过此端口读入外部的数据通过此端口读入外部的数据 从端口外部看:从端口外部看: -信号可由此端口流出信号可由此端口流出 -可向此端口输入信号可向此端口输入信号4. 端口模式端口模式(4)BUFFER:
5、缓冲端口。:缓冲端口。 与与OUT类似,但可读。类似,但可读。 5. 数据类型数据类型 VHDL规定:规定: 任何一种数据对象的应用必须严格限定其取值范围和数任何一种数据对象的应用必须严格限定其取值范围和数据类型,即对其传输或存储的数据的类型要做明确的限定。据类型,即对其传输或存储的数据的类型要做明确的限定。 在在VHDL的设计中,必须预先定义好要使用的类型。的设计中,必须预先定义好要使用的类型。BIT数据类型的信号规定的取值范围是逻辑为数据类型的信号规定的取值范围是逻辑为1和和0。6. 结构体表达结构体表达 ARCHITECTURE arch_name OF e_name IS 说明语句说明
6、语句 BEGIN (功能描述语句)(功能描述语句)END ARCHITECTURE arch_name;7. 赋值符号和数据比较符号赋值符号和数据比较符号 7. 赋值符号和数据比较符号赋值符号和数据比较符号 8. WHEN_ELSE条件信号赋值语句条件信号赋值语句 9关键字关键字 10标识符标识符 11规范的程序书写格式规范的程序书写格式 12文件取名和存盘文件取名和存盘3.1.2 2选选1多路选择器及其多路选择器及其VHDL描述描述2 LIBRARY IEEE;USE IEEEE.STD_LOGIC_11164.ALL;ENTITY mux21a IS PORT ( a , b , s :
7、IN BIT; y : OUT BIT );END ENTITY mux21a;ARCHITECTURE one OF mnx21a IS SIGNAL e : STD_LOGIC; SIGNAL d : STD_LOGIC; BEGIN d = a AND (NOT s); e = b AND s; y = d OR e;END ARCHITECTURE one;使用使用布尔布尔函数函数描述描述逻辑逻辑功能功能3.1.2 2选选1多路选择器及其多路选择器及其VHDL描述描述2 1. 逻辑操作符逻辑操作符 2. 标准逻辑位数据类型标准逻辑位数据类型STD_LOGIC 程序包定义表达式程序包定义
8、表达式TYPE BIT IS ( 0 , 1 ); -只有两种取值;只有两种取值;TYPE STD_LOGIC IS (U, X, 0, 1, Z, W, L, H, -,); -有九种取值;有九种取值;2. 标准逻辑位数据类型标准逻辑位数据类型STD_LOGIC TYPE STD_LOGIC IS (U, X, 0, 1, Z, W, L, H, -,); -有九种取值;有九种取值;U :未初始化的:未初始化的X :强未知的:强未知的0 :强逻辑:强逻辑01 :强逻辑:强逻辑1Z :高阻态:高阻态 W :弱未知的:弱未知的L :弱逻辑:弱逻辑0H :弱逻辑:弱逻辑1- :忽略:忽略STD_L
9、OGIC型数据在数字器件中可实现的有型数据在数字器件中可实现的有X, 0, 1, Z。其它类型其它类型 不可综合,只能用于不可综合,只能用于VHDL仿真。仿真。3. 设计库和标准程序包设计库和标准程序包 LIBRARY WORK;LIBRARY STD;USE STD.STANDARD.ALL;LIBRARY ;USE .ALL;LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;4. 信号定义和数据对象信号定义和数据对象 SIGNAL e : STD_LOGIC;SIGNAL d : STD_LOGIC;数据对象数据对象数据类型数据类型d、e的作用:的作用: -
10、或门的两根信号线或门的两根信号线 -两个暂存数据的节点两个暂存数据的节点3.1.3 2选选1多路选择器及其多路选择器及其VHDL描述描述3 LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY mux21a IS PORT ( a , b , s : IN STD_LOGIC; y : OUT STD_LOGIC );END ENTITY mux21a;ARCHITECTURE one OF mnx21a IS PROCESS (a , b , s ) BEGIN IF s = 0 THEN y = a ; ELSE y = b ; END IF; E
11、ND PROCESS; END ARCHITECTURE one;1. 条件语句条件语句 IF - THEN -ELSE -END IF; 顺序语句2. 进程语句和顺序语句进程语句和顺序语句 PROCESS END PROCESS 进程语句PROCESS(a , b , s )进程的敏感信号表进程的敏感信号表3.1.4 半加器及其半加器及其VHDL的描述的描述 3.1.4 半加器及其半加器及其VHDL的描述的描述 3.1.4 半加器及其半加器及其VHDL的描述的描述 1. CASE语句语句 CASE ISWhen = ; ; ;When = ; ; ;When OTHERS = ;END CA
12、SE;注意:注意:1) WHEN条件句中的选择值或标识符所代表的值必须在条件句中的选择值或标识符所代表的值必须在CASE的的的取值范围内,且数据类型也必须匹配。的取值范围内,且数据类型也必须匹配。2)除非所有条件句中的选择值能完整覆盖)除非所有条件句中的选择值能完整覆盖CASE语句中表达式语句中表达式的取值,否则最末一个条件句中的选择必须加上最后语句的取值,否则最末一个条件句中的选择必须加上最后语句 “WHEN OTHERS = ;”3)CASE语句中的选择值只能出现一次,不允许有相同选择值语句中的选择值只能出现一次,不允许有相同选择值的条件语句出现。的条件语句出现。4)CASE语句执行中必须
13、选中,且只能选中所列条件语句中的语句执行中必须选中,且只能选中所列条件语句中的一条。一条。2. 标准逻辑矢量数据类型标准逻辑矢量数据类型 STD_LOGIC_VECTOR :-表达电路中并列的多通道端口或节点,或者总线BUS。 B : OUT STD_LOGIC_VECTOR( 7 DOWNTO 0);或 SIGNAL A : STD_LOGIC_VECTOR( 1 TO 4); B = “01100010”; -其中 B(7) 为 0B (4 DOWNTO 1) = “1101”; -其中 B(7) 为 1B (7 DOWNTO 4) = A; -其中 B(6) 等于A(2)SIGNAL C
14、 : BIT_VECTOR( 3 DOWNTO 0);3. 并置操作符并置操作符 将操作数或数组合并起来形成新的数组矢量。将操作数或数组合并起来形成新的数组矢量。 “VH”& “DL” 结果:结果: “VHDL” 0 &1& 1 结果:结果: “011”3. 并置操作符并置操作符 SIGNAL a : STD_LOGIC_VECTOR (3 DOWNTO 0);SIGNAL d : STD_LOGIC_VECTOR(1 DOWNTO 0);a 连接端口名,);元件说明定义语句的表达方式:元件说明定义语句的表达方式: PORT MAP 端口映射(端口连接)端口映射(端口连
15、接) 端口名端口名 元件定义语句中的端口名表中已定义好的元件端口的名字元件定义语句中的端口名表中已定义好的元件端口的名字 连接端口名连接端口名 顶层系统的端口名顶层系统的端口名3.2.1 D触发器的触发器的VHDL描述描述 1. 上升沿检测表达式和信号属性函数上升沿检测表达式和信号属性函数EVENT EVENT:信号属性函数:信号属性函数用来获得信号行为信息的函数称为信号属性函数。用来获得信号行为信息的函数称为信号属性函数。用来测定某信号的跳变(变化)情况。用来测定某信号的跳变(变化)情况。clockEVENTclockEVENT AND clock=12. 不完整条件语句与时序电路不完整条件
16、语句与时序电路 不完整条件语句不完整条件语句 在条件语句中,没有将所有可能发生的条件给出对应在条件语句中,没有将所有可能发生的条件给出对应的处理方式。的处理方式。 时序电路构建的关键时序电路构建的关键 利用这种不完整的条件语句的描述。利用这种不完整的条件语句的描述。 通常,完整的条件语句只能构成组合逻辑电路。通常,完整的条件语句只能构成组合逻辑电路。3.2.2 VHDL实现时序电路的不同表述实现时序电路的不同表述 3.2.2 VHDL实现时序电路的不同表述实现时序电路的不同表述 3.2.2 VHDL实现时序电路的不同表述实现时序电路的不同表述 3.2.2 VHDL实现时序电路的不同表述实现时序
17、电路的不同表述 3.2.3 异步时序电路设计异步时序电路设计 3.2.3 异步时序电路设计异步时序电路设计 3.3.1 4位二进制加法计数器设计位二进制加法计数器设计 3.3.2 整数类型整数类型 整数数据类型的元素包含整数数据类型的元素包含正整数正整数、负整数负整数和和零零。整数的取值范围:整数的取值范围:-2147483647 +2147483647 可用可用32位有符号的二进制数表示位有符号的二进制数表示通常:通常: VHDL综合器将综合器将INTEGER类型作为有符号数处理类型作为有符号数处理 VHDL仿真器将仿真器将INTEGER类型作为无符号数处理类型作为无符号数处理所以:所以:
18、VHDL综合器要求必须使用综合器要求必须使用 RANGE构成的子句(如构成的子句(如RANGE 15 DOWNTO 0) 为所定义的数限定范围。为所定义的数限定范围。3.3.2 整数类型整数类型 整数常量的书写方式:整数常量的书写方式:注意:整数的表达不加引号。注意:整数的表达不加引号。3.3.2 整数类型整数类型 自然数类型自然数类型NATURAL: -包含包含0和所有正整数。和所有正整数。正整数类型正整数类型POSITIVE: Q : BUFFER NATURAL RANGE 15 DOWNTO 0;定义在定义在VHDL标准程序包标准程序包STANDARD中中3.3.3 计数器计数器的其他
19、的其他VHDL表达方式表达方式 3.3.3 计数器的其他计数器的其他VHDL表达方式表达方式 3.3.3 计数器的其他计数器的其他VHDL表达方式表达方式 接下页接下页接上页接上页1. 十进制计数器相关语法十进制计数器相关语法 变量VARIABLE 信号的赋值符号 = 变量的赋值符号 :=变量的功能:变量的功能: -用于用于数据的暂存数据的暂存1. 十进制计数器相关语法十进制计数器相关语法 “&”的缺点:的缺点:赋值依赖于矢量的长度,当长度改变时必须重新排序。赋值依赖于矢量的长度,当长度改变时必须重新排序。2. 程序分析程序分析2. 程序分析程序分析3. 时序模块中的同步控制信号和异步
20、控制信号的构建时序模块中的同步控制信号和异步控制信号的构建 在在IF_ELSIF_THEN语句结构中:语句结构中: 凡是放在时钟边沿测试条件语句以外的控制信号都是凡是放在时钟边沿测试条件语句以外的控制信号都是异步控制信号异步控制信号。 如:如: RST 凡是放在时钟边沿测试条件语句以内的控制信号都是凡是放在时钟边沿测试条件语句以内的控制信号都是同步控制信号同步控制信号。 如:如: EN4. 另一种描述方式另一种描述方式 两个独立的进程语句表达:两个独立的进程语句表达: 一、时序进程(时钟进程)一、时序进程(时钟进程) 二、组合进程二、组合进程3.3.3 计数器的其他计数器的其他VHDL表达方式
21、表达方式 3. 时序模块中的同步控制信号和异步控制信号的构建时序模块中的同步控制信号和异步控制信号的构建 4. 另一种描述方式另一种描述方式 3-1 画出与以下实体描述对应的原理图符号元件:画出与以下实体描述对应的原理图符号元件:3-2 图图3-16所示的是所示的是4选选1多路选择器,试分别用多路选择器,试分别用IF_THEN语句、语句、WHEN_ELSE和和CASE语句的表达方式写出此电路的语句的表达方式写出此电路的VHDL程序,要求程序,要求选择控制信号选择控制信号s1和和s0的数据类型为的数据类型为STD_LOGIC;当;当s1=0,s0=0;s1=0,s0=1;s1=1,s0=0和和s
22、1=1,s0=1时,分别执行时,分别执行y=a、y=b、y=c、y=d。 3-3图图3-17所示的是双所示的是双2选选1多路选择器构成的电路多路选择器构成的电路MUXK,对于其中,对于其中MUX21A,当,当s=0和和s=1时,分别有时,分别有y=a和和y=b。试在一个结构。试在一个结构体中用两个进程来表达此电路,每个进程中用体中用两个进程来表达此电路,每个进程中用CASE语句描述一个语句描述一个2选选1多路选择器多路选择器MUX21A。3-4 将将3-20程序的计数器改为程序的计数器改为12进制计数器,程序用例进制计数器,程序用例3-21的方式表的方式表述,并且将复位述,并且将复位RST改为
23、同步清改为同步清0控制,加载信号控制,加载信号LOAD改为异步控制改为异步控制方式。讨论例方式。讨论例3-20与例与例3-21的异同点。的异同点。3-5 设计含有异步清零和计数使能的设计含有异步清零和计数使能的16位二进制加减可控计数器。位二进制加减可控计数器。3-6 图图3-18是一个含有上升沿触发的是一个含有上升沿触发的D触发器的时序电路,试写出此电触发器的时序电路,试写出此电路的路的VHDL设计文件。设计文件。 3-7 给出给出1位全减器的位全减器的VHDL描述。要求:描述。要求:(1)首先设计)首先设计1位半减器,然后用例化语句将它们连接起来,图位半减器,然后用例化语句将它们连接起来,图3-19中中h_ suber是半减器,是半减器,diff是输出差,是输出差,s _out是借位输出,是借位输出,sub _in是是借位输入。借位输入。(2)根据图)根据图3-19设计设计1位全减器。以位全减器。以1位全减器为基本硬件,构成串行位全减器为基本硬件,构成串行借位的借位的8位减法器,要求用例化语
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐饮冷链解决方案
- 建设工程管理总结
- 高三化学二轮复习 -《探究性实验微专题》说播课课件
- 防溺水防雷击安全教育
- 开花树课件教学课件
- 3.3.2氮氧化物及含氮废水的处理 课件高一上学期化学鲁科版(2019)必修第一册
- 药物滥用危害健康
- 迈柯维呼吸机培训
- 急性创伤相关知识及护理常规
- 酒店如何做好食品安全
- 心理应激与心身疾病-PPT课件
- 《中国古代文学史——第四编:隋唐五代文学》PPT课件(完整版)
- 第5章金融资产ppt课件
- 硬笔书法兴趣小组(社团)活动计划+教案
- (高清正版)JJF(浙)1149-2018生物实验用干式恒温器校准规范
- 廉洁校园你我共塑PPT课件(带内容)
- 建设银行股份关联交易申报及信息披露系统操作手册新一代
- 水文信息采集与处理习题
- 星级酒店服务技能大赛活动方案
- 义务教育《道德与法治》课程标准(2022年版)
- 中职数学认识多面体与旋转体(课堂PPT)
评论
0/150
提交评论