数字逻辑基础与VerilogHDL范秋华习题答案_第1页
数字逻辑基础与VerilogHDL范秋华习题答案_第2页
数字逻辑基础与VerilogHDL范秋华习题答案_第3页
数字逻辑基础与VerilogHDL范秋华习题答案_第4页
数字逻辑基础与VerilogHDL范秋华习题答案_第5页
已阅读5页,还剩81页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数字逻辑基础与VerilogHDL范秋华习题答案习题11-1用10位二进制数可以表示的最大十进制数是多少?解:10位二进制数能表示的最大十进制数是1023。二进制数的每一位只有0和1两种状态,10位二进制数的最大值就是每一位都为1,即1111111111。二进制转十进制的计算式为:1×29+1×28+1×27+⋯+1×20​=210−1=1024−1=1023​​通用规律:n位二进制数能表示的最大十进制数为2n-1。1-2若在编码器中有50个编码对象,则要求输出的二进制编码至少为多少位?解:要确定编码50个对象所需的最少二进制位数,核心依据是:n位二进制数最多可以表示2n个不同状态。我们可以通过逐步计算验证:当n=5时,25=32,32<50,无法覆盖50个编码对象;当n=6时,26=64,64>50,能够满足编码需求。因此,输出的二进制编码至少需要6位。1-3写出二进制数110111.0101对应的十进制数、八进制数和十六进制数。解:(110111.0101)2​=(55.3125)10​=(67.24)8​=(37.5)16​1-4将十进制数135转换为等值的二进制数、八进制数和十六进制数。解:(135)10​=(10000111)2​=(207)8​=(87)16​1-5将以下十进制数变换为二进制数,要求误差小于2-5。(1)673.23;(2)10000。解:(1)(673.23)10​​≈(1010100001.00111)2​(误差<2−5)(2)(10000)10​=(10011100010000)2​1-6写出下列二进制数的原码、反码和补码。(1)+1011;(2)-1011。解:(1)正数:+1011原码:符号位0+数值位1011→01011反码:与原码一致→01011补码:与原码一致→01011(2)负数:-1011原码:符号位1+数值位1011→11011反码:符号位保持1不变,数值位1011取反为0100→10100补码:反码10100加1→101011-7用8位二进制数补码表示下列十进制数。(1)+28;(2)-89。解:(1)(+28)补码=00011100(2)(-89)补码=101001111-8用二进制数补码计算下列各式。(1)8+11;(2)20-25;(3)23-11。解:要使用二进制补码计算这三个式子,我们统一采用8位二进制补码进行运算,运算后舍去超出8位的进位,结果再转换回十进制。8位补码规则:正数补码=原码,负数补码=原码数值位取反+1;取值范围-128∼+127。算式补码运算过程十进制结果8+1100001000+00001011=000100111920−2500010100+11100111=11111011−523−1100010111+11110101=00001100121-9已知A=(101101110)2,B=(1011100)2,按二进制数运算规则,分别按无符号数和有符号数两种情况求A+B及A-B的值。解:首先统一位数:A是9位,B是7位,运算前将B补齐为9位(无符号补0,有符号按符号位扩展)。A=(101101110)2B=(001011100)2​(补齐9位)1.无符号数无符号数运算规则:直接按二进制加减法计算,逢2进1,借1当2,结果保留全部位数(含进位)。A+B=(111001010)2​(十进制:458)A−B=(100010010)2​(十进制:274)2.有符号数有符号数运算规则:最高位(第9位)为符号位:0=正,1=负;加法:补码相加;减法:A−B=A+(−B),先求−B的补码,再相加;结果符号位为1时,需转原码得到十进制负数。A+B=(111001010)2=(−54)10​(−B)补码=(110100100)2A−B=A+(−B)=(100010010)2=(−238)10​1-10数100100011001作为二进制数或8421码时,其对应的十进制数分别是多少?解:(100100011001)2​=1×211+0×210+0×29+1×28+0×27+0×26+0×25+1×24+1×23+0×22+0×21+1×20=(2329)10​​​(100100011001)BCD=(100100011001)BCD=(919)10​​​1-11用8421码表示十进制数325.42。解:十进制数325.42对应的8421码是:001100100101.010000101-12分别用下列编码表示十进制数9876。(1)8421码;(2)2421码;(3)余3码;(4)余3循环码。解:编码类型十进制数9876对应的编码(4位一组)8421码10011000011101102421码1111111011011100余3码1100101110101001余3循环码10101110111111011-13证明下列等式(方法不限)。(1)AB'+B+A'B=A+B(2)ABC+AB'C+ABC'=AB+AC(3)A'B'C'+A(B+C)+BC=(AB'C'+A'B'C+A'BC')'证明:(1)AB'+B+A'B=(AB'+B)+(B+A'B)=A+B+B=A+B(2)ABC+AB'C+ABC'=(ABC+ABC')+(ABC+AB'C)=AB(C+C')+AC(B+B')=AB+AC(3)A'B'C'+A(B+C)+BC=(AB'C'+A'B'C+A'BC')'等式左边=A′B′C′+AB+AC+BC(分配律展开

A(B+C))=A′B′C′+AB(C+C′)+A(B+B′)C+(A+A′)BC(补全缺失变量,

X=X(Y+Y′))=A′B′C′+ABC+ABC′+ABC+AB′C+ABC+A′BC=A′B′C′+ABC+ABC′+AB′C+A′BC(合并重复项)​=(AB'C'+A'B'C+A'BC')'(最小项的补集,因为全体最小项之和等于1,X+X′=1)=等式右边1-14当变量A、B、C取值分别为1、0、1和1、1、0时,计算下列逻辑函数的值。(1)AB+B'C;(2)(A'+B+C)(A+B'+C)。解:(1)计算AB+B′C当A=1,B=0,C=1时AB+B′C​=(1⋅0)+(0′⋅1)=0+(1⋅1)=0+1=1​​当A=1,B=1,C=0时AB+B′C​=(1⋅1)+(1′⋅0)=1+(0⋅0)=1+0=1​​(2)计算(A'+B+C)(A+B'+C)当A=1,B=0,C=1时(A′+B+C)(A+B′+C)​=(1′+0+1)(1+0′+1)=(0+0+1)(1+1+1)=1⋅1=1​​当A=1,B=1,C=0时(A′+B+C)(A+B′+C)​=(1′+1+0)(1+1′+0)=(0+1+0)(1+0+0)=1⋅1=1​​1-15证明三变量摩根定理。(1)(ABC)'=A'+B'+C';(2)(A+B+C)'=A'B'C'。证明:(1)(ABC)′=A′+B′+C′将BC看作一个整体,利用二变量摩根定理(XY)′=X′+Y′分步推导:(ABC)′​=(A⋅(BC))′=A′+(BC)′=A′+B′+C′(再次使用二变量摩根定理:(BC)′=B′+C′)​​因此(ABC)′=A′+B′+C′得证。(2)(A+B+C)'=A'B'C'将B+C看作一个整体,利用二变量摩根定理(XY)′=X′+Y′分步推导:(A+B+C)′​=(A+(B+C))′=A′⋅(B+C)′=A′B′C′​​(再次使用二变量摩根定理:(B+C)′=B′C′)因此(A+B+C)′=A′B′C′得证。

