欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    新编数字逻辑电路(江国强).ppt

    • 资源ID:6050634       资源大小:7.31MB        全文页数:437页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    新编数字逻辑电路(江国强).ppt

    2023/9/18,1,新编数字逻辑电路,江国强 编制桂林电子科技大学信息科技学院,2023/9/18,2,目 录,第1章 数制与编码 第2章 逻辑代数基础第3章 门电路 第4章 组合逻辑电路 第5章 触发器第6章 时序逻辑电路第7章 脉冲单元电路第8章 数模与模数转换第9章 程序逻辑电路第10章可编程逻辑器件设计实例,2023/9/18,3,第1章 数制与编码,1.1 概述 1.2 数制及其转换1.3 编码1.4 现代数字系统设计方法,2023/9/18,4,第2章 逻辑代数基础,2.1 逻辑代数基本概念 2.2 逻辑代数运算法则2.3 逻辑函数的表达式2.4 逻辑函数的公式简化法2.5 Verilog HDL基础,2023/9/18,5,第3章 门电路,3.1 概述3.2 晶体管的开关特性3.3 分立元件门3.4 TTL集成门3.5 其他双极型的集成门3.6 MOS集成门3.7 基于Verilog HDL的门电路设计,2023/9/18,6,第4章 组合逻辑电路,4.1 概述4.2 常用组合逻辑电路4.3 组合逻辑电路设计4.4 组合逻辑电路的竞争-冒险现象,2023/9/18,7,第5章 触发器,5.1 概述 5.2 基本RS触发器 5.3 钟控触发器5.4 集成触发器 5.5 触发器之间的转换5.6 触发器的设计,2023/9/18,8,第6章 时序逻辑电路,6.1 概述 6.2 寄存器和移位寄存器 6.3 计数器6.4 时序逻辑电路设计 6.5 数字系统设计方法,2023/9/18,9,第7章 脉冲单元电路,7.1 概述 7.2 施密特触发器 7.3 单稳态触发器7.4 多谐振荡器,2023/9/18,10,第8章 数模和模数转换,8.1 概述 8.2 数模(D/A)转换8.3 模数(A/D)转换,2023/9/18,11,第9章 程序逻辑电路,9.1 概述 9.2 随机存储器9.3 只读存储器9.4 基于Verilog HDL的存储器设计9.5 程序逻辑电路的应用,2023/9/18,12,第10章 可编程逻辑器件,10.1 可编程逻辑器件的基本原理 10.2 可编程逻辑器件的设计技术 10.3 可编程逻辑器件的编程与配置,2023/9/18,13,第1章 数制与编码,1.1 概述 1.1.1 模拟电子技术和数字电子技术 模拟电子技术是分析和处理模拟信号的技术,模拟信号(如正弦波)具有在数值上和时间上都是连续的特点。使用的主要器件:晶体管工作在线性区(即放大区)用于构成信号的放大和正弦振荡电路。,本章介绍脉冲信号和数字信号的特点、数制及其转换、二-十进制编码和字符编码。,数字电子技术是分析和处理数字信号的技术,数字信号(如矩形波)具有在数值上和时间上都是不连续的特点,使用的主要器件:晶体管,但工作在非线性区(即截止区和饱和区),构成信号的开关电路。,2023/9/18,14,脉冲电路,所谓脉冲电压或电流是指在极短暂时间间隔内作用于电路的电压或电流。,尖脉冲,方波,矩形脉冲,梯形脉冲,2023/9/18,15,脉冲上升时间:脉冲前沿从0.1Um上升到0.9Um所需要的时间,脉冲下降时间:脉冲前沿从0.9Umx下降到0.1Um所需要的时间,脉冲的主要参数,Um,0.9Um,0.5Um,0.1Um,0,tw,tr,tf,tp,脉冲幅度:脉冲电压或电流由0跳变至最大值,前沿,平顶,后沿,T,脉冲宽度:从脉冲前沿上升到0.5Um处开始,到脉冲后沿下降到0.5Um为止所持续的时间。也称有效脉宽。,脉冲周期:周期性重复的脉冲序列中,两个相邻脉冲间的时间间隔。,2023/9/18,16,1.1.2 脉冲信号和数字信号狭义:脉冲信号是指在短时间内突然作用的信号。广义:除了正弦波或若干个正弦波合成的信号以外的信号都可以称为脉冲信号。特点:脉冲波形是不连续的,但一般都有周期性。,2023/9/18,17,数字信号是指由高低两种电平构成的矩形波,通常用“1”表示高电平,用“0”表示低电平。把矩形波按周期划分,就可以得到由0和1构成的符号组合,如:“110100011”,它可以代表二进制数字,所以把矩形波称为数字信号。数字信号也是一种脉冲信号。,1.1.3 数字电路的特点数字电路只有“与”“或”“非”三种基本电路,电路简单,而且容易实现。,2023/9/18,18,数字电路容易实现集成化,数字集成电路(IC)具有体积小、功耗低、可靠性高。,数字电路用0和1两种状态来表示信息,便于信息的存储、传输和处理。,数字电路能够对输入的数字信号进行各种算术运算和逻辑运算。能按照人们设计好的规则,进行逻辑推理和逻辑判断,得出相应的输出结果,即数字电路具有逻辑思维能力,它是计算机以及智能控制电路的基本电路,2023/9/18,19,1.2 数制及其转换,1.2.1 数制及其转换1.数制十进制、二进制、八进制和十六进制。(1)十进制用09十个符号来表示数,基数:i=10(符号个数)权值:10i 进位规则:“逢十进一”或“借一当十”,(125.625)10=1102+2101+5100+610-1+210-2+510-3,2023/9/18,20,(2)二进制用0和1两个符号表示数,基数是2,权值为2i。进位规则:“逢二进一”或“借一当二”,任意一个二进制数D均可展开为:(1101.101)2=123+122+021+120+12-1+02-2+12-3=(13.625)10,2023/9/18,21,(3)八进制用07八个符号表示数,基数:8,权值:8i进位规则:“逢八进一”或“借一当八”任意一个八进制数D均可展开为:,(376.65)8=382+781+680+68-1+58-2=(254.828125)10,2023/9/18,22,(4)十六进制数用09和AF十六个符号表示数,基数:16,权值:16i进位规则:“逢十六进一”或“借一当十六”任意一个十六进制数D均可展开为:,(1FD.6C)16=1162+15161+13160+616-1+1216-2=(509.421875)10,2023/9/18,23,在数字电路中,可以用括弧加下注脚的方式,或者用在数字后面加数制前缀或后缀的方式。例如,在Verilog HDL中十进制数的前缀为“D”或“d”(Decimal)二进制数的前缀为“B”或“b”(Binary)八进制数的前缀为“O”或“o”(Octonary)十六进制数的前缀为“H”或“h”(Hexadecimal)。例如,(25)10=d25(25D)=25(十进制数的前缀或后缀可略)(1101.101)2=b1101.101(1101.101B)(76.56)8=o76.56(76.56O)(1FD.6C)16=h1FD.6C(1FD.6CH),2023/9/18,24,2.数制之间的转换十进制数到N进制数的转换 整数部分:除以N看余数小数部分:乘以N看向整数的进位例如:求(62.625)10?,(62.625)10(111110.101)2,2023/9/18,25,(2)N进制数转换为十进制数方法:按权展开(1101.011)2=,123+122+021+120+02-1+12-2+12-3=,8+4+0+1+0.0+0.25+0.125=(13.375)10,(376.65)8=382+781+680+68-1+58-2=(254.828125)10,(1FD.6C)16=1162+15161+13160+616-1+1216-2=(509.421875)10,2023/9/18,26,(3)二进制数与八进制数之间的转换因为23=8,因此3位二进制数对应1位八进制数,而1位八进制数对应3位二进制数。例如:(11010011.1101101)2=(323.664)8(174.536)8=(1111100.10101111)2,(4)二进制数与十六进制数的转换因为24=16,所以4位二进制数对应1位十六进制数,而1位十六进制数对应为4位二进制数。例如:(11010011.1101101)2=(D3.DA)16(17C.5F)16=(101111100.01011111)2,2023/9/18,27,1.3 编码,1.3.1 二-十进制编码(BCD码),2023/9/18,28,1.3.2 字符编码(ASCII码),2023/9/18,29,ASCII(American Standard Code for Information Interchange)用7位二进制符号(a7a6a5a4a3a2a1)来表示字符和命令例如:数字0的ASCII码是0110000B或30H9是0111001B或39HA是1000001B或41Ha是1100001B或61H,用途与特点:(1)ASCII码是计算机与外部设备交换信息的字符编码,2023/9/18,30,ASCII码有大小之分空格(20H)数字(019)大写字母(ABZ)小写字母(abz),作业:P91.2,1.3,1.4,1.5,2023/9/18,31,1.4 现代数字系统设计流程(方法),电子设计自动化(Electronic Design Automation,EDA),2023/9/18,32,2023/9/18,33,2023/9/18,34,2023/9/18,35,1.5 同步练习,一、填 空 题1.将二进制、八进制和十六进制数转换为十进制数的共同规则是。2.十进制数26.625对应的二进制数为;十六进制数5FE对应的二进制数为。3.二进制数1101011.011B对应的十进制数为,对应的8421BCD码为。4.二进制数1101011.011B对应的八进制数为,对应的十六进制数为。5.(100101010011.00110111)8421BCD表示的十进制数为。,1.按权展开;2.11010.101B;010111111110B3.107.375D,(000100000111.001101110101)8421BCD4.153.3Q,6B.6H;5.953.37D,2023/9/18,36,6.(001111110001.01011111)2421BCD表示的十进制数为。7.(100101111100.00010100)5211BCD表示的十进制数为。8.(110010100111.10000111)余3BCD表示的十进制数为。9.数字字符“9”对应的ASCII码为。10.字母字符“b”对应的ASCII码为。,6.391.59D7.647.12D8.974.54D9.0111001B(39H)10.1100010B(62H),2023/9/18,37,二、单向选择题1.表示一个两位十进制数至少需要()位二进制数。56782.十进制数127.25对应二进制数为()。1111111.0110000000.101111110.011100011.113.十进制数28.43的余3BCD码是()。00111000.0100001101011011.0111011001101100.1000011101111101.100110004.在下列ASCII字符中,最大的字符是()。“A”“z”“9”“0”5.在下列ASCII字符中,最小的字符是()。“A”“z”“9”“0”,2023/9/18,38,第2章 逻辑代数基础,本章介绍分析和设计数字逻辑电路功能的数学方法,包括:逻辑代数的基本概念、逻辑函数及其表示方法、基本公式、常用公式和重要定理和逻辑函数的简方法化。,2023/9/18,39,2.1 逻辑代数基本概念,2.1.1 逻辑常量和逻辑变量1.逻辑常量“0”和“1”(高阻“”、未知“”)用来代表两种逻辑状态,如电平的高和低、电流的有和无、灯的亮和灭、开关的闭合和断开等。,2.逻辑变量由字母或字母加数字组成原变量:A、B、C、A1反变量:原变量与反变量的关系:“互非”或“互补”,2023/9/18,40,2.1.2 基本逻辑和复合逻辑,1.基本逻辑(与、或、非三种),(1)与逻辑与逻辑概念:只有决定事件结果的全部条件(输入)同时具备时,结果(输出)才发生。,逻辑函数的表示方法:真值表、函数表达式、卡诺图和逻辑图,2023/9/18,41,真值表:用“0”和“1”表示输入与输出之间全部关系的表格,真值表(与),逻辑函数表达式:P=AB=AB=A&B,运算规则:000,010,100,111,2023/9/18,42,(2)或逻辑或逻辑概念:在决定事件结果的诸多条件中只要有任何一个满足,结果就会发生。,真值表(或),逻辑函数表达式:P=AB=A|B,运算规则:000,011,101,111,2023/9/18,43,真值表(非),(3)非逻辑非逻辑概念:只要条件具备了,结果便不会发生,而条件不具备时,结果一定发生。,逻辑函数表达式:,2023/9/18,44,2.复合逻辑与非、或非、与或非、异或和同或逻辑(1)与非逻辑,真值表,特点:全高出低、一低出高,逻辑函数表达式:,2023/9/18,45,(2)或非逻辑,真值表(或非),特点:全低出高、一高出低,逻辑函数表达式,2023/9/18,46,(3)与或非逻辑,逻辑符号,逻辑函数表达式,2023/9/18,47,(4)异或逻辑,真值表,特点:相同为0、相异为1,逻辑符号,逻辑函数表达式,2023/9/18,48,(5)同或逻辑,真值表(同或),特点:相同为1、相异为0,逻辑符号,国际常用符号,逻辑函数表达式:P=A B=(A&B)|(A&B),2023/9/18,49,2.1.3 逻辑函数的表示方法 1.真值表和逻辑函数表达式,【例2.1】楼上楼下开关电路如图所示,该电路让用户在楼上或楼下均可控制楼道电灯的亮和灭。,真值表,2023/9/18,50,【例2.2】设计三人表决器电路。,真值表,表达式:最小项推导法最小项表达式使输出为1的输入组合写成乘积项的形式,其中取值为1的输入用原变量表示,取值为0的输入用反变量表示,然后把这些乘积项加起来。,2023/9/18,51,最大项推导法最大项表达式 把使输出为0的输入组合写成和项的形式,其中取值为0的输入用原变量表示,取值为1的输入用反变量表示,然后把这些和项乘起来。,【练习题】设计长走廊开关电路,要求用四个开关(A,B,C,D)独立控制一盏(P)灯的亮与灭。,2023/9/18,52,2023/9/18,53,2.逻辑函数表达式和逻辑图用逻辑符号实现逻辑函数表达式中的各种运算而画出的部件图,优先规则:括弧内“()”“逻辑乘”“逻辑加”,2023/9/18,54,2.1.4 逻辑函数的相等函数F与G有相同的真值表,则:F=G。,例如:函数F=A+BC与函数G=(A+B)(A+C),则F=G,即 A+BC=(A+B)(A+C),2023/9/18,55,2.2 逻辑代数的运算法则,2.2.1 逻辑代数的基本公式1.关于常量与变量关系公式,2023/9/18,56,2.2.2 逻辑代数的基本定理1.代入定理代入定理规定,在任何一个包含某个相同变量的逻辑等式中,用另外一个函数式代入式中所有这个变量的位置,等式仍然成立。,用途:扩大基本公式和常用公式的使用范围例如已知:则:,2023/9/18,57,2.反演定理反演定理规定,将原函数F中的全部“”换成“+”,“+”换成“”,“0”换成“1”,“1”换成“0”,原变量换成反变量,反变量换成原变量,所得到的新函数就是原函数的反演式,记作。,用途:直接求原函数的反函数例如已知:,则:,又如:,则:,规则:“()”“”“”;大的“非号”在变换中不变,2023/9/18,58,3.对偶定理对偶定理规定,将原函数F中的全部“”换成“+”,“+”换成“”,“0”换成“1”,“1”换成“0”,所得到的新函数就是原函数的对偶式,记作F或F*。,用途:已知某公式成立,则其对偶式亦成立函数,对偶式,又如:,则:,2023/9/18,59,2.2.3 逻辑代数的常用公式,常用公式1:(10),证:,对偶式:(10),2023/9/18,60,常用公式3:(12),证:,对偶式:(12),常用公式4:(13),证:,对偶式:(13),2023/9/18,61,推论:,证:,2.2.4 异或运算公式,作业:P46 2.7,2.8,2.9,2023/9/18,62,2.3 逻辑函数的表达式,包括:与或式、与非与非式、或与式、或非或非式和与或非式,1.与或式,2.或与式,2023/9/18,63,3.与非与非式,4.或非或非式,2023/9/18,64,2.3.2 逻辑函数的标准表达式最小项表达式全部由最小项构成的与或式(积之和式)最大项表达式全部由最大项构成的或与式(和之积式),1.最小项包含全部变量的乘积项,每个变量均以原变量或反变量的形式在乘积项中出现一次,三变量(A,B,C)的最小项(8个):,2023/9/18,65,最小项编号,最小项的特点:在变量的任何取值下必有一个最小项,而且仅有一个最小项的值为1;全体最小项之和为1;任意两个最小项的乘积为0。,2023/9/18,66,2.最大项包含全部变量的和项,每个变量均以原变量或反变量的形式在和项中出现一次,三变量(A,B,C)的最大项(8个):,最大项编号,2023/9/18,67,最大项的特点:在变量的任何取值下必有一个最大项,而且仅有一个最大项的值为0;全体最大项之积为0;任意两个最大项之和为1。,2023/9/18,68,2.最大项表达式可由最大项法直接从真值表中导出例如:三人表决器设计的输出表达式,2023/9/18,69,2.3.3 约束及其表示方法 约束:不允许出现的输入变量取值组合(最小项),【例1】设计行车控制电路,不可能出现的最小项,对输出无影响的最小项称为任意项、无关项,记作“”或“”、“d”,真值表,2023/9/18,70,【例2】设计一位十进制数(8421BCD码)的四舍五入电路。,2023/9/18,71,2.4 逻辑函数的公式简化法,2.4.1 简化的意义,简化:,2023/9/18,72,解:,【例2.9】化简,解:,2023/9/18,73,【例2.10】化简,解:,作业:P46 2.9 2.10 2.11,2023/9/18,74,2.5 Verilog HDL基础,2.5.1 Verilog HDL程序模块结构,2023/9/18,75,1.模块端口定义模块端口定义用来声明设计电路模块的输入输出端口,端口定义格式如下module 模块名(端口1,端口2,端口3,);在端口定义的圆括弧中,是设计电路模块与外界联系的全部输入输出端口信号或引脚,它是设计实体对外的一个通信界面,是外界可以看到的部分(不包含电源和接地端),多个端口名之间用“,”分隔。例如,module adder(sum,cont,ina,inb,cin);,2023/9/18,76,2.模块内容模块内容包括I/O说明、信号类型声明和功能描述。1)模块的I/O说明模块的I/O说明用来声明模块端口定义中各端口数据流动方向包括输入(input)、输出(output)和双向(inout)。I/O说明格式如下input 端口1,端口2,端口3,;output 端口1,端口2,端口3,;例如 input ina,inb,cin;output sum,cont;,2023/9/18,77,2)信号类型声明信号类型声明用来说明设计电路的功能描述中,所用的信号的数据类型以及函数声明。信号的数据类型主要有连线(wire)、寄存器(reg)、整型(integer)、实型(real)和时间(time)等类型。,2023/9/18,78,3)功能描述 功能描述是Verilog HDL程序设计中最主要的部分,用来描述设计模块的内部结构和模块端口间的逻辑关系,在电路上相当于器件的内部电路结构。功能描述可以用assign语句、元件例化(instantiate)、always块语句、initial块语句等方法来实现,通常把确定这些设计模块描述的方法称为建模。,2023/9/18,79,2.5.2 Verilog HDL的词法,1.空白符和注释 Verilog HDL的空白符包括空格、tab符号、换行和换页。空白符如果不是出现在字符串中,编译源程序时将被忽略。注释分为行注释和块注释两种方式。行注释用符号/(两个斜杠)开始,注释到本行结束。块注释用/*开始,用*/结束。块注释可以跨越多行,但它们不能嵌套。,2023/9/18,80,2.常数 Verilog HDL的常数包括数字、未知x和高阻z三种。数字可以用二进制、十进制、八进制和十六进制等4种不同数制来表示,完整的数字格式为 其中,位宽表示数字对应的二进制数的位数宽度;进制符号包括b或B(表示二进制数),d或D(表示十进制数),h或H(表示十六进制数),o或O(表示八进制数)。,2023/9/18,81,例如8b10110001/表示位宽为8位的二进制数或:b10110001(忽略位宽)8hf5/表示位宽为8位的十六进制数或:hf5十进制数的位宽和进制符号可以缺省,例如/表示十进制数125b1111xxxx/等价8hfxb1101zzzz/等价8hdz,2023/9/18,82,3.字符串字符串是用双引号括起来的可打印字符序列,它必须包含在同一行中。例如,”ABC”,”A BOY.”,”A”,”1234”都是字符串。,2023/9/18,83,4.标识符 标识符是用户编程时为常量、变量、模块、寄存器、端口、连线、示例和begin-end块等元素定义的名称。标识符可以是字母、数字和下划线“_”等符号组成的任意序列。定义标识符时应遵循如下规则 首字符不能是数字。字符数不能多于1024个。大小写字母是不同的。不要与关键字同名。,2023/9/18,84,5.关键字 关键字是Verilog HDL预先定义的单词,它们在程序中有不同的使用目的。例如,module和endmodule来指出源程序模块的开始和结束;用assign来描述一个逻辑表达式等。Verilog-1995的关键字有97个(见表4.1所示),Verilog-2001增加了5个共102个。,2023/9/18,85,6.操作符 操作符也称为运算符,是Verilog HDL预定义的函数名字,这些函数对被操作的对象(即操作数)进行规定的运算,得到一个结果。操作符通常由13个字符组成,例如,“+”表示加操作,“=”(两个=字符)表示逻辑等操作,“=”(3个=字符)表示全等操作。有些操作符的操作数只有1个,称为单目操作;有些操作符的操作数有2个,称为双目操作;有些操作符的操作数有3个,称为三目操作。,2023/9/18,86,1)算术操作符(Arithmetic operators)常用的算术操作符:+(加)、-(减)、*(乘)、/(除)、%(求余)。其中%是求余操作符,在两个整数相除的基础上,取出其余数。例如,5%6的值为5;13%5的值是3。,2023/9/18,87,2)逻辑操作符(Logical operators)逻辑操作符包括:&(逻辑与)、|(逻辑或)、!(逻辑非),3)位运算(Bitwise operators)位运算是将两个操作数按对应位进行逻辑操作。位运算操作符包括:(按位取反)、&(按位与)、|(按位或)、(按位异或)、或(按位同或)。在进行位运算时,当两个操作数的位宽不同时,计算机会自动将两个操作数按右端对齐,位数少的操作数会在高位用0补齐。,2023/9/18,88,4)关系操作符(Relational operators)关系操作符有:(大于)、=(大于等于)。其中,=也是赋值运算的赋值符号。关系运算的结果是1位逻辑值。在进行关系运算时,如果关系是真,则计算结果为1;如果关系是假,则计算结果为0;如果某个操作数的值不定,则计算结果不定(未知),表示结果是模糊的。,2023/9/18,89,5)等式操作符(Equality operators)等值操作符包括:=(等于)、!=(不等于)、=(全等)、!=(不全等)4种。等值运算的结果也是1位逻辑值,当运算结果为真时,返回值1;为假则返回值0。相等操作符(=)与全等操作符(=)的区别是:当进行相等运算时,两个操作数必须逐位相等,其比较结果的值才为1(真),如果某些位是不定或高阻状态,其相等比较的结果就会是不定值;而进行全等运算时,对不定或高阻状态位也进行比较,当两个操作数完全一致时,其结果的值才为1(真),否则结果为0(假)。,2023/9/18,90,6)缩减操作符(Reduction operators)缩减操作符包括:&(与)、&(与非)、|(或)、|(或非)、(异或)、或(同或)。缩减操作运算法则与逻辑运算操作相同,但操作的运算对象只有一个。在进行缩减操作运算时,对操作数进行与、与非、或、或非、异或、同或等缩减操作运算,运算结果有1位1或0。例如,设A=8b11010001,则&A=0(在与缩减运算中,只有A中的数字全为1时,结果才为1);|A=1(在或缩减运算中,只有A中的数字全为0时,结果才为0)。,2023/9/18,91,7)转移操作符(Shift operators)转移操作符包括:(右移)、n;/将操作数的内容右移n位,同时从左边开始用0来填补移出的位数。操作数 4的结果是A=8b00001101;而A 4的结果是A=8b00010000。,2023/9/18,92,8).条件操作符(Conditional operators)条件操作符为:?:条件操作符的操作数有3个,其使用格式为操作数=条件?表达式1:表达式2;即当条件为真(条件结果值为1)时,操作数=表达式1;为假(条件结果值为0)时,操作数=表达式2。,2023/9/18,93,9)位并接操作符(Concatenation operators)并接操作符为:并接操作符的使用格式为操作数1的某些位,操作数2的某些位,操作数n的某些位;即将操作数1的某些位与操作数2的某些位与与操作数n的某些位并接在一起。例如,将1位全加器进位cont与和sum并接在一起使用,它们的结果由两个加数a、b及低位进位cin相加决定的表达式为cont,sum=a+b+cin;,2023/9/18,94,7.Verilog HDL数据对象Verilog HDL数据对象是指用来存放各种类型数据的容器,包括常量和变量。,1)常量常量是一个恒定不变的值数,一般在程序前部定义。常量定义格式为parameter 常量名1=表达式,常量名2=表达式,常量名n=表达式;parameter是常量定义关键字,常量名是用户定义的标识符,表达式是为常量赋的值。例如parameter Vcc=5,fbus=b11010001;,2023/9/18,95,2)变量变量是在程序运行时其值可以改变的量。在Verilog HDL中,变量分为网络型(nets type)和寄存器型(register type)两种。,(1)网络型变量(nets type)nets型变量是输出值始终根据输入变化而更新的变量,它一般用来定义硬件电路中的各种物理连线。Verilog HDL提供的nets型变量如下。,2023/9/18,96,2023/9/18,97,(2)寄存器型变量(register type)register型变量是一种数值容器,不仅可以容纳当前值,也可以保持历史值,这一属性与触发器或寄存器的记忆功能有很好的对应关系。register型变量也是一种连接线,可以作为设计模块中各器件间的信息传送通道。register型变量与wire型变量的根本区别在于register型变量需要被明确地赋值,并且在被重新赋值前一直保持原值。register型变量是在always、initial等过程语句中定义,并通过过程语句赋值。,2023/9/18,98,常用的register型变量及说明,2023/9/18,99,向量定义时需要位宽选项,例如reg7:0 data;/定义1个8位寄存器型变量,最高有效位是7,最低有效位是0reg0:7 data;/定义1个8位寄存器型变量,最高有效位是0,最低有效位是7向量定义后可以采有多种使用形式(即赋值)data=b00000000;data5:3=B111;data7=1;,2023/9/18,100,(3)数组 若干个相同宽度的向量构成数组。在数字系统中,reg型数组变量即为memory(存储器)型变量。存储器型可以用如下语句定义reg7:0 mymemory1023:0;上述语句定义了一个1024个字存储器变量mymemory,每个字的字长为8位。在表达式中可以用下面的语句来使用存储器:mymemory7=75;/存储器mymemory的第7个字被赋值75,2023/9/18,101,2.5.3 Verilog HDL的语句,语句是构成Verilog HDL程序不可缺少的部分。Verilog HDL的语句包括赋值语句、条件语句、循环语句、结构说明语句和编译预处理语句等类型,每一类语句又包括几种不同的语句。在这些语句中,有些语句属于顺序执行语句,有些语句属于并行执行语句。,2023/9/18,102,1.赋值语句,1)门基元赋值语句格式基本逻辑门关键字(门输出,门输入1,门输入2,门输入n);基本逻辑门关键字是Verilog HDL预定义的逻辑门,包括and、or、not、xor、nand、nor等;圆括弧中内容是被描述门的输出和输入信号。例如,具有a、b、c、d四个输入和y为输出与非门的门基元赋值语句为nand(y,a,b,c,d);,2023/9/18,103,2)连续赋值语句格式assign赋值变量=表达式;例如assigny=(a&b&c&d);连续赋值语句的“=”号两边的变量都应该是wire型变量。在执行中,输出y的变化跟随输入a、b、c、d的变化而变化,反映了信息传送的连续性。,2023/9/18,104,3)过程赋值语句 过程赋值语句出现在initial和always块语句中,赋值符号是“=”,格式为赋值变量=表达式;在过程赋值语句中,赋值号“=”左边的赋值变量必须是reg(寄存器)型变量,其值在该语句结束即可得到。如果一个块语句中包含若干条过程赋值语句,那么这些过程赋值语句是按照语句编写的顺序由上至下一条一条地执行,前面的语句没有完成,后面的语句就不能执行,就象被阻塞了一样。因此,过程赋值语句也称为阻塞赋值语句。,2023/9/18,105,4)非阻塞赋值语句非阻塞赋值语句也是出现在initial和always块语句中,赋值符号是“=”,格式为赋值变量=表达式;在非阻塞赋值语句中,赋值号“=”左边的赋值变量也必须是reg型变量,其值不象在过程赋值语句那样,语句结束时即刻得到,而在该块语句结束才可得到。,2023/9/18,106,2.条件语句条件语句包含if语句和case语句,它们都是顺序语句,应放在always块中。,1)if语句完整的Verilog HDL的if语句结构如下:if(表达式)begin 语句;endelse if(表达式)begin 语句;endelse begin 语句;end,2023/9/18,107,2)case语句 case语句是一种多分支的条件语句,完整的case语句的格式为case(表达式)选择值1:语句1;选择值2:语句2;选择值n:语句n;default:语句n+1;endcase,2023/9/18,108,case语句还有两种变体语句形式,即casez和casex语句。casez和casex语句与case语句的格式完全相同,它们的区别是:在casez语句中,如果分支表达式某些位的值为高阻z,那么对这些位的比较就不予以考虑,只关注其他位的比较结果。在casex语句中,把不予以考虑的位扩展到未知x,即不考虑值为高阻z和未知x的那些位,只关注其他位的比较结果。,2023/9/18,109,3.循环语句 循环语句包含for语句、repeat语句、while语句和forever语句4种。1)for语句for语句的语法格式为for(循环指针=初值;循环指针 终值;循环指针=循环指针+步长值)begin 语句;end,2023/9/18,110,2.repeat语句语法格式repeat(循环次数表达式)语句;,2023/9/18,111,4.结构声明语句Verilog HDL的任何过程模块都是放在结构声明语句中,结构声明语句包括always、initial、task和function等4种结构。1)always块语句 在一个Verilog HDL模块(module)中,always块语句的使用次数是不受限制的,块内的语句也是不断重复执行的。always块语句的语法结构为,2023/9/18,112,always(敏感信号表达式)begin/过程赋值语句;/if语句,case语句;/for语句,while语句,repeat语句;/tast语句、function语句;end,2023/9/18,113,在always块语句中,敏感信号表达式(event-expression)应该列出影响块内取值的所有信号(一般指设计电路的输入信号),多个信号之间用“or”连接。当表达式中任何信号发生变化时,就会执行一遍块内的语句。块内语句可以包括:过程赋值、if、case、for、while、repeat、tast和function等语句。敏感信号表达式中用“posedge”和“negedge”这两个关键字来声明事件是由时钟的上升沿或下降沿触发。always(posedge clk)表示事件由clk的上升沿触发;always(negedge clk)表示事件由clk的下降沿触发。,2023/9/18,114,2)initial语句initial语句的语法格式为initial begin 语句1;语句2;end initial语句的使用次数也是不受限制的,但块内的语句仅执行一次,因此initial语句常用于仿真中的初始化。,2023/9/18,115,3)task语句 task语句用来定义任务。任务类似高级语言中的子程序,用来单独完成某项具体任务,并可以被模块或其他任务调用。利用任务可以把一个大的程序模块分解成为若干小的任务,使程序清晰易懂,而且便于调试。可以被调用的任务必须事先用task语句定义,定义格式如下,2023/9/18,116,task 任务名;端口声明语句;类型声明语句;begin 语句;endendtask,2023/9/18,117,4)function语句 function语句用来定义函数,函数定义格式如下function 最高有效位:最低有效位 函数名;端口声明语句;类型声明语句;begin 语句;endendfunction,2023/9/18,118,函数调用的格式如下函数名(关联参数表);函数调用一般是出现在模块、任务或函数语句中。通过函数的调用来完成某些数据的运算或转换。,2023/9/18,119,2.5.4 不同抽象级别的Verilog HDL模型,Verilog HDL是一种用于逻辑电路设计的硬件描述语言。用Verilog HDL描述的电路称为该设计电路的Verilog HDL模型。Verilog HDL具有行为描述和结构描述功能。行为描述是对设计电路的逻辑功能的描述,并不用关心设计电路使用那些元件以及这些元件之间的连接关系。行为描述属于高层次的描述方法,在Verilog HDL中,行为描述包括系统级(System Level)、算法级(Algorithm Level)和寄存器传输级(RTL:Register Transfer Level)等3种抽象级别。,2023/9/18,120,结构描述是对设计电路的结构进行描述,即描述设计电路使用的元件及这些元件之间的连接关系。结构描述属于低层次的描述方法,在Verilog HDL,结构描述包括门级(Gate Level)和开关级(Switch Level)2种抽象级别。在Verilog HDL的学习中,应重点掌握高层次描述方法,但门级描述在一些电路设计中也有一定的实际

    注意事项

    本文(新编数字逻辑电路(江国强).ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开