三章组合逻辑电路设计ppt课件.ppt
- 【下载声明】
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
展开阅读全文