习题1010-1数模转换器由哪几部分组成?各部分的作用是什么?解:数模转换器一般由寄存器、电阻网络、运算放大器、输出缓冲、参考电压源等组成。寄存器用来锁存输入的数字信号(如二进制码),确保在转换过程中信号稳定,防止干扰。权电阻网络和R-2R倒T型网络将数字量的“权值”转换为对应的电流。权电阻网络每个位对应不同阻值的电阻,通过电阻分压产生不同电流。R-2R倒T型网络由R和2R电阻组成,通过电流叠加实现高精度转换,是最常用的结构。运算放大器电路输出的电流信号转换为电压信号,并进行放大和滤波。参考电压源提供稳定的基准电压(Vref),决定输出模拟信号的最大幅值。输出缓冲电路增强输出信号的驱动能力,提高带负载能力,防止信号失真。10-2什么是模数转换器?什么是数模转换器?各应用在什么场合?解:模数转换器(ADC,Analog-to-DigitalConverter)和数模转换器(DAC,Digital-to-AnalogConverter)是电子系统中实现模拟信号与数字信号相互转换的核心器件,二者功能互补,共同构成了“数字世界”与“模拟世界”的接口。模数转换器是一种将连续变化的模拟信号(如电压、电流、温度、声音等)转换为离散的数字信号(如二进制码)的电子器件。应用于系统的前端将需要采集、处理、存储或传输模拟信号转换为数字信号送给计算机。例如温度、压力、流量、电压等工业物理量的采集与控制。医疗设备中心电图(ECG)、脑电图(EEG)、超声图像等生物信号的数字化。手机、卫星通信中,将模拟语音/数据转换为数字信号进行传输。麦克风、摄像头采集的模拟信号,经ADC转换后用于录音、录像和播放。单片机(MCU)、FPGA等数字系统中,对传感器数据进行实时处理。数模转换器是一种将离散的数字信号(如二进制码)转换为连续变化的模拟信号(如电压、电流)的电子器件。用于系统的后端将数字信号还原为模拟信号,以驱动执行器或实现模拟控制的场景,例如:声卡、音响中,将数字音频信号转换为模拟声音信号,驱动扬声器。显示器、投影仪中,将数字图像信号转换为模拟视频信号,驱动屏幕显示。数控系统、伺服电机控制中,将数字指令转换为模拟电压/电流,控制电机转速、位置等。通信系统中射端将数字信号转换为模拟信号,通过天线发射。信号发生器、示波器中,生成高精度的模拟波形(如正弦波、方波)。10-3如果逐次逼近型模数转换器的输出扩展到10位,时钟信号频率为1MHz,计算完成一次转换操作所需要的时间。解:周期T=1μs,n位逐次逼近型模数转换器完成一次转换操作所需要的时间为n+2个周期,现n=10,所以时间是12μs。10-4说明如何将DAC0832接成直通方式和双缓冲方式。解:DAC0832是一款8位D/A转换器,包含两个独立的8位输入寄存器:输入锁存器和DAC寄存器。输入锁存器(ILE控制)用于锁存外部输入的数字量。DAC寄存器(XFER控制)用于锁存输入锁存器的输出,最终控制DAC核心电路。两个寄存器均可通过控制信号独立使能,从而实现不同的工作模式。直通方式:所有控制信号(ILE、CS、WR1、XFER、WR2)均置低,输入锁存器和DAC寄存器同时被使能,即两个寄存器同时导通,处于“直通”状态,即输入的数字量无需锁存,直接通过寄存器进入DAC核心电路,实现高速转换数字量直接通过。适合高速、连续转换场景,例如信号发生器、实时控制系统。双缓冲方式:需分两次写入数据,先写输入寄存器,再写DAC寄存器。输入锁存器和DAC寄存器分别由独立的控制信号使能,实现“先锁存输入,再锁存DAC”的两步操作。第一步:锁存输入寄存器置ILE=1(高电平),CS=0(低电平),WR1=0(低电平)。微控制器向DI0~DI7写入数字量,输入锁存器锁存该数据。第二步:锁存DAC寄存器置XFER=0(低电平),WR2=0(低电平)。输入锁存器的数据被传递到DAC寄存器,最终驱动DAC核心电路转换。双缓冲方式适合多通道同步转换场景,例如多路模拟信号采集系统、彩色显示器的RGB输出。10-5在图T10-1给出的倒T型电阻网络数模转换器中,已知VREF=-8V,试计算当d3、d2、d1和d0分别为1时,在输出端所产生的模拟电压值。图T10-1解:4位倒T型电阻网络数模转换器输出电压公式:,即VO=½D,计算见下表。对应二进制数十进制数DVO伏)d3=1100084d2=1010042d1=1001021d0=1000110.510-6图T10-2所示电路是用AD7520和74LS161组成的波形发生电路,试画出输出电压VO随CLK变化一个周期的波形,并标出波形图上各点电压的幅度。图T10-2解:图中74LS161接成1-2-3-4-5-6的六进制计数器,AD7520输出电压,VREF=-8,VO=1/27D,计算过程见下表。clk计数器输出AD7520输入的二进制数十进制数DVO(伏)01000000000111/2712000000001022/2723000000001133/2734000000010044/2745000000010155/2756000000011066/27波形图如下:10-7在图T10-3给出的数模转换器中,若输入数字量以二进制补码给出,则最大的正数和绝对值最大的负数各为多少?它们对应的输出电压各为多少?图T10-3解:VREF=-8V,考虑偏移电路,查AD7520反馈电阻RF,为10KΩ,偏移电压为﹣4V,符号位取反,最终输出电压VO=1/27D﹣4原码十进制补码十进制补码符号位取反十进制DVO0111111111+5110111111111+511111111111110231/27×1023﹣4︙︙︙︙︙︙︙0000000001+10000000001+110000000015131/27×513﹣40000000000+000000000000100000000051201000000000﹣01111111111﹣10111111111511﹣1/27×511﹣41000000001﹣11111111110﹣201111111105101/27×510﹣4︙︙︙︙︙︙︙1111111110﹣5101000000001﹣511000000000111/27﹣41111111111﹣5111000000000﹣51200000000000﹣4表T10-1RAM数据表A3A2A1A0D3D2表T10-1RAM数据表A3A2A1A0D3D2D1D00000000000010001001000110011011101001111010111110110011101110011100000011001000010100001101100111100010111010111111010011111101110-8由AD7520、74LS160和RAM组成的逻辑电路如图T10-4所示,分析电路的工作原理,画出输出电压VO的波形图。表T10-1给出了RAM的16个地址单元中存放的数据。解:74LS160接成10进制计数器,在时钟的控制下,RAM的地址按从0-1-2-3-4-5-6-7-8-9循环,从表T10-1查数据D按0000-0001-0011-0111-1111-1111-0111-0011-0001-0000循环,VO=1/27D,在CLK控制下,输出电压分别是0,1/27,3/27,7/27,15/27,15/27,7/27,3/27,1/27,0。波形如图所示。图T10-4波形如图所示:

