EDA技术及应用 第四章 VHDL设计初步

上传人:仙*** 文档编号:52201033 上传时间:2022-02-07 格式:PPT 页数:58 大小:892.52KB
收藏 版权申诉 举报 下载
EDA技术及应用 第四章 VHDL设计初步_第1页
第1页 / 共58页
EDA技术及应用 第四章 VHDL设计初步_第2页
第2页 / 共58页
EDA技术及应用 第四章 VHDL设计初步_第3页
第3页 / 共58页
资源描述:

《EDA技术及应用 第四章 VHDL设计初步》由会员分享,可在线阅读,更多相关《EDA技术及应用 第四章 VHDL设计初步(58页珍藏版)》请在装配图网上搜索。

1、第四章第四章 VHDL设计初步设计初步4.1 多路选择器的VHDL描述4.2 寄存器描述及其VHDL语言现象4.3 1位二进制全加器的VHDL描述4.4 计数器设计4.5 一般加法计数器设计教学目的教学目的通过简单、完整而典型的通过简单、完整而典型的VHDL设计示例,初步了解用设计示例,初步了解用VHDL表达和表达和设计电路的方法。设计电路的方法。4.1 多路选择器的VHDL描述1. 2选1多路选择器的示意图和真值表absyax0axb1babys01当s=0时,y=a当s=1时,y=b4.1 多路选择器的VHDL描述2. 2选1多路选择器实现原理图形输入法001y=a0a110y=bb04.

2、1 多路选择器的VHDL描述2. 2选1多路选择器实现VHDL文本输入法1实体实体结构体结构体实体名称实体名称端口名称端口名称流动方向流动方向数据类型数据类型bssay结构体名结构体名功能描述功能描述4.1 多路选择器的VHDL描述2. 2选1多路选择器实现VHDL文本输入法2实体实体结构体结构体4.1 多路选择器的VHDL描述2. 2选1多路选择器实现VHDL文本输入法3实体实体结构体结构体4.1 多路选择器的VHDL描述3. 相关语句结构和语法实体表达结构ENTITY、IS、PORT、END都是描述实体的关键词,不分大写小写,但是为了便于阅读,一般在设计中将关键词使用大写,自定义使用小写。

3、4.1 多路选择器的VHDL描述3. 相关语句结构和语法实体名称实体名表达的是该设计电路的器件名,通常根据相应电路的功能来确定。不能用数字或中文、不能与工具库中已定义的元件名、不能数字开头。4.1 多路选择器的VHDL描述3. 相关语句结构和语法实体名称举例mux4174LS04 and2adder4bnot4输入与门4.1 多路选择器的VHDL描述3. 相关语句结构和语法端口语句和名称端口以PORT();来引导端口模式有:IN、OUT、INOUT、BUFFER数据类型有:BOOLEAN、BIT、INTEGER、CHAR型等4.1 多路选择器的VHDL描述3. 相关语句结构和语法结构体表达结构

4、ARCHITECTURE、OF、IS、BEGIN、END都是描述结构体的关键词。功能描述语句:并行语句,顺序语句并行语句:WHEN_ELSE,逻辑操作赋值顺序语句:IF_THEN_ELSE功能描述语句4.1 多路选择器的VHDL描述3. 相关语句结构和语法文件名称使用VHDL语句编写:后缀是.vhd使用Verilog HDL语句编写:后缀是.v使用原理图输入设计:后缀是.gdf文件名称建议和实体名称相同4.1 多路选择器的VHDL描述4. 思考y = ab + c_思考1:画出真值表a b c yxx 1 10 x 0 01 b 0 b_4.1 多路选择器的VHDL描述4. 思考y = ab

