《数字电路与逻辑设计》笔记及经典问答题
作者:互联网
第一章:基本知识
第二章:逻辑代数基础
第三章:集成门电路与触发器
第四章:组合逻辑电路
第五章:同步时序逻辑电路
第六章:异步时序逻辑电路
第七章:中规模电路
边沿触发及电平触发的区别:
八种逻辑门
Cache和Buffer的区别
第一章:基本知识
ADC:模拟信号->数字信号:通过采样定理采样-----量化----------编码
DAC:数字信号->模拟信号:数字信号再按照编码地方式进行解析,然后再传进D/A转换器
反码:他的出现可以解决原码加法困难问题,但是会出现正负零悖论。
补码:是为了解决原码加法困难和反码出现正负零,根据时钟的减法可以由加法代替想到的,运算。主要是将二进制的加减法统一成加法运算,且运算结果不需要修正
给出的定义公式只是类似于数学上(-1)的n次方,这种表示符号的运算,实际意义不大,记住转换口诀是最好的。
正数的三码相同。
对于负数,求反码:符号位不变,仍然为1,其余位求反。
复数的补码,符号位1也不变,其余位求反+1。
什么是有权码?什么是无权码?余3码是有权码还是无权码?
有权码是位数有着相应数值的数码,例如8421码和2421码。无权码是位数没有对应数值,余3码是无权码。
计算机中所有信息都是用二进制表示,这是因为:
1.二进制只有两种基本状态,而使用有两用稳定状态的物理器件可以容易的表示二进制数的每一位。
2.二进制的编码、计数和运算规则简单,可以用开关电路来实现,简便易行。
3.两个符号1和0正好与逻辑命题中的两个值真和假相对应,为计算机实现逻辑运算和程序中的逻辑判断提供了便利条件,特别是通过逻辑门电路方便的实现算术运算。
计算机中所有信息都用二进制表示,为什么还需要八进制、十六进制,这是因为二进制太长,阅读、书写均不方便,而八进制和十六进制却像十进制一样简练,易写易记。虽然计算机中只使用二进制一种计数制,但是为了开发和调试程序,阅读机器代码时的方便,人们通常用八进制或十六进制来等价的表示二进制。
可靠性编码
计算机系统为什么要采用可靠性编码?奇偶校验的结果可信吗?格雷码一般应用在什么场合?
二进制数据在被处理、传输、存储的过程中受干扰易发生错误,可靠性编码与数据在同一层,可以提供参考对象,便于检错与纠错。奇偶校验的结果可信。格雷码在港口、冶金、煤炭等行业应用广泛。
BCD码:(Binaryc oded Decimal)四位二进制,代表一位十进制。与十进制数的转换关系很直观,相互转换也很简单,将十进制数75.4转换为BCD码:7->0111,5->0101,4->0100所以拼成8421BCD码的结果是:(0111 0101.0100)BCD;若将BCD码1000 0101.0101转换为十进制数:1000->8,0101->5,0101->5所以结果是:(85.5)D。
注意:同一个8位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数时,数值是不相同的。
例如:00011000,当把它视为二进制数时,其值为24;但作为2位BCD码时, 其值为18。
第二章:逻辑代数基础
逻辑函数的最小项与最大项之间有什么关系?
在同一问题中,下标相同的最小项和最大项互为反函数,即相同变量构成的最小项mi和最大项Mi之间存在互补关系
逻辑函数为什么要变换成不同的表达形式?在不同的情况下,逻辑函数使用不同的表达形式可能会简化问题
逻辑函数化简的工程意义是什么?用化简后的表达式构成逻辑电路,可以节省器件,减少成本,提高工作可靠性
如何利用卡诺图化简法求逻辑函数的最简或与表达式?
给定与或表达式时:
画出F卡诺图;2.合并0方格;3.写出F反最简与或;4.取反得到最简或与表达式
逻辑代数化简与卡诺图化简
逻辑代数化简与卡诺图化简各有什么特点?你喜欢使用哪种方法?
代数法需要大量的公理记忆,技巧性高,但是不知道什么时候才能画到最简,并不适合在计算机中实现,需要凭借经验才能判断。 卡诺图较为直观,也可以知道最简形式,从目的性而言效率更高,我偏向于用卡诺图求解。代数法需要大量的公理记忆,技巧性高,但是不知道什么时候才能画到最简,并不适合在计算机中实现,需要凭借经验才能判断。 卡诺图较为直观,也可以知道最简形式,从目的性而言效率更高,我偏向于用卡诺图求解
给定或与表达式时:
取反得到F反;2.画出F反卡诺图;3.合并1方格;4.写出最简与或表达式;5.取反得到最简或与表达式
逻辑函数的最简形式唯一吗?为什么?
不唯一,可能存在无法被全部必要质蕴含项包含的1方格,需要某些其他质蕴含项和全部必要质蕴涵项一起构成函数的最小覆盖。而这些非必要质蕴涵项的选择有时是多样的
第三章:集成门电路与触发器
OC门和TS门的结构与一般TTL与非门有何不同?各有何主要应用?
1.OC门(集电极开路与非门):
该电路在结构上把一般TTL与非门电路中的T3、D4去掉,令T4的集电极悬空,从而把一般TTL与非门电路的推拉式输出级改为三极管集电极开路输出,只有在外接负载和电源后才能正常工作,OC门可以用来实现线与操作。
2.TS门(三态输出门):
该电路是在一般与非门的基础上,附加使能控制端EN和控制电路构成的,在EN为高电平时为正常与非门,EN为低电平时,相当于开路;
TS门可以用来实现总线数据传输,包括单向数据传输和双向数据传输。
TTL与非门工作时,为什么其输出端连接同类门的数目有限制?
因为TTL与非门存在着扇出系数,它是指一个与非门能够带同类与非门的最大数目,它表示与非门带负载的能力,而一个逻辑门系统的带负载能力是有限制的,所以其输出端连接同类门的数目也有限制。
为什么TTL与非门对扇出系数有限制?
门电路的扇出系数是指该门电路驱动同类器件的数量。
扇出能力指的是对同类电路的驱动能力。扇出能力是用电路输出端所能带动的输入端数来表示的。
扇出数与系统工作频率有关:工作频率高扇出能力就低,工作频率低扇出能力就高。为了保证工作频率,所以与非门对扇出系数有限制。
为什么CMOS传输门的输入端和输出端可以互换使用?
因为MOS管的S级结构和D级结构是对称的,源极和漏极可以互换使用。因此,传输门的输入端和输出端可以互换使用。这一特性使CMOS传输门具有双向性,故又称为可控双向开关。
第四章:组合逻辑电路
在组合逻辑电路中,可以用来描述电路的逻辑功能的方法有哪些?
逻辑表达式,真值表,卡诺图,逻辑电路图。
在组合逻辑电路设计中,为什么要进行逻辑函数变换?
1、简化电路结构,可以降低成本
2、满足现有实际器件的需要
3、提高电路的可靠性,防止出现竞争险象
组合逻辑电路对输入信号有限制和要求吗?为什么?
- 不包含任何记忆元件,如触发器。
- 信号单向传输,不存在反馈回路。
3 与时序逻辑电路区分开,确保在任意时刻产生的稳定输出值仅仅取决于该时刻各输入值的组合,而与过去的输入值无关。
最简电路是否一定是最佳电路,为什么?
不一定,由于每个门的种类不同导致门的成本不同,并且性能不同导致的时延也不同,可能令电路出现险象
关于包含无关条件的组合逻辑电路设计,对于无关项的处理会对电路带来哪些影响?
无关项的取值并不会影响电路结果,如果恰当运用无关项,可以进一步简化电路表达式,从而简化电路,节约成本。
如何设计输入变量大于5的组合逻辑电路? - 用8421码表示输入变量,画真值表,做出卡诺图,添加无关项,化简。
- 设输入变量表示为8421码后的四位分别为ABCD,则化简后为:F(A,B,C,D)=A+BC,可以用一个与门一个或门实现。
如何评价电路化简时对无关项的使用?
无关项的取值并不会影响电路结果,恰当运用无关项,可以简化电路表达式,从而进一步简化电路,节约成本。
险象的影响
对于一个组合逻辑电路而言,险象对电路的输出有什么样的影响?如果将该组合逻辑电路封装成一个芯片,用于更复杂的逻辑电路设计,该电路的险象对后续设计的复杂电路有何影响?
险象会导致电路出现错误的输出,影响电路的的可靠性和稳定性。而一处小的险象在复杂电路中可能产生大的影响,从而使复杂电路的稳定性降低,导致输出出现问题
组合逻辑电路的竞争可以消除吗?
竞争不能消除,但险象可以消除。
组合逻辑电路的险象可以完全消除吗?
可以,有三种方式消除险象:
1.增加冗余项
2.增加惯性延时环节
3.选通法
在电路设计中,如果不得不使用主从J-K触发器,如何保证不会出现一次反转
尽量在时钟脉冲电平有效时,不让主触发器的输入信号发生变化
第五章:同步时序逻辑电路
同步时序逻辑电路与触发器之间有什么联系,同步时序逻辑电路是否必须采用触发器来完成记忆功能?如果可以不采用触发器,可以采用哪种结构来实现记忆功能。
时序逻辑电路的存储部分的基础是触发器,依靠触发器提供电路的状态
不是必须使用触发器完成记忆功能,还可以使用RAM等元件
假定某电路有一个外输出,如果分别采用Moore型和Mealy型电路,两者的输出有何不同?
Moore型的转向只取决于当前的状态,Mealy型则与当前的状态与电路的输入均相关·。Moore型的输出信号是直接由状态寄存器译码得到,而Mealy型则是以现时的输入信号结合即将变成次态的现态,编码成输出信号。Moore型的输出只与有限状态自动机的当前状态有关,与输入信号的当前值无关,而Mealy型的输出与输入信号的当前值有关
同步时序逻辑电路设计过程中使用哪种类型的触发器有利于电路简化(RS,D,JK,T等触发器)?为什么?
T触发器,输入CLK信号,只要Q翻转为1后,经反相器输出0到T端,那么以后的CLK输入均不会使Q再发生变化。除非T触发器复位了,将重新上述触发过程,故有利于电路简化
同步时序逻辑电路设计
给定一个电路设计需求,如果题目没有明确要求采用何种类型的电路来完成设计,如何判断是否可以采用同步时序逻辑电路的形式来完成设计?
时序逻辑电路在逻辑功能上的特点是任意时刻的输出不仅取决于当时的输入信号,而且还取决于电路原来的状态,或者说,还与以前的输入有关。时序电路具有记忆功能。同步时序电路是指各触发器的时钟端全部连接在一起,并接系统时钟端;只有当时钟脉冲到来时,电路的状态才能改变;改变后的状态将一直保持到下一个时钟脉冲的到来,此时无论外部输入x有无变化;状态表中的每个状态都是稳定的。
- 确定任意时刻的输出是否与原先的状态有关,如果只与当前时刻的输入有关则为组合逻辑电路,否则为时序逻辑电路。
- 在时序逻辑电路的前提下,应确定各触发器是否采用同一个CP时钟脉冲控制端,如果是,则为同步时序逻辑电路,否则为异步时序逻辑电路。
第六章:异步时序逻辑电路
异步时序逻辑电路特点
与同步时序逻辑电路相比,异步时序逻辑电路有什么特点?你曾经在哪些地方使用过或者接触过异步时序逻辑电路。
同步时序逻辑电路的状态(触发器的状态)都是在同一时钟信号的控制下,在同一时刻发生更新的。而异步时序逻辑电路的各触发器的时钟信号是不同的,状态更新不一定发生在同一时刻,比如我们用到的二-五-十进制计数器。
脉冲异步时序逻辑电路设计
你认为相对于同步时序逻辑电路,脉冲异步时序逻辑电路在设计时需要注意哪些问题?
1、同一时间,只能有一个脉冲输入,即输入只能一个为1; 2、触发器的状态收到时钟脉冲的影响,即激励表与同步时序逻辑电路不同; 3、mealy型和moore型电路的输出通常分别为脉冲和电平。
脉冲异步时序逻辑电路测试
脉冲异步时序逻辑电路应该进行怎样的测试才能满足使用要求?
根据时序逻辑电路分析步骤,得出电路的逻辑功能。进行测试,在时钟信号输入端加入合适的脉冲信号。然后观察各单元部件之间的配合是否满足要求。可采用以下几种办法。1.用示波器观察波形;2.用数码管显示;3.用0-1显示器显示二进制数。
脉冲异步时序逻辑电路正常工作
如何才能够保证脉冲异步时序逻辑电路正常工作?
1、输入脉冲的宽度必须保证触发器可靠翻转; 2、输入脉冲的间隔必须保证前一个脉冲引起的电路响应完全结束后后一个脉冲才能到来; 3、不允许两个或两个以上输入端同时出现脉冲。
电平异步时序逻辑电路与组合逻辑电路
电平异步时序逻辑电路与组合逻辑电路在结构上的主要区别是什么?
电平异步时序逻辑电路中存在逻辑门输出端(激励端)到逻辑门输入端的反馈,能够记忆信息;组合逻辑电路中没有输出端到输入端的反馈回路,信号都是单向传输的
第七章:中规模电路
组合逻辑函数功能的实现
实现一个组合逻辑函数功能,可以使用哪些种类的芯片?各有什么特点?
1、可以使用基本的逻辑门电路来实现组合逻辑函数。这种方式基本可以实现任意的逻辑函数,但芯片种类和数量一般较多,连线较多;
2、可以使用译码器芯片来实现。这种方式一般可同时实现多个逻辑函数,电路连线简单方便,但一般输入变量数量受限,一般少于或等于其地址输入端数量;
3、可以使用数据选择器芯片来吸纳。这种方式每次只能实现一个逻辑函数,连线比较简单,但一般输入变量的数量等于地址变量的数量,或比地址变量数多一个。如果输入变量再多,需增加的逻辑门和连线也变得复杂。
译码器
译码器的主要用途是什么?
译码功能的组合电路称为译码器。译码器是一个多输入、多输出的组合逻辑电路。它的作用是把给定的代码进行翻译,变成相应的状态,使输出通道中相应的一路有信号输出。译码器在数字系统中有广泛的用途,不仅用于代码的转换、终端的数字显示,还用于数据分配,存贮器寻址和组合控制信号等。不同的功能可选用不同种类的译码器。
数据选择器
数据选择器可以应用在何种场合?
数据选择器比较经典的应用是计算机结构内总线上的数据传输。 当同时有多个信号源需要通过总线传输时,可以用优先数据选择器决定在总线上的传输顺序。同时有多个信号源需要通过总线传输时,要选择输出单个信号,可用数据选择器
数据选择器级联
数据选择器可以通过多片的级联扩展实现更多路的数据选择吗?
可以,如果将N个“N输入1输出”的数据选择器的输出端接到另一个N输入1输出的输入端,那么就实现了一个N^2输入1输出的数据选择器。
数据选择器与三态门
什么类型的数据选择器可作为三态门使用?
有“输出缓冲控制”的数据选择器可以作为三态门使用
同步清零与异步清零
在使用集成同步计数器来实现不同模数的计数器时,采用同步清零的计数器和异步清零的计数器有什么不同?
实现模相同的计数器,异步清零状态数比同步清零多一个状态。同步清零的计数器的末态能够稳定存在一个时钟周期。可作为清零的采样信号。
异步清零计数器。清零端不收时钟控制,其控制信号采样的信号是末态的下一个状态,这一状态只能暂时出现,不能稳定存在。
边沿触发
边沿触发包括上升沿触发和下降沿触发,边沿触发检测的是电平变化,高电平转低电平或低电平转高电平时,触发一次中断。
边沿沿触发是锁存中断信号的,由D触发器记忆,即:若CPU来不及响应中断,外部中断信号撤消后,由于D触发器的记忆作用,消失的中断信号仍然有效,直到中断被响应并进入中断ISR,记忆的中断信号才会由硬件自动清除。
电平触发
电平触发分为高电平触发和低电平触发;电平触发需要手动清除中断信号
电平触发根据硬件设计的不同,分为即时触发和信号锁存触发;
(1)即时的电平触发,当外部中断信号撤消时,中断申请信号随之消失。如果在外部中断信号申请期间,CPU来不及响应此中断,那么有可能这次中断申请就漏掉了。
即时的电平触发是一个时间段,需要一直触发中断的,就用电平触发。比如高电平触发,只要检测到是高电平就触发中断。
(2)信号锁存的电平触发,当检测到高电平或低电平信号,该触发信号也会被锁存,类似于边沿触发,但是触发信号需要进行手动清除;
边沿触发及电平触发的区别:
边沿触发:上升沿和下降沿,这个在学数电时都学过的,简单说就是电平变化那一瞬间。
电平触发:一般是指低电平,就是电平变为低了之后的全部时间里。
电平触发是在高或低电平保持的时间内触发,而边沿触发是由高到低或由低到高这一瞬间触发
问:边沿触发到底解决了电平触发哪点没有解决的问题呢?
边沿触发一般时间短,边沿触发一般时间都是us级的,响应要快的,而电平触发只须是高和低就可以了,没时间要求,比如10s 时间内总是低电平,那么它也是触发的,
比如中断计时或计数,最好用边沿触发,用电平触发误差会很大,电平触发一般用于简单报警,开关一类(时间要求不高的)
分类:
电平触发,就是只有高电平的时候才做指定的事,
边沿触发,就是有高电平向低电平转换,或者翻过来转换,这个转换过程触发一个动作。
上升沿,顾名思义,就是低电平向高电平转换的瞬间,比如
____/ ,这个图中,/部分就是上升沿,
_____ ,这个图中,\部分就是下降沿
电平就是电压,高电平就是高电压,低电平就是低电压。高电平触发就是当电压为高就触发
边沿触发就是当电压由高变低或由低变高时触发
上升沿触发 就是当电压从低变高时触发
下降沿触发 就是当电压从高变低时触发
触发器flip-flop是边沿触发,锁存器latch则是电平触发
如果是采用边沿检测外部中断,检测到电平变化会中断,但是如果中断检测口一直保持某一电平,则无法产生下次中断,需要等下次检测到电平变化才会中断。中断得到响应后由硬件自动清除。
如果是采用电平检测外部中断,检测到低/高电平会中断,但是如果中断检测口一直保持低电平,中断处理完成后,会继续产生下次中断,需要检测到高电平才会停止中断产生。中断得到响应后由硬件手动清除。
八种逻辑门
Cache和Buffer的区别
-
Cache:缓存区,是高速缓存,是位于CPU和主内存之间的容量较小但速度很快的存储器,因为CPU的速度远远高于主内存的速度,CPU从内存中读取数据需等待很长的时间,而 Cache保存着CPU刚用过的数据或循环使用的部分数据,这时从Cache中读取数据会更快,减少了CPU等待的时间,提高了系统的性能。
Cache并不是缓存文件的,而是缓存块的(块是I/O读写最小的单元);Cache一般会用在I/O请求上,如果多个进程要访问某个文件,可以把此文件读入Cache中,这样下一个进程获取CPU控制权并访问此文件直接从Cache读取,提高系统性能。
-
Buffer:缓冲区,用于存储速度不同步的设备或优先级不同的设备之间传输数据;通过buffer可以减少进程间通信需要等待的时间,当存储速度快的设备与存储速度慢的设备进行通信时,存储慢的数据先把数据存放到buffer,达到一定程度存储快的设备再读取buffer的数据,在此期间存储快的设备CPU可以干其他的事情。
Buffer:一般是用在写入磁盘的,例如:某个进程要求多个字段被读入,当所有要求的字段被读入之前已经读入的字段会先放到buffer中。
3、buffer cache
又称bcache,其中文名称为缓冲器高速缓冲存储器。oracle数据库的本质就是能够用磁盘上的文件来存储数据,并提供了各种各样的手段对这些数据进行管理。作为管理数据的最基本要求就是能够保存和读取磁盘上的文件中的数据。众所周知,读取磁盘的速度相对来说是非常慢的,而内存相对速度则要快的多。因此为了能够加快处理数据的速度,oracle必须将读取过的数据缓存在内存里。而这些缓存在内存里的数据就是数据高速缓存区(db buffer cache),通常就叫做buffercache。按照oracle官方的说法,buffer cache就是一块含有许多数据块的内存区域,而这些数据块主要都是数据文件里的数据块内容的拷贝。通过初始化参数:buffer_cache_size来指定buffercache的大小。oracle实例一旦启动,该区域大小就被分配好了。buffer cache的内容对应磁盘上一个块(block),块通常为1K,都是连续的
Buffer cache简介
1、结构:Buffer Cache是SGA的一部分,Oracle利用Buffer Cache来管理data block,Buffer Cache的最终目的就是尽可能的减少磁盘I/O。Buffer Cache中主要有3大结构用来管理Buffer Cache。
Hash Bucket & Hash Chain List:Hash Bucket与Hash Chain List用来实现data block的快速定位。
LRU List:挂载有指向具体的free buffer, pinnedbuffer以及还没有被移动到write list的dirty buffer等信息。所谓的free buffer就是指没有包含任何数据的buffer,所谓的pinned buffer,就是指当前正在被访问的buffer。
Write(Dirty)List:挂载有指向具体的dirtyblock的信息。所谓的dirty block,就是指在buffer cache中被修改过但是还没有被写入到磁盘的block。
2、功能:
1)通过缓存数据块,从而加快对磁盘上数据的访问,减少I/O。
2)通过构造CR块,从而提供读一致性功能。
3)通过提供各种lock、latch机制,从而提供多个进程并发访问同一个数据块的功能。
3、大小:buffer cache的内容对应磁盘上一个块(block),块通常为1K,都是连续的。在linux下,为了更有效的使用物理内存,操作系统自动使用所有空闲内存作为BufferCache使用。当程序需要更多内存时,操作系统会自动减小Cache的大小。
在linux下,可通过命令cat /proc/meminfo和free-m查看buffer cache的内存使用情况.
Buffer cache的功能详解
在从外存的一页到内存的一页的映射过程中,page cache与buffer cache、swap cache共同实现了高速缓存功能,以下是其简单映射图:
外存的一页(分解为几块,可能不连续)——物理磁盘的磁盘块——内存的buffer Cache——内存的一页(由一个页框划分的几个连续buffer cache构成)——页高缓系统
在这个过程中,物理文件系统与Buffer Cache交互,负责在外围存储设备和Buffer Cache 之间交换数据。
由于bcache位于物理文件系统和块设备驱动程序之间,因此,当物理文件系统需要从块设备上读取数据时,它首先试图从bcache中去读。如果命中,则内核就不必在去访问慢速的块设备。否则如果命中失败,也即数据不在bcache中,则内核从块设备上读取相应的数据块,并将其在bcache中缓存起来,以备下次访问之用。
类似地,但物理文件系统需要向块设备上写数据时,也是先将数据写到相应的缓冲区中,并将这个缓冲区标记为脏( dirty ),然后在将来的某些时候将 buffer cache 中的数据真正地回写到块设备上,或者将该缓冲区直接丢弃。从而实现减少磁盘写操作的频率。
标签:问答题,触发器,触发,数字电路,电平,时序,电路,逻辑电路,逻辑设计 来源: https://blog.csdn.net/weixin_44857476/article/details/115006350