10-9试画出图T10-5所示波形发生电路的输出波形。AD7520是10位输入的倒T型电阻网络数模转换器。74LS194A是4位双向移位寄存器,假定它的初始状态为Q0Q1Q2Q3=0000,RF=1kΩ,C=0.01μF,石英晶体的谐振频率为1MHz。图T10-5解:CLK频率1MHz,T=1μs。74LS194A是4位双向移位寄存器S1S0接01,在时钟的控制下,右移。初始状态为Q0Q1Q2Q3=0000,DIR接Q3的反。AD7520是10位输入的倒T型电阻网络数模转换器,VO=1/27D。clkQ0Q1Q2Q3AD7520输入的二进制数十进制数DVO(伏)000000000000000001100010000000005124211001100000000512+2566311101110000000512+256+1287411111111000000512+256+128+647.5501110111000000256+128+643.5600110011000000128+641.5700010001000000640.580000000000000000波形如图所示10-10由计数器、ROM、DAC组成的波形发生电路如图T10-6所示。74LS160是同步十进制加法计数器,具有同步置数、异步清零功能;ROM是84位存储器,其数据如表T10-2所示;DAC是4位数模转换器,参考电压VREF=-4V。请问74LS160接成了多少进制的计数器?画出在CLK作用下输出信号V的波形,标注各点的电压值(假设74LS160的初始状态为0000)。表T10-2图T10-6解:74LS160用异步置零法接成8进制计数器,0-1-2-3-4-5-6-7,clkQ3Q2Q1Q0ROM输入的二进制数十进制数DVO(伏)0000000000010001001020.52001001004130011011061.54010010008250101011061.56011001004170111001020.580000000000波形如图所示

