书签 分享 收藏 举报 版权申诉 / 86
上传文档赚钱

类型三章组合逻辑电路设计ppt课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:3522477
  • 上传时间:2022-09-11
  • 格式:PPT
  • 页数:86
  • 大小:1.70MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《三章组合逻辑电路设计ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    组合 逻辑电路 设计 ppt 课件
    资源描述:

    1、第3章 组合逻辑电路设计讨论主题:n3.1组合逻辑基础及并行语句三人表决器n3.2加法器电路 一位加法器n3.3 verilog过程译码器原理 3-8译码器n3.4数码管显示电路 七段显示译码器3.1 组合逻辑电路 表决器f0f1f2fbsa3.1 组合逻辑电路对比DENAQPRECLRfreg0f0faclkb3.1 组合逻辑电路定义n组合逻辑含义:电路任一时刻的输出状态只决定于该时刻各输入状态的组合,而与电路的原状态无关。组合电路就是由门电路组合而成,电路中没有记忆单元,没有反馈通路。3.1 组合逻辑建模方法n建模思路:用语言表述出来:针对输入,总有确定的输出,输入一变化,输出就随之变化n

    2、建模规范:1.过程(进程)之外,本来就是并行,直接建模 2.过程(进程)之内:a.所有输入变化立刻变化。b.针对输入,输出有确定值 (绝对真经!)(绝对真经!)3.1 组合逻辑verilog描述module select(f,a,b,s);output f;input a,b,s;assign f=(a&(s)|(b&s);endmodule 3.1组合逻辑补充互补CMOS电路 3.1 二输入CMOS与非门电路 3.1二输入端CMOS或非门电路 3.1二输入CMOS异或门电路 3.2理解Verilog的并行语句n一般的程序设计语言是处理器按照顺序去执行的一些语句,硬件描述语言却是描述一个物理上

    3、可以客观存在的实际电路的语言。二者最本质的区别是Verilog硬件描述语言有并行语句。n并行语句是硬件描述语言的基本特征,可以说正是因为并行语句的存在,才使其成为了真正的硬件描述语言。Verilog需要顺序语句 n第一是很多时序器件本身就是和时间相关的,比如D触发器,其原理就是“每当时钟上升延来临之后就把输入端的数据存入,并且放在输出端口,直到下一个时钟来临为止”。如果使用语言来描述一个器件符合上述原理,很明显需要用到时间先后的语法,而且在很多场合,使用顺序执行的语句可以有效的简化描述语言的数量,基于这个原因,描述有些电路结构需要使用顺序执行的语句。但是即使用顺序执行的语句描述出来了这种器件,

    4、也是在底层和其他器件并行处理的。n第二个原因就是为了仿真验证,3.2 加法器电路n真值表加法器a1a2bca1a2bc3.2 加法器电路n初识Verilogmodule adder(a,b,c);input1:0 a,b;output2:0 c;assign c=a+b;endmodule3.2 半加器n能对两个一位二进制数相加,求得其和值及进位的逻辑电路称为半加器。半加器的特点是:只考虑两个一位二进制数的相加,而不考虑来自低位进位的运算电路,称为半加器。任务7中设计的一位加法器级为半加器。3.2 全加器n一位二进制数相加不仅要考虑本位的加数与被加数,还要考虑低位的进位信号,而输出包括本位和以

    5、及向高位的进位信号,这就是通常所说的全加器。全加器ABCi-1SCi3.2全加器1111iiiiiiiiiiiiCBACBACBACBAS)()(11iiiiiiCBACBA1iiiCBA1111iiiiiiiiiiiiCBACBACBACBACiiiiiiiBACACB11 3.2 多位加法器 3.2 比较 module adder(a,b,c);input1:0 a,b;output2:0 c;reg2:0 c;always(a,b)beginc=a+b;endendmodule3.2任务:n自己使用Verilog编写一个4位数加4位数的加法器。3.3 Verilog 过程及译码电路nAl

    6、ways 过程语句nalways定义的过程块是一个电路,电路从上电开始就会一直执行;n (从代码一开始就执行,执行完了再回到过程块的最初来执行,周而复始,不会停止,直到代码执行完毕)3.3 常用过程语句 if else/“begin”和“end”就好比C语言中的“”和“”.if(enable=1b1)begin data=10;/十进制赋值 address=16hDEAD;/十六进制 wr_enable=1b1;/二进制 end else begin data=32b0;wr_enable=1b0;address=address+1;end3.3过程语句casecase(address)0:$

    7、display(It is 11:40PM);1:$display(I am feeling sleepy);2:$display (Let me skip this tutorial);default:$display (Need to complete);endcase3.3过程语句while module counter(clock,rst,enable,count);input clock,rst,enable;output 3:0 count;reg 3:0 count;always (posedge clock or posedge rst)if(rst)begin count=0

    8、;end else begin:COUNT while(enable)begin count=count+1;disable COUNT;end end endmodule3.3过程中的阻塞赋值与非阻塞赋值过程中的阻塞赋值与非阻塞赋值 n阻塞式 (blocking)的操作符为“=”n 非阻塞式 (non-blocking)的操作符为“=”n 阻塞赋值和非阻塞赋值的基本区别是:阻塞赋值是顺序执行语句,而非阻塞赋值是并行执行语句。两种语句的含义不同,建模的应用也就不同。3.3 对比module top(clk,a,c);input a,clk;output c;reg c,b;always(pos

    9、edge clk)beginb=a;=b;endendmodulemodule top(clk,a,c);input a,clk;output c;reg c,b;always(posedge clk)beginb=a;c=b;endendmodule3.3译码器电路输入输入输出输出A BY0 Y1 Y2 Y30 01 0 0 00 10 1 0 01 00 0 1 01 10 0 0 12 2线线4 4线译码器真值表线译码器真值表00mBAY 33mABY 22mBAY 11mBAY 逻辑函数:逻辑函数:2线线4线译码器电路线译码器电路3-8译码器电路重温设计过程n1.文本编辑n2.设定器件

    10、n3.输入管脚n4.综合、布局布线n5.设定下载端口n6.下载3.3实训 3-8译码器8-3译码器n能不能自己实现8-3译码器电路?3.5 三态门电路输入信号双向信号输出信号rwco_dataout_datain_data1co_dataxco_data0out_dataout_dataout_data三态门电路结构单元 如果使能端G为低电平,取值为0时,三态门电路与B点之间连接的两个MOS管都关断,B在芯片内部的连接处于高阻态,也就是为Z,此时外部信号可以通过B送到C,作为输入状态。当G为低高平,取值为1时,三态门电路与B连接的两个MOS管中可以有一个管子导通,B的取值和A一致,而此时外部对

    11、B不能进行信号驱动,否则就会出现短路。CMOS传输门三态门电路 3.4 数码管显示3.4 练习一 数码管上显示2module seg7(data_out);output7:0 data_out;assign data_out=8b 1011011 3.4 七段译码器结构七段LED数码管显示电路in0dg3.4表格显示七段数码管显示电路输入七段数码管显示电路输出LED显示字形in3 in2 in1 in0gfedcba 0 0 0 001111110 0 0 0 100001101 0 0 1 010110112 0 0 1 110011113 0 1 0 011001104 0 1 0 111

    12、011015 0 1 1 011111006 0 1 1 100001117 1 0 0 011111118 1 0 0 1110011193.4 代码module qiduan(data_in,/七段数码管显示电路的输入,对应图2.1.4中的in3-in0,in3对应输入的高位data_out);/七段数码管显示电路的输出,对应图2.1.4中的g-a,g对应输出的高位input3:0 data_in;/输入输出端口定义output6:0 data_out;reg6:0 data_out;/使用always建模组合逻辑需要定义输出为寄存器always(data_in)/输入为data_inbe

    13、gin case(data_in)/输入的不同情况 4b0000:data_out=7b0111111;/0 4b0001:data_out=7b0000110;/1 4b0010:data_out=7b1011011;/2 4b0011:data_out=7b1001111;/3 4b0100:data_out=7b1100110;/4 4b0101:data_out=7b1101101;/5 4b0110:data_out=7b1111100;/6 4b0111:data_out=7b0000111;/7 4b1000:data_out=7b1111111;/8 4b1001:data_o

    14、ut=7b1100111;/9 default:data_out=7b0000000;/default,当输入为其他值时,输出有效,为全0 endcaseendendmodule3.4实训显示小任务:n使用七段数码管显示一个3的数字。nmodule SEG7(nabcdefg,nscan n);nwire 3:0 bin;noutput3:0 scan;noutput6:0 abcdefg;nreg 6:0 abcdefg;assign scan=4b1111;always(bin)begin case(bin)4b0000:abcdefg=7b0111111;.default:abcdefg

    15、=7b0000000;endcase end endmodule3.4任务:用数码管显示9527需要轮流打开4个数码管,每个数码管显示1/4的时间,由于视觉暂留效应,就好像显示4个不同的数字设计思路:1.打开scan0的时候,在abcdefg线上赋值“9”2.打开scan1的时候,在abcdefg线上赋值“5”3.打开scan2的时候,在abcdefg线上赋值“2”4.打开scan3的时候,在abcdefg线上赋值“7”设计SCAN信号n首先要降低扫描速度,生成一个大约为0.01s-0.1s的时钟n利用这个时钟信号产生一个scan信号如下:reg1:0 state;reg3:0 scan;/注

    16、意要用always就必须是regalways(posedge clk_div)state=stats+1b1;always (state)case(state)2b00:scan=4b0001;2b01:scan=4b0010;2b10:scan=4b0100;2b11:scan=4b1000;default:scan=4b0000;endcase分不同的时间把9、5、2、7放到bin上面去reg3:0 bin;/不在always里面赋值就用wire,否则用regalways(state)case(state)2b00:bin=4d9;2b01:bin=4d5;2b10:bin=4d2;2b1

    17、1:bin=4d7;default:bin=4d0;endcase再对9527从二进制到abdcdefg译码reg6:0 abcdefg;always(bin)begin case(bin)4b0000:abcdefg=7b0111111;.default:abcdefg=7b0000000;endcase2.项目任务:计数牌子n任务分析:设计一个计数牌子,能从0000计数到9999,每隔1秒钟跳动一下。通过复位可以把系统清零为0000涉及:动态数码管显示,复位,分频电路等n设计思路:1.内部所有数据都是2进制的,所以需要设计4个4位2进制的reg,分别对应显示的4个数字,再通过动态扫描电路送

    18、到LED上面去显示。2.利用1秒的时钟,构建“个、十、百、千”位的变换规律 设计模块1:分频电路n代码:略1.产生一个1秒的时钟:clk_1s2.产生一个0.01秒的时钟(为了动态显示使用):clk_div设计模块2:计数器reg3:0 gewei/各位数always(posedge clk_1s)if(reset=1b1)gewei=4b0;else if(gewei=4d9)gewei=4b0;else gewei=gewei+1b1;reg3:0 shiwei/十位数always(posedge clk_1s)if(reset=1b1)shiwei=4b0;else if(gewei=4

    19、d9)begin if(shiwei=4d9);shiwei=4b0;else shiwei=shiwei+1b1;endreg3:0 baiwei/十位数always(posedge clk_1s)if(reset=1b1)baiwei=4b0;else if(gewei=4d9)&(shiwei=4d9)begin if(baiwei=4d9);baiwei=4b0;else baiwei=baiwei+1b1;endreg3:0 qianwei/十位数always(posedge clk_1s)if(reset=1b1)qianwei=4b0;else if(gewei=4d9)&(sh

    20、iwei=4d9)&(baiwei=4d9)begin if(qianwei=4d9);qianwei=4b0;else qianwei=shiwei+1b1;end设计模块3:动态译码显示n复习一下:我们是如何把9527显示出来的设计SCAN信号n首先要降低扫描速度,生成一个大约为0.01s-0.1s的时钟n利用这个时钟信号产生一个scan信号如下:reg1:0 state;reg3:0 scan;/注意要用always就必须是regalways(posedge clk_div)state=stats+1b1;always (counter)case(counter)2b00:scan=4b

    21、0001;2b01:scan=4b0010;2b10:scan=4b0100;2b11:scan=4b1000;default:scan=4b0000;endcase分不同的时间把9、5、2、7放到bin上面去reg3:0 bin;/不在always里面赋值就用wire,否则用regalways(counter)case(counter)2b00:bin=4d9;2b01:bin=4d5;2b10:bin=4d2;2b11:bin=4d7;default:bin=4d0;endcase再对9527从二进制到abdcdefg译码reg6:0 abcdefg;always(bin)begin ca

    22、se(bin)4b0000:abcdefg=7b0111111;.default:abcdefg=7b0000000;endcasen原来:在counter分别为00、01、10、11的时候在abcdefg上放置9、5、2、7n现在:在counter分别为00、01、10、11的时候在abcdefg上放置qianwei、baiwei、shiwei、gewei3.简易电子手表设计n项目分析:设计一个电子手表,其功能能包括复位后显示 15:34 能够正确显示时间hh mm系统架构图分频器分频器345160进制,6位2进制数23进制5位2进制数1分钟的时钟二进制到BCD译码二进制到BCD译码BCD码

    23、到7段数码管译码电路,动态显示设计模块1:分频电路n代码:略1.产生一个1分钟的时钟:clk_1m2.产生一个0.01秒的时钟(为了动态显示使用):clk_div设计部件2:计时器reg5:0 minute/分钟always(posedge clk_1m)if(reset=1b1)minute=6d34;/显示34分else if(minute=6d59)minute=6b0;else minute=minute+1b1;reg4:0 hour/小时always(posedge clk_1m)if(reset=1b1)hour=5d15;/初始化为15点else if(minute=6d59)

    24、/满足1小时 begin if(hour=5d23);/满23小时 hour=5b0;else hour=hour+1b1;end复习:BCD码转换电路nBinary-Coded Decimal,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制代码。nBCD-8421举例子:二进制 十进制 BCD 0 0 0 110 6 110 1001 9 1001 1101 13 0001 0011 1011111 95 1001 0101小练习BCD码转换n1.110011n2.100100n3.1010101n4.101100n5.101000

    25、001010任务:自己写一个0到99(1100011)的二进制到BCD转化电路提示:n需要应用“比较器来”确定十位上数字是多少?n确定了十位数后,用减掉一个这个十位数,得到个位数,再做各位数的BCD码转换设计部件2:8位二进制到BCD码译码器电路nhour与minute都是小于99的binary 数,所以分别分别可以转化为8位BCD数。n设定BCD数结果分别为hour_bcd,minute_bcd设计部件3:动态数码显示输出n现在,我们拥有2个8位的BCD码数据,hour_bcd,minute_bcd。n把它们拆分成为4个4进制的BCD码数据:hour_bcd 7:4,hour_bcd 3:0

    26、,minute_bcd 7:4,minute_bcd 3:0。设计SCAN信号n首先要降低扫描速度,生成一个大约为0.01s-0.1s的时钟n利用这个时钟信号产生一个scan信号如下:reg1:0 state;reg3:0 scan;/注意要用always就必须是regalways(posedge clk_div)state=stats+1b1;always (counter)case(counter)2b00:scan=4b0001;2b01:scan=4b0010;2b10:scan=4b0100;2b11:scan=4b1000;default:scan=4b0000;endcase分不

    27、同的时间把9、5、2、7放到bin上面去reg3:0 bin;/不在always里面赋值就用wire,否则用regalways(counter)case(counter)2b00:bin=4d9;2b01:bin=4d5;2b10:bin=4d2;2b11:bin=4d7;default:bin=4d0;endcase再对9527从二进制到abdcdefg译码reg6:0 abcdefg;always(bin)begin case(bin)4b0000:abcdefg=7b0111111;.default:abcdefg=7b0000000;endcasen原来:在counter分别为00、0

    28、1、10、11的时候在abcdefg上放置9、5、2、7n现在:在counter分别为00、01、10、11的时候在abcdefg上放置hour_bcd 7:4,hour_bcd 3:0,minute_bcd 7:4,minute_bcd 3:0。2.多路选择器电路n 多路选择器(MUX)又叫多路开关(WUX),是一个选择器来的,它从多路数据输入中选择一路致输出端。详细看以下图形,即四选一多路选择器,就会明白的。它是四个二进制数据值作为多路选择器的输入,两个选择控制信号决定四个输入中哪个被传到输出端。其中,(b)和(c)分别表示高电平有效选通信号(启动信号)和低电平有效的四选一多路选择器及它们

    29、的真值表。问题,做一个4选1的多路选择器,要几个2选1的多路选择器?原来是3个设计一个多路选择器结构如下:控制端:00全灭11全亮10选择第一路01选择第二路3.分歧终端机课后练习n设计要求:首先甲拨码一个数据,然后乙拨码一个数据,然后当裁判按下“开”的时候结果就显示在LED上(结果有3种,甲胜利,乙胜利,平手)00-石头01-剪子10-布11-放弃胜利n任务分析:组合逻辑电路,输入有:裁判判决显示甲的选择(2位)乙的选择(2位)输出有:仲裁结果(3位)5.BCD码转换电路nBinary-Coded Decimal,简称BCD,称BCD码或二-十进制代码,亦称二进码十进数。是一种二进制的数字编码形式,用二进制编码的十进制代码。nBCD-8421举例子:二进制 十进制 BCD 0 0 0 110 6 110 1001 9 1001 1101 13 0001 0011 1011111 95 1001 0101小练习BCD码转换n1.110011n2.100100n3.1010101n4.101100n5.101000001010

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:三章组合逻辑电路设计ppt课件.ppt
    链接地址:https://www.163wenku.com/p-3522477.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库