5、+ c_思考2:使用原理图方式实现上式功能4.1 多路选择器的VHDL描述4. 思考y = ab + c_思考3:使用VHDL实现上式功能4.1 多路选择器的VHDL描述5. 赋值符号Y = (a AND (NOT s) or (b AND s)赋值符号4.1 多路选择器的VHDL描述6. 各种表达式的比较-布尔逻辑表达式y = (a AND (NOT s) OR (b AND s)bssay4.1 多路选择器的VHDL描述6. 各种表达式的比较-条件赋值表达式y = a WHEN s1=0 ELSE b ;赋值目标 = 表达式 WHEN 赋值条件 ELSE 表达式 WHEN 赋值条件 ELS

6、E 表达式 WHEN 赋值条件 ELSE 表达式 ;4.1 多路选择器的VHDL描述7. 各种表达式的比较-IF_THEN_ELSE表达IF (s=0) THEN y=a; ELSE y=b;END IF;IF 条件表达式 THEN 赋值语句;ELSIF 条件表达式 THEN 赋值语句;ELSIF 条件表达式 THEN 赋值语句;ELSE 条件表达式 ;END IF;4.1 多路选择器的VHDL描述8. 小结4.1 节中主要通过多路选择器的实现过程,学习了VHDL描述的基本语言结构,以及组合逻辑电路的功能描述方法布尔逻辑表达式WHEN_ELSE条件表达式IF_THEN_ELSE表达式4.2 寄

7、存器描述及其VHDL语言1. 教学目的通过D触发器的VHDL实现过程,学习时序电路时序电路的VHDL描述方法。4.2 寄存器描述及其VHDL语言2. D触发器的功能描述当CP=0时,触发器不工作,处于维持状态。当CP=1时,它的功能如下:当D=0时,次态=0,当D=1时,次态=1。CPDQDFF4.2 寄存器描述及其VHDL语言3. VHDL实现LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY dff1 ISPORT( clk : IN STD_LOGIC; d: IN STD_LOGIC;q: OUT STD_LOGIC);END dff1;AR

8、CHITECTURE bhv OF dff1 ISSIGNAL q1 : STD_LOGIC;BEGIN PROCESS (clk,q1) BEGINIF CLKEVENT AND CLK=1 THEN q1 = d;END IF; END PROCESS; q=q1;END bhv;引用库数据类型内部节点时钟条件4.2 寄存器描述及其VHDL语言4. VHDL实现引用库LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;LIBRARY 设计库名称;USE 设计库.程序包名.ALL;数据类型、函数等放在设计库中和程序包中。因为使用了STD_LOGIC的数据类型,而

9、该数据类型放置在设计库IEEE的STD_LOGIC_1164程序包中,所以在使用前需要先申明。4.2 寄存器描述及其VHDL语言4. VHDL实现数据类型PORT(clk : IN STD_LOGIC; d: IN STD_LOGIC;q: OUT STD_LOGIC);BIT的定义:TYPE BIT IS (0, 1);STD_LOGIC的定义:TYPE STD_LOGIC IS (U,X,0,1,Z,W,L,H,-)4.2 寄存器描述及其VHDL语言4. VHDL实现信号定义(内部节点)SIGNALq1 : STD_LOGIC;不必定义端口模式(如IN、OUT)目的是为了设计更大的时序电路

10、qq1X1PORT(clk : IN STD_LOGIC; d: IN STD_LOGIC;q: OUT STD_LOGIC);q=q1;4.2 寄存器描述及其VHDL语言4. VHDL实现时钟表达式IF clkEVENT AND clk=1检测时钟信号的上升沿表示clk信号有变化,并且变化后为14.2 寄存器描述及其VHDL语言4. VHDL实现存储功能的产生不完整的条件语句实现存储功能元件如果是完整的条件语句,则只能构成逻辑电路IF clkEVENT AND clk=1THEN q1 = d;END IF;4.2 寄存器描述及其VHDL语言5. 实现时序电路的不同描述IF (clkEVEN

11、T) AND (clk=1) AND (clkLAST_VALUE=0)IF (clk=1) AND (clkLAST_VALUE=0)IF rising_edge(clk) -STD_LOGIC_1164定义定义Wait until clk = 1;4.2 寄存器描述及其VHDL语言6. 同步时序电路和异步时序电路移位寄存器移位寄存器二进制计数器二进制计数器只需一个时钟进程只需一个时钟进程需两个时钟进程需两个时钟进程4.2 寄存器描述及其VHDL语言6. 同步时序电路和异步时序电路PROCESS (clk)BEGIN*END PROCESS;PROCESS (q)BEGIN*END PROC

12、ESS;4.3 1位二进制全加器的VHDL描述1. 半加器功能描述全加器可由两个半加器和一个或门构成半加器是最简单的加法器,把半加器是最简单的加法器,把2个个1位二进位二进制数相加,不考虑低位的进位制数相加,不考虑低位的进位 ,产生一个,产生一个2位和,和的低位叫半加和,高位叫半加进位位和,和的低位叫半加和,高位叫半加进位半加器由一个与门,一个或门和一个异或门构成4.3 1位二进制全加器的VHDL描述2. 半加器真值表及电路图abco so0000010110011110co = a AND bso = a XOR b4.3 1位二进制全加器的VHDL描述3. 半加器VHDL描述方法布尔表达式

13、LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY h_adder IS PORT( a,b : IN STD_LOGIC; co,so: OUT STD_LOGIC);END h_adder;ARCHITECTURE a OF h_adder ISBEGINco = a AND b;so = a XOR b;END a;4.3 1位二进制全加器的VHDL描述3. 半加器VHDL描述方法真值表表达方式abco so00000101100111104.3 1位二进制全加器的VHDL描述4. 全加器图形输入法考虑低位进位的情况下,考虑低位进位的情况下,2

14、个输入和个输入和4.3 1位二进制全加器的VHDL描述5. 全加器VHDL描述或门通过顶层调用底层元件,实现全加器,下面使用通过顶层调用底层元件,实现全加器,下面使用VHDL描述描述实现或门逻辑。实现或门逻辑。LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY or2aIS PORT( a,b : IN STD_LOGIC; c : OUT STD_LOGIC);END or2a;ARCHITECTURE a OF or2aISBEGIN c = a or b;END a;4.3 1位二进制全加器的VHDL描述5. 全加器VHDL描述顶层设计通过顶层

15、调用底层元件,实现全加器通过顶层调用底层元件,实现全加器def4.3 1位二进制全加器的VHDL描述6. 新学内容总结a. 标准逻辑矢量数据类型标准逻辑矢量数据类型b.并置操作符并置操作符c. CASE语句语句d. 顶层描述及例化语句顶层描述及例化语句4.3 1位二进制全加器的VHDL描述6. 新学内容总结标准逻辑矢量数据类型STD_LOGIC_VECTOR 标准一维数组,标准一维数组,数组中每一位的数据类型都是数组中每一位的数据类型都是STD_LOGICSTD_LOGIC 标准位类型标准位类型定义方法:定义方法:A : OUT STD_LOGIC_VECTOR(7 DOWNTO 0)B :

16、OUT STD_LOGIC_VECTOR(1 TO 5)赋值方法:赋值方法:A = “01010101”; A(7 DOWNTO 4 ) =“0101”;4.3 1位二进制全加器的VHDL描述6. 新学内容总结并置操作符并置操作符并置操作符&的作用:的作用:将操作数或者数组合并成新的数组将操作数或者数组合并成新的数组操作符操作符 举例举例 功能功能= c, IF(s=0)THEN比较操作符比较操作符 & abc = a & b并置操作符并置操作符 使用方法:使用方法:0 & 1 & a & d(1)定义信号定义信号注释操作符注释操作符 4.3 1位二进制全加器的VHDL描述6. 新学内容总结C

17、ASE语句利用利用CASE语句可以直接表达电路的逻辑真值表,语句可以直接表达电路的逻辑真值表,有效直观有效直观功能表达语句功能表达语句 功能功能cain,b=bin,co=d,so=e);u2 : h_adder2 PORT MAP(a=e,b=cin,co=f,so=sum);u3 : or2a PORT MAP(a=d,b=f,c=cout);1.例化名相当于电子电路里的标号例化名相当于电子电路里的标号2.元件名即调用的元件实体的名称,相对于器件名称元件名即调用的元件实体的名称,相对于器件名称3.PORT MAP表示端口映射,端口到外部引脚或引线表示端口映射,端口到外部引脚或引线的连接关系

18、的连接关系4.两个例化元件之间不能直接连接两个例化元件之间不能直接连接5. = 是连接符号是连接符号例化名例化名: 元件名元件名 PORT MAP(端口名端口名=X, 端口名端口名=Y, )4.3 1位二进制全加器的VHDL描述7. 思考 习题4-2 思考 习题4-3 思考 习题4-44.4 计数器设计1. 计数器的VHDL描述BUFFERINTEGERq=q+14.4 计数器设计1. 计数器的VHDL描述BUFFERBUFFERINOUTINOUT元件元件等效于在结构体等效于在结构体BEGIN之前定义了一个信号,供反馈使之前定义了一个信号,供反馈使用用4.4 计数器设计1. 计数器的VHDL

19、描述INTEGERINTEGERBITSTD_LOGICSTD_LOGIC_VECTOR1.INTEGER类型可用类型可用32位有符号的二进制数表示,位有符号的二进制数表示,取值范围:取值范围:-2147483647+21474836472.INTEGER必须有必须有RANGE限定范围,否则无法综合限定范围,否则无法综合3.VHDL规定加、减等算术符对应的操作数的数据类规定加、减等算术符对应的操作数的数据类型只能是型只能是INTEGER型(除非重载算术操作符)型(除非重载算术操作符)4.NATURAL、POSITIVE是是INTEGER的子类型的子类型5.在语句中在语句中INTEGER类型表达

20、式不加类型表达式不加 4.4 计数器设计1. 计数器的VHDL描述运算符重载4.4 作业1. 端口模式有那些?各有什么区别?2. 习题4-24.5 4位2进制计数器设计1. 带进位计数器的VHDL描述LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;ENTITY cnt4 IS PORT( clk : IN STD_LOGIC; q : BUFFER INTEGER RANGE 15 DOWNTO 0; c : OUT STD_LOGIC);END cnt4 ;ARCHITECTURE a OF cnt4 ISBEGINPROCESS(clk)BEGINIF(c

21、lkEVENT AND (clk = 1) THEN IF (q 15) THEN q =q +1; c=0;ELSE q = 0; c clk, q = qL, c=s1 );u2: cnt4 PORT MAP(clk = s1 , q = qH, c=cout);END a;4.5 作业1.设计一位十进制计数器,即计数范围09要求:有进位输出2. 使用第一题中的一位十进制计数器,设计3位十进制计数器,即计数范围000999 要求:有进位输出采用顶层设计的方法,调用习题1的设计。4.5 作业1.设计一位十进制计数器,即技术范围09要求:有进位输出LIBRARY IEEE;USE IEEE.S

22、TD_LOGIC_1164.ALL;ENTITY cntten IS PORT( clk : IN STD_LOGIC; q : BUFFER INTEGER RANGE 9 DOWNTO 0; c : OUT STD_LOGIC);END cntten ;ARCHITECTURE a OF cntten ISBEGINPROCESS(clk)BEGINIF(clkEVENT AND (clk = 1) THEN IF (q 9) THEN q =q +1; c=0;ELSE q = 0; c clk, q = qL, c=s1 ); u2: cntten PORT MAP(clk = s1 , q = qH, c=s2); u3: cntten PORT MAP(clk = s2 , q = qV, c=cout);END a;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!