习题33-1写出逻辑函数Y(A,B,C)=A'B+B'C+C'的真值表。解:输入输出ABCY000100110101011110011011110111103-2已知逻辑函数Y的真值表如表T3-1所示,试写出Y的逻辑式。表T3-1ABCY000100100101表T3-1ABCY000100100101011010011010110011113-3将下列逻辑函数展开为最小项之和的逻辑式。(1)(2)(3)解:(1)Y(A,B,C)=AB+ACY=AB(C+C′)+AC(B+B′)=ABC+ABC′+ABC+AB′C=ABC′+AB′C+ABC=m5+m6+m7(2)Y=AB′C′D+BCD(A+A′)+A′D(B+B′)(C+C′)=AB′C′D+ABCD+A′BCD+A′BCD+A′BC′D+A′B′CD+A′B′C′D=AB′C′D+ABCD+A′BCD+A′BC′D+A′B′CD+A′B′C′D=m9+m15+m7+m5+m3+m1=∑m(1,3,5,7,9,15)(3)Y=AB+BC+CD=AB(C+C′)(D+D′)+BC(A+A′)(D+D′)+CD(A+A′)(B+B′)=ABCD+ABCD′+ABC′D+ABC′D′+A′BCD′+A′BCD+ABCD′+ABCD+A′B′CD+A′BCD+AB′CD+ABCD=m15+m14+m13+m12+m6+m7+m3+m11=∑m(3,6,7,11,12,13,14,15)3-4用公式法将下列逻辑函数化简为最简与或式。(1)(2)(3)解:(1)Y=AB′C+(AB′C)′=1(2)Y=(A′BC)′+(AB′)′=A+B′+C′+A′+B(德摩根定律)=(A+A′)+(B+B′)+C′=1+1+C′=1(3)Y=AC′+ABC+ACD′+CD=A(C′+BC)+C(AD′+D)=A(C′+B)+C(A+D)(吸收律:X′+XY=X′+Y)=AC′+AB+AC+CD=A+AB+CD=A+CD3-5分析图T3-1所示逻辑电路的功能,列出真值表,并写出逻辑式。解:图T3-1逻辑表达式为:Y=A'BC'+(A+B'C)'+C=A'BC'+A'(B+C')+C=A'BC'+A'B+A'C'+C=A'BC'+A'B+A'+C=A'B+A'+C=A'+C真值表为:输入输出ABCY00010011010101111000101111001111功能是:A=0:无论B、C为何值,输出Y=1,A=1:输出Y=C(直通C)。3-6利用卡诺图化简下列逻辑函数,其中为无关项。(1)(2)(3)(4)解:(1)写出最小项表达式AB′=AB′(C+C′)(D+D′)=AB′CD+AB′CD′+AB′C′D+AB′C′D′A′C=A′C(B+B′)(D+D′)=A′BCD+A′BCD′+A′B′CD+A′B′CD′BC=BC(A+A′)(D+D′)=ABCD+ABCD′+A′BCD+A′BCD′C′D=C′D(A+A′)(B+B′)=ABC′D+AB′C′D+A′BC′D+A′B′C′D合并后,最小项为:Y=∑m(1,3,4,5,6,7,8,9,10,11,12,13,14,15)绘制函数卡诺图,并圈出逻辑相邻项。CD

AB00011110000111010111110111101111得到最简与或式:Y=AB′+C+D(2)Y=A′B′C′+A′B′C+A′BC′+AB′C+ABC′+A'BC绘制函数卡诺图,并圈出逻辑相邻项。BC

A000111100110110111得到最简与或式:Y=A′B′+AC+BC′(3)Y=A′B′C′+A′B′C+A′BC′+AB′C′无关项:AB′C、ABC′绘制函数卡诺图,其中无关项用X表示,并圈出逻辑相邻项。BC

A000111100110111X0X得到最简与或式:Y=B′+C′(4)Y=A′B′CD′+A′B′CD+A′BCD+AB′C′D′+AB′CD+ABCD′无关项:A′B′C′D′、A′BC′D、AB′CD′、ABCD绘制函数卡诺图,其中无关项用X表示,并圈出逻辑相邻项。CD

AB0001111000X011010X101100X110101XY=AC+B′D′+CD3-7已知逻辑函数Y的波形图如图T3-2所示,试列出Y的真值表,写出Y的逻辑式。图T3-2解:真值表输入输出ABCY00000010010001101000101111011111Y的逻辑式:Y=AB′C+ABC′+ABC3-8写出图T3-3中各卡诺图对应的逻辑式,再把逻辑式化简为最简与或式。图T3-3解:(A)Y=AB′C′+A′B′C+ABC+A′BC′(B)Y=∑m(0,2,4,6,8,9,10,11,12,13,14,15)将卡诺图中的0圈出可得Y′CD

AB00011110001001011001111111101111故,Y′=A′DY=(A′D)′=A+D′3-9分析组合逻辑电路的特点,简述组合逻辑电路的分析方法。解:(1)组合逻辑电路的核心特点①无记忆性:电路的输出仅取决于同一时刻的输入,与电路过去的输入状态、工作状态无关,输入消失则输出也随之改变,无状态保持能力。②电路结构特征:仅由逻辑门(与、或、非、与非、或非等)构成,无反馈回路(无输出端到输入端的连线),也不含触发器、寄存器等记忆元件。③即时响应性:输入信号变化时,输出信号会在逻辑门的传输延迟后立即响应,无暂态过程的状态保持,延迟仅由门电路的固有传输时间决定。④功能单一性:每一种组合逻辑电路对应特定的逻辑功能,可通过逻辑表达式、真值表唯一描述,且多个简单组合电路可级联实现复杂逻辑功能。⑤存在竞争冒险现象:由于各输入信号通过不同路径传输时存在延迟差异,输入状态突变时,输出可能出现短暂的错误脉冲(毛刺),这是组合逻辑电路的固有潜在问题,需针对性消除。(2)组合逻辑电路的分析方法组合逻辑电路的分析是从已知的电路结构出发,推导出其逻辑功能的过程,核心目标是得到电路的真值表或逻辑功能描述,判断电路实现的具体功能(如判同、判异、加法、编码等),步骤具有固定性,具体如下(通用五步分析法):步骤1:确定输入、输出端,标注变量符号步骤2:从输入到输出,逐级推导逻辑表达式步骤3:化简逻辑表达式步骤4:根据最简表达式,列出真值表步骤5:分析真值表,描述电路的逻辑功能根据真值表中输入与输出的对应关系,总结电路的逻辑规律,用简洁的文字描述其具体功能。3-10分析如图T3-4所示的逻辑电路,写出逻辑式,列出真值表。图T3-4解:逻辑表达式为:Y=R'A'G'+RG+RA+AG真值表为输入输出RAGZ00010010010001111000101111011111功能:当输入全0,或至少任意两个输入同时为1时,输出为1,否则为0。3-11设计一个四变量的多数表决电路,当输入变量A、B、C、D有三个或三个以上为1时输出1,其他状态时输出0。解:(1)根据题意,列写出真值表输入输出输入输出ABCDYABCDY00000100000001010010001001010000110101110100011000010101101101100111010111111111(2)根据真值表列写出逻辑表达式Y=A′BCD+AB′CD+ABC′D+ABCD′+ABCD(3)利用卡诺图进行化简CDAB00011110000000010010110111100010逻辑表达式化简为:Y=BCD+ABD+ABC+ACD(4)绘制电路图3-12解:(1)根据题意,列写出真值表Y=((A0A1A2A3)′+(A4A5A6A7)′+(A8A9A10A11)′+(A12A13A14A15)′)′=A0A1A2A3A4A5A6A7A8A9A10A11A12A13A14A15构成了16路与门电路,当16路输入信号有一路或者一路以上为低电平时,输出即为低电平。只有全部为高电平时输出才为高电平1。3-13逻辑电路如图T3-6所示,说明其逻辑功能。图T3-5图T3-6解:根据电路图写出逻辑表达式为:Y=((X0A1′A0′)′(X1A1A0′)′(X2A1A0′)′(X3A1A0)′)′=X0A1′A0′+X1A1A0′+X2A1A0′+X3A1A0根据逻辑表达式分析电路功能为数据选择器,其中A1A0为地址位,当A1A0=00时,Y=X0;当A1A0=01时,Y=X1;当A1A0=10时,Y=X2;当A1A0=11时,Y=X3。3-14设计一个检测电路,检测4位二进制码中1的个数是否为偶数,若为偶数个1,则输出1,否则输出0。解:设输入的4位二进制码为ABCD,输出为Y,依题意可列写出真值表为输入输出输入输出ABCDYABCDY00001100000001010011001001010100111101100100011001010111101001101111000111011111其逻辑表达式为:Y=∑m(0,3,5,6,9,10,12,15)绘制其卡诺图如下表所示,可以发现是对角的即异或关系,因此用公式法化简。故Y=A′B′C′D′+A′B′CD+A′BC′D+A′BCD′+AB′C′D+AB′CD′+ABC′D′+ABCD=A′B′(C⊕D)′+A′B(C⊕D)+AB′(C⊕D)+AB(C⊕D)′=(C⊕D)(A⊕B)+(C⊕D)′(A⊕B)′=(C⊕D)☉(A⊕B)CDAB000111100010100101011110101001013-15设计2位二进制数的乘法器,其输入为两个2位的二进制数A1、A0和B1、B0,输出等于两个输入的乘积。(1)给出输出端的个数;(2)写出每个输出端的最简逻辑式;(3)画出逻辑图。解:给出输出端的个数两位二进制数最大值为3(10),相乘后输出结果最大为9(10),即为1001(2),因此输出端需要4位。给出每个输出端的最简逻辑式①根据题意,设输入为A1、A0、B1、B0、输出为Y3、Y2、Y1、Y0②列写出真值表为输入输出输入输出A1A0B1B0Y3Y2Y1Y0A1A0B1B0Y3Y2Y1Y000010000100000000010000010010010001100001010010001000000101101100101000111000000011000101101001101110011111001101000000011111001③根据真值表得到输出表达式为:Y0=∑m(5,7,13,15)Y1=∑m(6,7,9,11,13,14)Y2=∑m(10,11,14)Y3=∑m(15)(无需化简)④卡诺图化简A输出Y0卡诺图化简B1B0A1A000011110000000010110110110100000Y0=A0B0输出Y1卡诺图化简B1B0A1A000011110000000010011110101100110Y1=A1B1′B0+A1′A0B1+A0B1B0′+A1A0′B0输出Y2卡诺图化简B1B0A1A000011110000000010000110001100011Y2=A1B1B0′+A1A0′B1Y3=A1A0B1B0(3)画出逻辑图3-16设计将4位自然二进制码转换为循环码的逻辑电路。解:根据题意,列写真值表(参见教材16页),其中设输入四位自然二进制用ABCD表示,输出循环二进制码用EFGH表示。写出表达式,进行化简,既得自然二进制码与格雷码的转换逻辑式:E=AF=A⊕B,即F=A′B+AB′G=B⊕C,即G=B′C+BC′H=C⊕D,即H=C′D+CD′故逻辑电路图如下:解:方法一:常规方法设输入变量为ABC,输出变量为Y,可列真值表为输入输出ABCY00010010010001101000101011001111写出逻辑表达式Y=A′B′C′+ABC逻辑不相邻,故不可化简,则电路图为方法二:同或门由题意可知如果A和B相同,并且A和C也相同,即为一致,Y=(A⊙B)(B⊙C)故电路图为:

习题44-1编码器和译码器有什么区别?其过程是互逆的吗?解:编码器和译码器的核心逻辑功能互逆,但实际应用中是否完全互逆,取决于是否引入纠错、优先级等额外设计。4-2利用3-8线译码器74LS138扩展实现4-16线译码器,需要几片74LS138?要求用最经济可靠的方法实现,并画出逻辑图。解:要实现4-16线译码器,利用3-8线译码器74LS138扩展,最少需要2片74LS138。4-3试用3-8线译码器74LS138和必要的门电路实现下列逻辑函数,并画出逻辑图。Y1=AC'+A'BC+AB'CY2=AC+AB'Y3=A'B+AB'CY4=A'BC'+ABC+B'C'解:把逻辑函数化为最小项之和的形式:将要实现的输出逻辑函数的最小项之和的形式两次取反,即当S1=1,S′2=S′3=0时,令A2=A,A1=B,A0=C,则4-4试用9片3-8线译码器实现6-64线译码器,并画出逻辑图。解:3-8线译码器仅有3个地址输入端A2​、A1​、A0。如果想对6位二进制代码D5D4D3​D2​D1​D0译码,只能利用D5D4D3​的000、001、010、011、100、101、110、111八个代码译成Y′0​、Y′1、Y′2​、Y′3​​、Y′4、Y′5​、Y′6、Y′7​的八个输出低电平信号,分别接到八个3-8线译码器的附加控制端(S′2和S′3)上。这样就得到了如图所示的电路。4-5试用8片8选1数据选择器和1片38译码器组成64选1数据选择器,并画出逻辑图。解:为了能从64个数据中选中任何一个,必须用6位地址输入A5A4A3​A2​A1​A0​给出的64个代码。但每个8选1数据选择器只有三位地址代码输入端,因此可以首先用A5A4A3​的八个代码(000、001、010、011、100、101、110、111)从八个8选1数据选择器中选出一个,再用​A2​A1​A0的八个代码从选中的8选1数据选择器的八个输入数据中选出一个,经过输出端的或门送至输出Z。为此,需要用74HC138将A5A4A3​的000、001、010、011、100、101、110、111八个代码译成Y′0​、Y′1、Y′2​、Y′3​​、Y′4、Y′5​、Y′6、Y′7​的八个输出低电平信号,分别接到八个8选1数据选择器的选通控制端(S′)上。这样就得到了如图所示的电路。4-6分析图T4-1所示电路的功能,写出输出Z对应的逻辑式。图T4-1解:已知4选1数据选择器输出逻辑函数为将S’1=0,A1=A,A0=B,D10=C’,D11=D12=D13=C,Y1=Z代入上式,得到输出Z对应的逻辑式为4-7试用8选1数据选择器74HC151实现逻辑函数:Y=AC'D+A'B'CD+BC'D'+BC解:已知8选1数据选择器74HC151输出逻辑表达式为将给定的逻辑函数化为与上式对应的形式令74HC151的输入为A2=A,A1=B,A0=C,D1=D4=D,D2=D’,D0=D5=0,D3=D6=D7=1,如图所示,则数据选择器74HC151的输出Y就是所要求的逻辑函数。4-8用数据选择器设计实现用三个开关控制一盏电灯的逻辑电路,要求改变任何一个开关的状态都能控制电灯由亮变灭或者由灭变亮。解:要实现三个开关控制一盏灯,任意改变一个开关状态都能翻转灯的亮灭,核心是设计一个三输入异或逻辑电路(三变量奇偶校验器),因为异或运算的特性是:输入变量中1的个数为奇数时输出1(灯亮),为偶数时输出0(灯灭),任意改变一个输入变量的状态,都会改变1的个数的奇偶性,从而翻转输出。设三个开关为A、B、C(开关闭合为1,断开为0),灯的状态为Y(亮为1,灭为0)。满足题意的真值表为ABCY00000011010101101001101011001111由真值表写出逻辑函数式为:选择8选1数据选择器(如74HC151)实现上述功能。8选1数据选择器74HC151的输出逻辑函数式为将要求产生的函数式化为与数据选择器输出函数式完全对应的形式,得到令74HC151的输入为A2=A,A1=B,A0=C,D1=D2=D4=D7=1,D0=D3=D5=D6=0,如图所示,则数据选择器74HC151的输出Y就是所要求的逻辑函数。4-9用8选1数据选择器74HC151设计一个函数信号发生器电路,要求的功能如表T4-1所示。表T表T4-1G1G0Y00AB01A+B10AB11A'解:由功能表写出逻辑函数式又知8选1数据选择器74HC151的输出逻辑函数式为将要求产生的函数式化为与数据选择器输出函数式完全对应的形式,得到令74HC151的输入为A2=G1,A1=G0,A0=A,D0=D7=0,D1=D2=D4=B,D3=D6=1,D5=B’,如图所示,则数据选择器74HC151的输出Y就是所要求的逻辑函数。4-10用四片双4选1数据选择器和与非门实现循环码至8421码的转换,并画出逻辑图。解:双4选1数据选择器的输出逻辑函数式为设4位循环码输入为G3​G2​G1​G0​,4位8421码输出为B3​B2​B1​B0​,两者的比较如表所示。循环码8421码G3G2G1G0B3B2B1B000000000000100010011001000100011011001000111010101010110010001111100100011011001111110101110101110101100101111011001111010001111由表可知:令,,则​令,,则​​令,,则如图所示,则四片双4选1数据选择器和与非门实现循环码至8421码的转换。4-11用一片8-3线优先级编码器74LS148和与非门实现8421优先编码器,并画出逻辑图。解:输入为低电平有效,输出DCBA为对应8421码。列出8421优先编码器功能表S’I’0I’1I’2I’3I’4I’5I’6I’7I’8I’9DCBAGS01111111111000000×××××××××0100110××××××××01100010×××××××011011110××××××0111011010×××××01111010110××××011111010010×××0111111001110××01111111001010×011111111000110011111111100001对照8421优先编码器功能表及8-3线优先级编码器74LS148功能表可以写出:逻辑图4-12用一片4-16线译码器将8421码转换为余3码,写出逻辑式。解:以8421码的4位作为四个输入变量,以余3码的4位作为4位多输出函数的四个函数输出端,因为4-16线译码器的输出是低电平有效,可以用最小项之和来表示每个输出位。列出逻辑真值表。8421码输入余3码输出译码器输出D3D2D1D0Y3Y2Y1Y000000011Y’000010100Y’100100101Y’200110110Y’301000111Y’401011000Y’501101001Y’601111010Y’710001011Y’810011100Y’91010伪码0000Y’1010110000Y’1111000000Y’1211010000Y’1311100000Y’1411110000Y’15写出各输出位的逻辑式利用译码器的低电平有效输出,用最小项非来表示:4-16线译码器的输入接8421码D₃D₂D₁D₀,每个输出位Yi​由一个与非门对译码器的相应输出进行组合得到。无效输入(1010~1111)对应的输出设为0000,因此这些项未包含在逻辑式中。4-13用一片加法器74LS283实现将8421码转换为余3码,并画出逻辑图。解:BCD码+0011=余3码设输入8421码用变量D3D2D1D0表示,输出余3码用变量Y3Y2Y1Y0表示,则有Y3Y2Y1Y0=D3D2D1D0+[0011]补=D3D2D1D0+0011于是得到图示电路。4-14试用加法器74LS283和必要的门电路设计一个加/减法逻辑电路,当控制信号S=0时,将两个输入的4位二进制数相加;当控制信号S=1时,将两个输入的4位二进制数相减(假定两数相加的绝对值不大于15)。解:根据二进制数的加、减运算方法可知,若S=0时进行两个4位数a3​a2​a1​a0​和b3​b2​b1​b0​相加运算,则直接将两数加到74LS283的两组输入端就行了。而如果在S=1时要进行a3​a2​a1​a0​​-b3​b2​b1​b0​的运算,则应将b3​b2​b1​b0​变成补码与a3​a2​a1​a0​​的补码(与原码相同)相加。为此,需将b3​b2​b1​b0​每一位求反,同时在最低位加1。为满足上述要求,可将b3​b2​b1​b0​与S作异或运算后加到74LS283上,同时将S接至加法器的进位输入端CI,如图所示。当S=0时,B3​B2​B1​B0​=b3​b2​b1​b0​​,故得S3​S2​S1​S0​=a3​a2​a1​a0​+b3​b2​b1​b0​当S=1时,B3​B2​B1​B0=b3′​b2′​b1′​b0′​,即每一位求反,而且这时还从进位输入端CI加入1,故得S3​S2​S1​S0​=a3​a2​a1​a0​+[b3​b2​b1​b0​​]补​=a3​a2​a1​a0​​-b3​b2​b1​b0​​输出的和是补码形式。SF是和的符号位,和为正数时SF=0,和为负数时SF=1。4-15设计能执行下列运算组合的逻辑单元。(1)与非、或非、传输和取反;(2)与、或、非;(3)异或和同或。解:设置控制端M、S1、S0,输入A、B输出Y,列表如下:MS1S0功能Y000传输A001取反A'010与AB011或A+B100与非(AB)'101或非(A+B)'110异或A⊕B111同或A☉B写出表达式:Y=M'S1'S0'A+M'S1'S0A'+M'S1S0'AB+M'S1S0(A+B)+MS1'S0'(AB)'+MS1'S0(A+B)'+MS1S0'A⊕B+MS1S0A☉B画出电路图:4-16两个组合逻辑电路的输出分别为Y1、Y2,逻辑式如下,请问这两个电路是否会产生逻辑冒险?Y1=AB'+A'BY2=(AB+A'C)'解:1.分析Y1=AB'+A'B这是异或逻辑,即Y1​=A⊕B。逻辑式中,每个变量的不同“与项”之间没有共享的变量,也没有互补变量的直接冲突。当A和B同时变化时,输出会同步变化;当仅一个变量变化时,输出变化是确定的。故Y1不会产生逻辑冒险。2.分析Y2=(AB+A'C)'先化简:Y2=(AB+A'C)'=(A′+B′)(A+C′)=A′C′+AB′+B′C′当B=C=1时,Y2​=A′⋅0+A⋅0+0⋅0=0当A从0→1变化时:若A=0,Y2​=(0⋅1+1⋅1)′=(1)′=0若A=1,Y2​=(1⋅1+0⋅1)′=(1)′=0但从化简式看,Y2=A′C′+AB′+B′C′,当B=C=1时,Y2=0,但A变化时,A′C′和AB′都为0,仅B′C′为0,没有冒险。故Y2不会产生逻辑冒险。

习题55-1举例说明如何用VerilogHDL程序描述组合逻辑电路的真值表。解:有真值表用case语句描述即可,以2-4译码器为例moduledecoder_2to4(A,enable,Y);input[1:0]A;//2位输入inputenable;//使能端outputreg[3:0]Y;//4位输出always@(A,enable) begin if(enable==1'b0)Y=4'b0000;//使能无效时输出全0elsebegincase(A)2'b00:Y=4'b0001;2'b01:Y=4'b0010;2'b10:Y=4'b0100;2'b11:Y=4'b1000;default:Y=4'b0000;endcaseend endendmodule5-2用VerilogHDL设计七段数码管(共阴极)。解:modulebin27seg(data,y);input[3:0]data;output[6:0]y;reg[6:0]y;always@(data)beginY=7b0000000;case(data) 4'b0000:y=7'b0111111;--0 4'b0001:y=7'b0000110;--1 4'b0010:y=7'b1011011;--24'b0011:y=7'b1001111;--34'b0100:y=7'b1100110;--44'b0101:y=7'b1101101;--54'b0110:y=7'b1111100;--64'b0111:y=7'b1111111;--74'b1000:y=7'b0111111;--84'b1001:y=7'b1100111;--9default:y=7'b0000000;endcaseendendmodule5-3编写全减器的VerilogHDL程序。解:modulefull_subtractor_case(A,B,Bin,D,Bout);inputA;//被减数inputB;//减数inputBin;//借位输入outputregD;//差outputregBout;//借位输出always@(A,B,Bin)begincase({A,B,Bin})3'b000:beginD=1'b0;Bout=1'b0;end3'b001:beginD=1'b1;Bout=1'b1;end3'b010:beginD=1'b1;Bout=1'b1;end3'b011:beginD=1'b0;Bout=1'b1;end3'b100:beginD=1'b1;Bout=1'b0;end3'b101:beginD=1'b0;Bout=1'b0;end3'b110:beginD=1'b0;Bout=1'b0;end3'b111:beginD=1'b1;Bout=1'b1;enddefault:beginD=1'b0;Bout=1'b0;endendcaseendendmodule第二种答案:modulefull_subtractor(A,B,Bin,D,Bout);inputA;inputB;inputBin;outputregD;outputregBout;always@(A,B,Bin)beginD=A-B-Bin;//计算差值if(A<(B+Bin))Bout=1'b1;//判断是否产生借位elseBout=1'b0;endendmodule5-4设计一个比较电路,当输入的BCD码大于5时输出1,否则输出0。解:modulebcd_compare(bcd_in,bcd_out);input[3:0]bcd_in;outputregbcd_out;always@(bcd_in)beginif(bcd_in>4'b0101)bcd_out=1'b1;elsebcd_out=1'b0;endendmodule5-5分析下面程序的功能。moduleyunsuan(a,b,A,JG);input[3:0]a,b;input[2:0]A,;outputJG;regJGalways@(a,b,A)begincase(A)3'b000:JG=a&b; //与3'b001:JG=a|b; //或3'b010:JG=a^b; //异或3'b011:JG=!(a&b); //与非3'b100:JG=!(a|b); //或非3'b101:JG=!(!a&b|a&!b); //异或非endcaseendEndmodule解:这段代码是一个基于VerilogHDL实现的4位宽多功能逻辑运算模块,它接收两个4位输入数据和一个3位控制信号,根据控制信号的不同,选择执行与、或、异或、与非、或非、异或非六种逻辑运算之一,并输出运算结果。语法错误:1.input[2:0]A,;多了逗号、Endmodule应为小写endmodule;2.位宽问题:outputJG未声明位宽,默认1位,但a和b是4位,运算结果会被截断,正确应声明为output[3:0]JG;3.运算符问题:!是逻辑非(对整个结果取反,如4'b1010会被视为真,取反后为1'b0),而逻辑运算应使用~按位非(如~(a&b),对每一位取反),原代码的!会导致结果不符合4位宽逻辑运算的预期。修改后的程序如下:moduleyunsuan(input[3:0]a,b,//4位输入操作数input[2:0]A,//3位运算控制信号outputreg[3:0]JG//4位运算结果输出(修正位宽+合并声明));always@(*)//推荐用@(*)代替敏感列表,避免漏写信号begincase(A)3'b000:JG=a&b;//按位与3'b001:JG=a|b;//按位或3'b010:JG=a^b;//按位异或3'b011:JG=~(a&b);//按位与非(修正为按位非)3'b100:JG=~(a|b);//按位或非(修正为按位非)3'b101:JG=~(a^b);//按位异或非(同或,简化写法)default:JG=4'b0000;//补充默认值,避免综合告警endcaseendendmodule5-6分析下面程序的功能。module(a,b,c);input[3:0]a,inputb,output[3:0]calways(a,b)beginif(!b)c=a+2'b11;elsec=a-2'b11;endEndmodule解:这是一个4位加减3运算器,由控制信号

b

选择运算类型:当

b=0

时:执行加法运算

c=a+3当

b=1

时:执行减法运算

c=a-3程序存在1.语法错误:模块定义缺少名称(module(a,b,c)→module模块名(a,b,c));端口声明末尾漏分号(input[3:0]a,→input[3:0]a;);always块敏感列表格式错误(always(a,b)→always@(a,b));◦Endmodule大小写错误(Verilog关键字区分大小写,需为endmodule);2.逻辑错误:输出c在always块内赋值,但未声明为reg型(需补充reg);3.运算特性:4位二进制运算存在溢出/借位(如a=2、b=1时,2-3=-1,4位补码为1111);◦2'b11是2位二进制,与4位a运算时会自动补零为4'b0011(十进制3),不影响结果。修改后程序如下modulecalc(a,b,c);//原代码缺少模块名,补充为calc(自定义)input[3:0]a;//原代码末尾少分号,补充inputb;outputreg[3:0]c;//原代码少分号,且c在always块内赋值需声明为reg型always@(a,b)//原代码缺少@符号,敏感列表格式错误beginif(!b)c=a+2'b11;//当b=0时,a加3(2'b11=十进制3)elsec=a-2'b11;//当b=1时,a减3(2'b11=十进制3)endendmodule//原代码Endmodule大写错误,应为小写endmodule图T5-15-7写出图T5-1对应的采用结构描述方式的VerilogHDL程序,内部各元件定义的第一个引脚是输出,其余的是输入。解:modulefull_adder(A,B,Cin,Sum,Cout);inputA;//输入AinputB;//输入BinputCin;//进位输入outputSum;//和输出outputCout;//进位输出wireT3,S1,T1,T2;xorXOR1(S1,A,B);XorXOR2(Sum,S1,Cin);andAND1(T3,A,B);andAND2(T1,A,Cin);andAND3(T2,B,Cin);orOR1(Cout,T1,T2,T3);endmodule5-8moduleTop(A,B,C,L);inputA;inputB;inputC;outputL;wireAB,BC,AC;andU1(AB,A,B);andU2(BC,B,C);andU3(AC,A,C);orU4(L,AB,BC,AC);Endmodule解:5-9给出下面行为描述的VerilogHDL程序的真值表。moduleTop(A,B,C,L);inputA,B,C;outputL;regL;always@(A,B,C)begincase({A,B,C})3'b000:L=1'b0;3'b001:L=1'b0;3'b010:L=1'b0;3'b011:L=1'b1;3'b100:L=1'b0;3'b101:L=1'b1;3'b110:L=1'b1;3'b111:L=1'b1;default:L=1'bx;endcaseendEndmodule解:5-10给出下面数据流描述的VerilogHDL程序的真值表。moduleTop(A,B,C,L);inputA,B,C;outputL;assignL=(A&&B)||(B&&C)||(A&&C);Endmodule解:

习题66-1由或非门组成的SR锁存器电路结构以及输入端SD和RD的波形如图T6-1所示,试画出输出端Q和Q'的波形。解:6-2由与非门组成的SR锁存器电路结构以及输入端SD和RD的波形如图T6-2所示,试画出输出端Q和Q'的波形。解:6-3边沿触发的D触发器框图以及CLK和D的波形如图T6-3所示,假定触发器的初始状态为Q=0,试画出输出端Q和Q'的波形。6-4主从型JK触发器框图以及J、K、CLK的波形如图T6-4所示,假定触发器的初始状态为Q=0,试画出输出端Q和Q'的波形。解:6-5边沿触发的T触发器框图以及CLK和T的波形如图T6-5所示,假定触发器的初始状态为Q=0,试画出输出端Q和Q'的波形。解:6-6分别写出SR触发器、JK触发器、D触发器、T触发器的特性方程和特性表。解:参见教材P127-P131.6-7图T6-6(a)~(d)中各触发器的初始状态均为Q=0,CLK的波形如图T6-6(e)所示,试画出在CLK作用下,各触发器输出端的波形。图T6-6解:写出各图的特性方程,把驱动代入得到状态方程如下:(a)=Q'(b)=Q'(c)=Q'(d)=Q'输出都是翻转,(a)是主从结构,(c)是下降沿触发,都在CLK下降沿翻转;(b)、(d)是上升沿触发,在CLK上降沿翻转。如图所示6-88192×32位的ROM的地址码是多少位的?该存储器有多少个存储单元?解:8192=8×1024=213,有13根地址线,地址码从0000000000000-1111111111111;有213个存储单元,每个单元32位信息。6-9试用两个存储容量为2K×8位的ROM芯片组成4K×8位的存储系统。解:字扩展,2片。如图所示。6-10试用1K×4位的RAM芯片组成4K×8位的存储系统。解:既有位扩展,又有字扩展。可以先位扩展,再字扩展,即先用8片分别扩展成4个1K×8,再对这4个1K×8的进行字扩展,如图所示;也可先字扩展成2个4K×4,再进行位扩展。6-11试用ROM产生如下组合逻辑函数:解:先把函数写成最小项和的形式:Y1=ABCD+ABCD+ABCD+ABCD=∑m(2,3,6,7)Y2=ABCD+ABCD+ABCD+ABCD=∑m(6,7,10,14)Y3=ABCD+ABCD=∑m(4,14)Y4=ABCD+ABCD=∑m(2,15)选地址变量至少4个,数据端至少4个的ROM实现。如图所示:6-12用16×4位的ROM设计可以将两个2位二进制数相乘的乘法器电路,列出ROM中的数据表,画出存储矩阵的点阵图。解:输入输出A1A0B1B0Y4Y3Y2Y100000000000100000010000000110000010000000101000101100010011100111000000010010010101001001011011011000000110100111110011011111001Y1=∑m(5,7,13,15)Y2=∑m(6,7,9,11,13,14)Y3=∑m(10,11,14)Y4=∑m(15)A1A1A0B1B06-13用16×3位的ROM设计可以将两个2位二进制数相加的加法器电路,列出ROM中的数据表,画出存储矩阵的点阵图。解:输入A1A0B1B0Y3Y2Y10000000000100100100100011011010000101010100110011011110010000101001011101010010111001100011110110011101001111110Y1=∑m(1,3,4,6,9,12)Y2=∑m(2,3,5,6,8,9,12,15)Y3=∑m(7,10,11,13,14,15)A1A1A0B1B0

习题77-1说明对寄存器复位和输入全0的区别。解:复位的本质是直接将寄存器的输出(状态)置为预设的初始值;输入全0的本质是通过数据通路向寄存器写入0值。7-2设计一个逻辑电路,用于检测一个4位二进制计数器计数到以下数值的时刻。(1)7;(2)14;(3)15;(4)0。解:输入为4位二进制计数器的输出,记为q[3:0](q3为最高位,q0为最低位);输出检测信号detect(高电平有效,当q为7/14/15/0时,detect=1,否则=0);数值对应关系(4位二进制):0→4'b00007→4'b011114→4'b111015→4'b1111设计逻辑:将4位输入与上述4个目标值做相等判断,只要匹配其中任意一个,检测信号就置为高电平。电路图如下:图T7-17-3分析图T7-1所示计数器框图,画出其状态转换图,说明这是几进制计数器。解:六进制计数器,一到4就置数9(1001),方法是置数中的置最大数。进位输出用自带的进位输出就可以。状态转换图如下:7-4试用同步十六进制加法计数器74LS161接成十一进制计数器,可以附加必要的门电路。解:答案不唯一,没有要求方法,下图是置数法中的置最小数法。7-5试用同步十进制加法计数器74LS160接成321进制计数器,可以附加必要的门电路。解:答案不唯一,没有要求方法,下图是3片级联,并行进位级联成1000进制,然后用整体置零法。7-6用74LS163和必要的门接成五进制计数器,要求至少用两种方法来实现。解:注意74LS163与161框图符号一样,区别是置数端、置零端都是同步的。答案不止2种类。下面图是三种:a图是置零法,0-1-2-3-4;b图是置数法,1-2-3-4-5;c图是置数法,3-9-0-1-2,进位输出用芯片自带的输出。图a图b图c7-7写出描述下面锁存器和触发器的VerilogHDL程序。(1)D锁存器;(2)带异步复位(高电平有效)的D触发器;(3)带同步复位(低电平有效)的D触发器;(4)带异步复位(高电平有效)的JK触发器。解:(1)moduled_latch(D,EN,Q);inputD;//数据输入inputEN;//使能信号(高电平有效)outputregQ;always@(ENorD)beginif(EN)Q=D;//EN=1时,Q跟随D变化elseQ=Q;//EN=0时,Q保持原值(也可不写else语句,实现锁存功能)endendmodule(2)moduledff_async_reset(clk,rst,D,Q);inputclk;inputrst;inputD;outputregQ;//异步复位,时钟上升沿触发always@(posedgeclkorposedgerst)beginif(rst)Q<=1'b0;///复位信号优先,高电平有效,复位时Q=0elseQ<=D;//无复位时,时钟上升沿采样,D值存入Qendendmodule(3)moduledff_sync_reset(clk,rst_n,D,Q);inputclk;inputrst_n;inputD;outputregQ;always@(posedgeclk)beginif(!rst_n)Q<=1'b0;//复位信号低电平有效,复位时Q=0elseQ<=D;//正常工作,D值存入Qendendmodule(4)modulejkff_async_reset(clk,rst,J,K,Q);inputclk;inputrst;inputJ;inputK;outputregQ;always@(posedgeclkorposedgerst)beginif(rst)beginQ<=1'b0;end//异步复位优先elsebegincase({J,K})2'b00:Q<=Q;//保持2'b01:Q<=1'b0;//复位2'b10:Q<=1'b1;//置位2'b11:Q<=~Q;

温馨提示

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

评论

0/150

提交评论