教学课件:第3章VHDL基础课稿.ppt
第三章第三章 VHDL设计初步设计初步v一、程序结构一、程序结构v二、语句二、语句v三、端口信号数据类型三、端口信号数据类型v四、时序逻辑电路四、时序逻辑电路组合逻辑电路组合逻辑电路3.1 组合逻辑电路的设计(复习)组合逻辑电路的设计(复习)v组合逻辑电路的最小单元是门电路组合逻辑电路的最小单元是门电路v与门,或门,非门与门,或门,非门v与非门,或非门,异或门,与或非门与非门,或非门,异或门,与或非门v三态门,三态门,OC门门1、三输入端与非门、三输入端与非门va、逻辑函数表达式、逻辑函数表达式vb、真值表、真值表(truth table)A B CY0 0 00 0 01 10 0 10 0 11 10 1 00 1 01 10 1 10 1 11 11 0 01 0 01 11 0 11 0 11 11 1 01 1 01 11 1 11 1 10 0c、逻辑符号、逻辑符号1、三输入端与非门、三输入端与非门vb、真值表、真值表(truth table)A B CY0 0 00 0 01 10 0 10 0 11 10 1 00 1 01 10 1 10 1 11 11 0 01 0 01 11 0 11 0 11 11 1 01 1 01 11 1 11 1 10 03.1 组合逻辑电路的组合逻辑电路的VHDL描述描述v1、三输入端与非门、三输入端与非门v下面给出下面给出“三输入端与非门三输入端与非门”的的VHDL程序程序 三输入与非门三输入与非门VHDL程序程序vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity nand3_gate1 isv port(a,b,c:in std_logic;v y:out std_logic);vEnd nand3_gate1;vArchitecture ab of nand3_gate1 isvBeginv y=not(a and b and c);vEnd ab;v(程序中的英文不区分大小写程序中的英文不区分大小写)程序结构(三输入与非门)程序结构(三输入与非门)v要求:先学会看程序结构要求:先学会看程序结构 三输入与非门程序三输入与非门程序(程序结构)(程序结构)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity nand3_gate1 isv port(a,b,c:in std_logic;v y:out std_logic);vEnd nand3_gate1;vArchitecture ab of nand3_gate1 isvBeginv y=not(a and b and c);vEnd ab;v(程序中的英文不区分大小写程序中的英文不区分大小写)实体实体结构体结构体库与程序包库与程序包v书中找任意程序看书中找任意程序看 程序结构程序结构三输入与非门程序三输入与非门程序(程序结构)(程序结构)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity nand3_gate1 isv port(a,b,c:in std_logic;v y:out std_logic);vEnd nand3_gate1;vArchitecture ab of nand3_gate1 isvBeginv y=not(a and b and c);vEnd ab;v(程序中的英文不区分大小写程序中的英文不区分大小写)-实体开始,实体开始,nand3_gate1是该实体名称是该实体名称-结构体开始,结构体开始,ab是该结构体名称是该结构体名称-ieee库库-ieee库中的程序包库中的程序包-实体结束实体结束-结构体结束结构体结束v再在书中找任意程序看再在书中找任意程序看 程序结构程序结构 三输入与非门程序三输入与非门程序(程序结构)(程序结构)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity nand3_gate1 isv port(a,b,c:in std_logic;v y:out std_logic);vEnd nand3_gate1;vArchitecture ab of nand3_gate1 isvBeginv y=not(a and b and c);vEnd ab;v(程序中的英文不区分大小写程序中的英文不区分大小写)实体实体结构体结构体库与程序包库与程序包给定程序,学会看程序结构(要求给定程序,学会看程序结构(要求1)v程序结构程序结构有几个组成部分?有几个组成部分?v库与程序包库与程序包v实体实体v结构体结构体典型的组合逻辑电路(复习)典型的组合逻辑电路(复习)v编码器编码器v译码器译码器v数据选择器数据选择器v加法器加法器v数值比较器数值比较器v奇偶校验电路奇偶校验电路2选选1数据选择器数据选择器v给出给出2选选1数据选择器的数据选择器的VHDL程序程序v加深对程序结构的理解加深对程序结构的理解vLibrary ieee;v;vEntity mux21b isv port(a,b,s:in std_logic;v y:out std_logic);vEnd mux21b;vArchitecture ab of mux21b isvBeginv y=a when s=0 elsev b;vEnd ab;学会编写程序学会编写程序(要求(要求2)v用用VHDL语言编写语言编写三输入端与非门三输入端与非门v在编写此程序(第一个)时,学习编写程序在编写此程序(第一个)时,学习编写程序的方法,学习程序中的细节的方法,学习程序中的细节v(1)画出电路的端口信息画出电路的端口信息v(2)写出电路的真值表)写出电路的真值表v(3)写程序)写程序v这里要求教师板书这里要求教师板书v同时请同学们跟着教师,在笔记上练习写程同时请同学们跟着教师,在笔记上练习写程序序画出电路的端口信息画出电路的端口信息写出电路的真值表写出电路的真值表A B CY0 0 00 0 01 10 0 10 0 11 10 1 00 1 01 10 1 10 1 11 11 0 01 0 01 11 0 11 0 11 11 1 01 1 01 11 1 11 1 10 0写程序写程序v写程序时要记得写程序时要记得 程序结构程序结构v程序结构中的程序结构中的v实体:对应实体:对应 电路端口信息电路端口信息 实体由实体由 端口信号名称端口信号名称 端口模式端口模式 端口数据类型端口数据类型 构成构成v程序结构中的程序结构中的v结构体结构体 对应对应 真值表真值表v实体:描述电路端口信息实体:描述电路端口信息 v结构体结构体 描述电路功能描述电路功能实体(三输入与非门程序)实体(三输入与非门程序)vEntity nand3_gate1 isv port(a,b,c:in std_logic;v y:out std_logic);vEnd nand3_gate1;实体(三输入与非门程序)实体(三输入与非门程序)vEntity nand3_gate1 isv port(a,b,c:in std_logic;v y:out std_logic);vEnd nand3_gate1;实体开始实体开始的关键字的关键字实体名称,也是程实体名称,也是程序的存盘名序的存盘名 实体(三输入与非门程序)实体(三输入与非门程序)vEntity nand3_gate1 isv port(a,b,c:in std_logic;v y:out std_logic);vEnd nand3_gate1;端口端口3根输入端名称根输入端名称 端口模式端口模式 端口数据类型端口数据类型 实体(三输入与非门程序)实体(三输入与非门程序)vEntity nand3_gate1 isv port(a,b,c:in std_logic;v y:out std_logic);vEnd nand3_gate1;端口端口1根输出端名称根输出端名称 端口模式端口模式 端口数据类型端口数据类型 实体(三输入与非门程序)实体(三输入与非门程序)vEntity nand3_gate1 isv port(a,b,c:in std_logic;v y:out std_logic);vEnd nand3_gate1;端口结束端口结束 实体结束实体结束 实体名称实体名称 v一条语句的结束标志是一条语句的结束标志是 ;实体(三输入与非门程序)实体(三输入与非门程序)v三输入与非门程序的实体三输入与非门程序的实体还可以写成:还可以写成:vEntity nand3_gate1 isv port(a:in std_logic;v b:in std_logic;v c:in std_logic;v y:out std_logic);vEnd nand3_gate1;端口信号名称端口信号名称 端口模式端口模式 端口数据类型端口数据类型 结构体结构体v结构体结构体 描述电路功能描述电路功能结构体(三输入与非门程序)结构体(三输入与非门程序)vArchitecture ab of nand3_gate1 isvBeginv y=not(a and b and c);vEnd ab;结构体开始结构体开始的关键字的关键字结构体的名结构体的名称称指明是哪个实指明是哪个实体的结构体体的结构体结构体(三输入与非门程序)结构体(三输入与非门程序)vArchitecture ab of nand3_gate1 isvBeginv y=not(a and b and c);vEnd ab;Architecture语句语句下必须有下必须有begin程序格式程序格式Begin后面的语后面的语句表示电路的逻句表示电路的逻辑功能辑功能结构体(三输入与非门程序)结构体(三输入与非门程序)vArchitecture ab of nand3_gate1 isvBeginv y=not(a and b and c);vEnd ab;Begin后面的语后面的语句表示电路的逻句表示电路的逻辑功能辑功能此处的逻辑功能此处的逻辑功能是用是用逻辑函数表逻辑函数表达式达式表示的表示的结构体(三输入与非门程序)结构体(三输入与非门程序)vArchitecture ab of nand3_gate1 isvBeginv y=not(a and b and c);vEnd ab;Begin后面的语后面的语句表示电路的逻句表示电路的逻辑功能辑功能逻辑功能结束逻辑功能结束Architecture语句语句结束。结束。练习(练习(学会编写程序学会编写程序)v用用VHDL语言编写异或门程序语言编写异或门程序v(1)v(2)v(3)练习(练习(学会编写程序学会编写程序)v用用VHDL语言编写半加器语言编写半加器v(1)v(2)v(3)设计设计2选选1数据选择器数据选择器v(1)画出电路的端口信息画出电路的端口信息v(2)写出电路的真值表)写出电路的真值表v(3)写程序)写程序逻辑功能的描述有:逻辑功能的描述有:v逻辑函数表达式逻辑函数表达式v真值表真值表v逻辑符号逻辑符号学习新语句(要求学习新语句(要求3)v现在想学习现在想学习 根据真值表根据真值表 写程序写程序v不写表达式不写表达式v必须学习必须学习VHDL语言中的新的语句语言中的新的语句新语句用在哪里?新语句用在哪里?v新语句新语句v用在结构体中的电路逻辑功能的描述上用在结构体中的电路逻辑功能的描述上v整个程序框架,用整个程序框架,用VHDL编写电路的方法编写电路的方法 v不变不变例例1:设计:设计2选选1数据选择器数据选择器v同时学习同时学习 when else 语句语句v(1)画出电路的端口信息画出电路的端口信息v(2)写出电路的真值表)写出电路的真值表v(3)写程序)写程序例例2:用:用when-else语句设计半加器语句设计半加器v解:解:v(1)画出电路的端口信息画出电路的端口信息v(2)写出电路的真值表)写出电路的真值表v(3)写程序)写程序v(3)写程序写程序vLibrary ieee;v;vEntity hadd1 isv port(a,b:in std_logic;v s,c:out std_logic);vEnd hadd1;vArchitecture ab of hadd1 isvBeginv s=0 when a=b elsev 1;v c=1 when(a=1 and b=1)elsev 0;vEnd ab;v(程序中的英文不区分大小写程序中的英文不区分大小写)要求掌握的知识点要求掌握的知识点v端口数据类型端口数据类型vVHDL程序由几个部分组成?程序由几个部分组成?v端口模式端口模式v端口信号名起名的规则端口信号名起名的规则v文件存盘名是什么?有没有规定?文件存盘名是什么?有没有规定?vwhen else 语句语句v关系表达式关系表达式vStd_logicv库与程序包库与程序包+实体实体+结构体结构体vIn outv(C的规则)的规则)v文件存盘名必须是实体名。实体名尽量与电文件存盘名必须是实体名。实体名尽量与电路的功能符合,便于以后使用路的功能符合,便于以后使用v第第9章、第章、第10章目录章目录 P331P63vEntity mux21a isv port(a,b,s:in bit;v y:out bit);vEnd mux21a;vArchitecture ab of mux21a isvBeginv y=a when s=0 elsev b;vEnd ab;v端口数据类型端口数据类型 bit,std_logicv端口数据类型为端口数据类型为 Bit 时,程序结构:时,程序结构:v实体实体+结构体结构体v端口数据类型为端口数据类型为 std_logic 时,程序结构:时,程序结构:v库与程序包库与程序包+实体实体+结构体结构体v端口数据类型:端口数据类型:bitvBit的取值的取值 0 或或1vBit数据类型能否模拟所有的电路状况?数据类型能否模拟所有的电路状况?v电路出现故障时?电路出现故障时?v端口数据类型:端口数据类型:std_logic(P69)v9种取值,与实际电路相接近种取值,与实际电路相接近v端口数据类型不同,程序结构不同端口数据类型不同,程序结构不同一、程序结构一、程序结构v端口数据类型:端口数据类型:bitv std_logicv端口数据类型不同,程序结构不同端口数据类型不同,程序结构不同小结小结v掌握了写掌握了写VHDL程序的步骤(思维过程)程序的步骤(思维过程)v掌握了掌握了 语句(语句(when else 语句)语句)v掌握了掌握了 至少两个电路至少两个电路v例例3:用用VHDL语言编写语言编写4选选1数据选择器程序数据选择器程序4选选1数据选择器数据选择器(when else)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity mux41a isv port(s0,s1:in std_logic;v d0,d1,d2,d3:in std_logic;v y:out std_logic);vEnd mux41a;vArchitecture ab of mux41a isvBeginv y=d0 when(s0=0 and s1=0)elsev d1 when(s0=1 and s1=0)elsev d2 when(s0=0 and s1=1)elsev d3;v End ab;v八选一数据选择器?八选一数据选择器?v十六选一数据选择器十六选一数据选择器v六十四选一数据选择器?六十四选一数据选择器?v数据总线数据总线标准逻辑矢量标准逻辑矢量 数据类型数据类型vstd_logic_vector(3 Downto 0)v将将4根根 std_logic的数据结合在一起的数据结合在一起v用总线形式重新编写用总线形式重新编写v用用VHDL语言编写语言编写4选选1数据选择器程序数据选择器程序4选选1数据选择器数据选择器(when else)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity mux41a isv port(s:in std_logic_vector(1 downto 0);v d0,d1,d2,d3:in std_logic;v y:out std_logic);vEnd mux41a;vArchitecture ab of mux41a isvBeginv y=d0 when s=“00”elsev d1 when s=“01”elsev d2 when s=“10”elsev d3;vEnd ab;v一、程序结构一、程序结构v二、语句二、语句v三、端口信号数据类型三、端口信号数据类型组合逻辑电路组合逻辑电路二、语句二、语句v并行语句并行语句 when-elsev并行语句并行语句 信号赋值语句信号赋值语句v顺序语句顺序语句 if语句语句v顺序语句顺序语句 case语句语句二、语句二、语句1、when-else语句语句v例例4:用:用when-else语句编写语句编写8/3线优先编码器线优先编码器v(1)画出电路的端口信息画出电路的端口信息v(2)写出电路的真值表)写出电路的真值表v(3)写程序)写程序二、语句二、语句1、when-else语句语句v(3)写程序)写程序vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity pencoder1 isv port(i7,i6,i5,i4,i3,i2,i1,i0:in std_logic;v d:out std_logic_vector(2 downto 0);vEnd pencoder1;vArchitecture ab of pencoder1 is vBeginv d=“111”when i7=1 elsev “110”when i6=1 elsev “101”when i5=1 elsev “100”when i4=1 elsev “011”when i3=1 elsev “010”when i2=1 elsev “001”when i1=1 elsev “000”;vEnd ab;v标准逻辑矢量标准逻辑矢量 数据类型数据类型vStd_logic_vector(7 Downto 0)vStd_logic_vector(0 to 7)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity pencoder1 isv port(i:in std_logic_vector(7 downto 0);v d:out std_logic_vector(2 downto 0);vEnd pencoder1;vArchitecture ab of pencoder1 is vBeginv d=111“when i(7)=1 elsev 110 when i(6)=1 elsev 101 when i(5)=1 elsev 100 when i(4)=1 elsev 011 when i(3)=1 elsev 010 when i(2)=1 elsev 001 when i(1)=1 elsev 000;vEnd ab;二、语句二、语句2、信号赋值语句、信号赋值语句v例例5:用信号赋值语句:用信号赋值语句(逻辑函数表达式)(逻辑函数表达式)重重做例做例1(2选选1数据选择器)数据选择器)v(1)v(2)v(3)写程序)写程序v程序由库(库中程序包)、实体、结构体构程序由库(库中程序包)、实体、结构体构成成二、语句二、语句2、信号赋值语句、信号赋值语句v例例5:用信号赋值语句(逻辑函数表达式)重做例:用信号赋值语句(逻辑函数表达式)重做例1(2选选1数据选择器)数据选择器)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity mux21c isv port(a,b,s:in std_logic;v y:out in std_logic);vEnd mux21c;vArchitecture ab of mux21c isvBeginv y=(a and (not s)or(b and s);vEnd ab;要求掌握的知识点要求掌握的知识点v运算符运算符v第九章、第十章目录去查询第九章、第十章目录去查询二、语句二、语句3、if语句语句v顺序语句顺序语句v完整的完整的if语句语句v完整的完整的if语句语句v构成组合逻辑电路构成组合逻辑电路IF 条件句条件句 Then 顺序语句顺序语句 ELSE 顺序语句顺序语句 END IF;IF 条件句条件句 Then 顺序语句顺序语句ELSIF 条件句条件句 Then 顺序语句顺序语句 .ELSE 顺序语句顺序语句END IF;二、语句二、语句3、if语句语句v顺序语句顺序语句v不完整的不完整的if语句语句v不完整的不完整的if语句语句v构成时序逻辑电路构成时序逻辑电路IF 条件句条件句 Then 顺序语句顺序语句 END IF;IF 条件句条件句 Then 顺序语句顺序语句ELSIF 条件句条件句 Then 顺序语句顺序语句 .ELSIF 条件句条件句 Then 顺序语句顺序语句END IF;二、语句二、语句3、if语句语句v例例6:用:用if语句重做例语句重做例1(2选选1 mux)v(1)v(2)v(3)写程序)写程序二、语句二、语句 3、if语句语句v例例6:用:用if语句重做例语句重做例1(2选选1数据选择器)数据选择器)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity mux21d isv port(a,b,s:in std_logic;v y:out std_logic);vEnd mux21d;vArchitecture ab of mux21d isvBeginv process(a,b,s)v beginv if s=0 thenv y=a;v else v y=b;v end if;v end process;vEnd ab;二、语句二、语句3、if语句语句v例子表明:例子表明:v顺序语句要放在进程顺序语句要放在进程process语句中语句中process语句格式语句格式 进程标号进程标号:PROCESS (:PROCESS (敏感信号参数表敏感信号参数表 )IS)IS 进程说明部分进程说明部分 BEGIN BEGIN 顺序描述语句顺序描述语句;END PROCESS END PROCESS 进程标号进程标号;process语句格式(简化)语句格式(简化)PROCESS(PROCESS(电路的输入信号电路的输入信号)BEGINBEGIN 顺序描述语句顺序描述语句;END PROCESS;END PROCESS;v顺序语句要放在顺序语句要放在process语句中语句中v进一步应用进一步应用if语句,用语句,用if语句编写语句编写4选选1数据选数据选择器择器二、语句二、语句4、case语句语句 v例例7:用:用case语句重做例语句重做例1(2选选1 mux)v(例子表明:顺序语句要放在进程(例子表明:顺序语句要放在进程process中)中)CASE IS When =;.;;When =;.;;.END CASE;二、语句二、语句 4、case语句语句例例7:用:用case语句重做例语句重做例1(2选选1 mux)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity mux21e isv port(a,b,s:in std_logic;v y:out std_logic);vEnd mux21e;vArchitecture ab of mux21e isvBeginv process(a,b,s)v beginv case s isv when 0=yynull;v end case;v end process;vEnd ab;v顺序语句要放在顺序语句要放在process语句中语句中v进一步应用进一步应用case语句,用语句,用case语句编写语句编写4选选1数据选择器数据选择器小结小结v 2选选1数据选择器可以用数据选择器可以用if语句、语句、case语句、语句、when-else语句、信号赋值语句来编写。语句、信号赋值语句来编写。v用信号赋值语句写的程序属于数据流描述方式用信号赋值语句写的程序属于数据流描述方式v用用if语句、语句、case语句、语句、when else语句写的程语句写的程序属于行为描述方式序属于行为描述方式v(还有一种描述方式为结构描述方式)(还有一种描述方式为结构描述方式)v程序描述方式有三种程序描述方式有三种什么情况下用什么语句编写程序?什么情况下用什么语句编写程序?v并行语句并行语句when-else语句语句 单输出,多条件单输出,多条件v v顺序语句顺序语句 多输出多输出 if语句语句 多条件多条件 case语句语句 单条件单条件v例例8:用:用if语句、语句、case语句、语句、when-else语句、语句、信号赋值语句来编写信号赋值语句来编写4选选1数据选择器数据选择器v由编写过程中由编写过程中遇到的问题遇到的问题引出标准逻辑矢量引出标准逻辑矢量(std-logic_vector(n downto 0)when else 4选选1 muxv写程序的思路写程序的思路vWhen else 特点特点v并行语句并行语句v单输出,多条件单输出,多条件4选选1数据选择器数据选择器(when else)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity mux41a isv port(s:in std_logic_vector(1 downto 0);v d0,d1,d2,d3:in std_logic;v y:out std_logic);vEnd mux41a;vArchitecture ab of mux41a isvBeginv y=d0 when s=“00”elsev d1 when s=“01”elsev d2 when s=“10”elsev d3;vEnd ab;if 4选选1 muxv写程序的思路写程序的思路vif 特点特点v顺序语句顺序语句vprocessv多输出,多条件多输出,多条件case 4选选1 muxv写程序的思路写程序的思路vcase 特点特点v顺序语句顺序语句vprocessv多输出,单条件多输出,单条件v如果端口信息定义的不好,则可以用下面的如果端口信息定义的不好,则可以用下面的方法:方法:4选选1数据选择器数据选择器vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity mux41b isv port(s0,s1:in std_logic;v d0,d1,d2,d3:in std_logic;v y:out std_logic);vEnd mux41b;vArchitecture a of mux41b isv Signal tmp:std_logic_vector(1 downto 0);vBeginv tmpyyyynull;v end case;v end process;vEnd a;要求掌握的知识点要求掌握的知识点v学习了学习了&符号符号v学习了定义中间信号学习了定义中间信号三、端口信号数据类型三、端口信号数据类型v1、std_logic 标准逻辑位标准逻辑位v2、std_logic_vector 标准逻辑矢量标准逻辑矢量练习练习1v用用case语句编写全加器语句编写全加器练习练习2v用用case语句编写语句编写7段显示译码器段显示译码器学会分析程序学会分析程序v1、边看程序,边画端口信息、边看程序,边画端口信息v2、分析电路的逻辑功能、分析电路的逻辑功能(真值表真值表)v3、(画出电路的时序图)、(画出电路的时序图)vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity mb isv port(s:in std_logic_vector(1 downto 0);v d:in std_logic_vector(3 downto 0);v y:out in std_logic);vEnd mb;vArchitecture a of mb isvBeginv process(s,d)v beginv case s isv when“00”=yyyynull;v end case;v end process;vEnd a;程序1vlibrary ieee;vuse ieee.std_logic_1164.all;ventity tri_gate isvport(a,en:in std_logic;v y:out std_logic);vend tri_gate;varchitecture beh of tri_gate isvbeginvprocess(a,en)v beginv if en=1 thenv y=a;v else v y=Z;v end if;v End process;vend beh;程序2vlibrary ieee;vuse ieee.std_logic_1164.all;ventity ddd isvport(a,b,c:in std_logic;v s,co:out std_logic);vend ddd;程序3varchitecture ab of ddd isv signal tmp:std_logic_vector(2 downto 0);vbeginv tmp s=0;co s=1;co s=1;co s=0;co s=1;co s=0;co s=0;co s=1;conull;v end case;v End process;vend ab;程序3vlibrary ieee;vuse ieee.std_logic_1164.all;ventity decoder138 isvport(g1,g2a,g2b:in std_logic;v a,b,c:in std_logic;v y:out std_logic_vector(7downto 0);vend decoder138;varchitecture ab of decoder138 isv signal tmp:std_logic_vector(2 downto 0);vBeginv tmp y y y y y y y ynull;v end case;v elsev y=“11111111”;v end if;v End process;vend ab;程序4四、时序逻辑电路四、时序逻辑电路v1、D触发器的设计触发器的设计v2、设计、设计16进制计数器进制计数器v3、设计、设计5进制计数器进制计数器v4、设计、设计24进制进制BCD码计数器码计数器v5、设计、设计6分频器分频器v6、设计异步复位,同步使能的、设计异步复位,同步使能的10进制计数器进制计数器v7、设计、设计8位循环左移寄存器位循环左移寄存器四、时序逻辑电路四、时序逻辑电路 1、D触发器的设计触发器的设计端口信息端口信息逻辑功能?逻辑功能?四、时序逻辑电路四、时序逻辑电路 1、D触发器的设计触发器的设计vLibrary ieee;vUse ieee.std_logic_1164.all;vEntity dffa isv port(d,clk:in std_logic;v q:out std_logic);vEnd dffa;vArchitecture ab of dffa isvBeginv process(clk)v beginv if clkevent and clk=1 thenv q=d;v end if;v end process;vEnd ab;四、时序逻辑电路四、时序逻辑电路v1、D触发器的设计触发器的设计v学习了上升沿的表示方法学习了上升沿的表示方法v学习了不完整的学习了不完整的if语句形成时序逻辑电路语句形成时序逻辑电路四四、时序逻辑电路、时序逻辑电路 2、设计、设计16进制计数器进制计数器v状态转换图状态转换图端口信息端口信息逻辑功能?逻辑功能?四、时序逻辑电路四、时序逻辑电路 2、设计、设计16进制计数器进制计数器vLibrary ieee;vUse ieee.std_logic_1164.all;vUse;vEntity cnt4a isv port(clk:in std_logic;v q:out std_logic_vector(3 downto 0);vEnd cnt4a;四、时序逻辑电路四、时序逻辑电路 2、设计、设计16进制计数器进制计数器vArchitecture ab of cnt4a isv signal zq:std_logic_vector(3 downto 0);vBeginv process(clk)v beginv if clkevent and clk=1 thenv zq=zq+1;v end if;v end process;v q=zq;vEnd ab;知识点知识点vstd_logic_unsigned库库 与与 +(加法)(加法)v端口信息定义为输出端的信号,不能反馈端口信息定义为输出端的信号,不能反馈v计数器计数器 中间信号的作用中间信号的作用四、时序逻辑电路四、时序逻辑电路 3、设计、设计5进制计数器进制计数器v状态转换图状态转换图端口信息端口信息逻辑功能?逻辑功能?四、时序逻辑电路四、时序逻辑电路 3、设计、设计5进制计数器进制计数器vLibrary ieee;vUse ieee.std_logic_1164.all;vUse;vEntity cnt5a isv port(clk:in std_logic;v q:out std_logic_vector(2 downto 0);vEnd cnt5a;四、时序逻辑电路四、时序逻辑电路 3、设计、设计5进制计数器进制计数器vArchitecture ab of cnt5a isv signal zq:std_logic_vector(2 downto 0);vBeginv process(clk)v beginv if clkevent and clk=1 thenv if zq=“100”thenv zq=“000”;v elsev zq=zq+1;v end if;v end if;v end process;v q=zq;vEnd ab;知识点知识点vIf 语句的嵌套语句的嵌套v画画5进制计数器的时序图进制计数器的时序图举一反三的能力举一反三的能力v设计设计7进制计数器进制计数器v设计设计10进制计数器进制计数器v设计设计6进制计数器进制计数器v设计设计8进制计数器进制计数器四四、时序逻辑电路、时序逻辑电路 4、设计、设计24进制进制BCD码计数器码计数器v状态转换图状态转换图端口信息端口信息逻辑功能?逻辑功能?四、时序逻辑电路四、时序逻辑电路 4、设计、设计24进制进制BCD码计数器码计数器vLibrary ieee;vUse ieee.std_logic_1164.all;vUse;vEntity cnt24a isv port(clk:in std_logic;v qh,ql:out std_logic_vector(3 downto 0);vEnd cnt24a;vArchitecture ab of cnt24a isv signal zqh,zql:std_logic_vector(3 downto 0);vBeginv process(clk)v begin四、时序逻辑电路四、时序逻辑电路 4、设计、设计24进制进制BCD码计数器码计数器v if clkeve