数字集成电路(中)(代码片段)

穆瑾轩 穆瑾轩     2023-02-23     658

关键词:

数字集成电路(中)

1、逻辑门电路

1.1、什么是逻辑门电路

    门电路是一种用电脉冲控制的开关电路,具有一个或几个输入端,而输出端往往只有一个。它规定各个输入信号之间满足某种逻辑关系时,才有信号输出。即当输入端满足一定条件时,门电路就“开门”,允许信号通过,当输入端不满足一定条件时就“关门”,不允许信号通过,其输入量与输出量之间符合一定的逻辑关系,因此门电路也叫逻辑开关电路。

    所以,逻辑门电路就是用来实现基本的逻辑运算和符合逻辑元素的单元电路。我们常听见的与门,或门,非门,与非门,异或门都是门电路。

1.2、门电路的分类

    按照门电路的结构可分为:

    1)TTL逻辑门电路:功耗较大,不适于制造大规模、超大规模集成电路;

    2)CMOS逻辑门电路:功耗非常低,发热量小,易于集成;

    3)ECL射极耦合逻辑门电路:速度快,常用于高速系统,功耗大;

    按门电路的逻辑功能分类:非门、与门、或门、与非门、或非门、异或门、与或非门、OD门、三态门、传输门等。

    TTL逻辑门电路,结构相对复杂一点。而CMOS逻辑门电路,由于其制造结构简单,功耗低的特性,适用于高密度集成电路,目前大部分数字电路是基于它实现的。我们暂且记住NMOS管高压导通,低压截止;而PMOS管高压截止,低压导通,把NMOS和PMOS连接起来就得到了CMOS

1.3、COMS门电路

    在接下来的电路分析中,如果你有一点逻辑代数基础那更好。

1.3.1、非门

    非门,也就是我们前面说的CMOS反相器,其主要作用就是对输入结果取反。非门有一个输入和一个输出。

    电路分析(低电平代表0,高电平代表1):

    1)当A输入低电平,(PMOS负载管)导通,(NMOS输入管)截止,相当于Y直接接到了上,输出高电平();

    2)当A输入高电平,导通,截止,输出低电平()。

1.3.2、与门

    与门有两个输入和一个输出。从真值表中可以看出,只有两个都为真,结果就是真。

    电路分析(低电平代表0,高电平代表1):

    1)当A、B均输入低电平,导通,截止,处输出高电平,而右接个非门取反最终输出低电平;

    2)当A输入低电平,B输入高电平,导通,截止,处输出高电平,而右接个非门取反最终输出低电平;

    3)当A输入高电平,B输入低电平,导通,截止,处输出高电平,而右接个非门取反最终输出低电平;

    4)当A、B均输入高电平,导通,截止,处输出低电平,而右接个非门取反最终输出高电平;

1.3.3、或门

    与门有两个输入和一个输出。从真值表中可以看出,只要有一个为真,结果就是真。

    电路分析(低电平代表0,高电平代表1):

    1)当A、B均输入低电平,导通,截止,处输出高电平,而右接个非门取反最终输出低电平;

   2)当A输入低电平,B输入高电平,导通,截止,处输出低电平,而右接个非门取反最终输出高电平;

    3)当A输入高电平,B输入低电平,导通,截止,处输出低电平,而右接个非门取反最终输出高电平;

    4)当A、B均输入高电平,导通,截止,处输出低电平,而右接个非门取反最终输出高电平;

1.3.4、与非门

    电路分析(低电平代表0,高电平代表1):

    1)当A、B均输入低电平,导通,截止,处输出高电平;

    2)当A输入低电平,B输入高电平,导通,截止,处输出高电平;

    3)当A输入高电平,B输入低电平,导通,截止,处输出高电平;

    4)当A、B均输入高电平,导通,截止,处输出低电平;

1.3.5、或非门

    电路分析(低电平代表0,高电平代表1):

    1)当A、B均输入低电平,导通,截止,处输出高电平;

    2)当A输入低电平,B输入高电平,导通,截止,处输出低电平;

    3)当A输入高电平,B输入低电平,导通,截止,处输出低电平;

    4)当A、B均输入高电平,导通,截止,处输出低电平;

 1.3.6、OD门

  • 什么是OD门

    在电路中常会遇到漏极开路(Open Drain)和集电极开路(Open Collector)两种情形。其中OC门就是三极管中实现集电极开路的门电路,而OD门是为了满足输出电平变换、吸收大负载电流以及实现线与功能,将输出级电路结构改成一个漏极开路输出的MOS管(漏极-栅极-源极),构成的漏极开路(即高阻状态)的门电路

    电路分析(低电平代表0,高电平代表1):OD门由一个与非门+非门+NMOS组成

    1)与非门+非门得到的结果只有A、B均输入高电平时才输出高电平;其余都是低电平;

    2)当P点得到的是低电平的时候,经过一个NMOS管时是截止的那么F输出的始终是低电平;

    3)当P点得到的是高电平的时候,在没有上拉电阻的情况下,NMOS处在一个悬空的状态(高阻,容易受到外界的干扰,状态不稳定),输出电平不确定。OC门也是如此,所以在没有上拉电阻的情况下,OC门和OD门都不具备输出高电平的能力。

    4)加上上拉电阻后,在高阻状态时相当于并联了一个电阻R_D,我们知道并联后的电阻,比其中最小的电阻还要小(),此时电流就会增大,所以F点的点位显然被拉高了,也就能输出高电平了。

  • 线与功能

    使用两个与非门实现线与功能上面这种接法是不合法的,假如第一个与非门输出高电平、第二个与非门输出低电平,这样就在第一个与第二个与非门间就形成了一条低阻的通路(第二个与非门的电源被短路,所以OD门只留了一个NMOS),从而产生很大的电流,很有可能导致器件的损毁。

    使用OD门现实线与功能就解决了上面存在的问题:

注:RL电阻除了拉高电位到高电平,同时也起限流作用。

1.3.7、三态门

    三态输出门电路除了有高、低电平输出外,还存在第三种状态,即高阻态或禁止态。

    电路分析(低电平代表0,高电平代表1):

    1)当控制端输入为低电平时,导通,,输出由A决定高电平或低电平;

    2)当控制端输入为高电平时,截止,Y与上下均断开状态,Y=Z(高阻态,非1非0);

1.3.8、传输门

    传输门是一种由控制信号来控制电路通断的门电路,利用PMOS和NMOS的互补性组成。

 

    电路分析(低电平代表0,高电平代表1):

    1)当、C=1时,导通,

    2)当、C=0时,截止,开关断开;

 1.3.9、异或门

    异或门的形式可以有多种,比如反相器+传输门=异或门; 非门+与或非门=异或门;

2、组合逻辑电路

    数字逻辑电路根据逻辑功能的不同特点可以分为:组合逻辑电路和时序逻辑电路。

2.1、什么是组合逻辑电路

    组合逻辑电路是指在任何时刻,输出状态只决定于同一时刻输入状态的组合,而与电路以前状态无关。常用的组合逻辑电路编码器、译码器、数据选择器、数据分配器、算术运算电路(加法器、减法器、乘法器)等。

    一般设计组合逻辑电路过程:

2.2、编码器

2.2.1、什么是编码器

  • 什么是编码

    我们日常生活中一般都是使用十进制数字,0-9,然后逢十进一。而在计算机中使用的是二进制(大大简化了电路设计)。

    例如:R进制数的多项式表示方法

 

    注:N是数值,R是基数

十进制的12用公式展开:
12 = 1*10^1+2*10^0
十进制的0.358用公式展开:
0.358 = 3*10^-1+5*10^-2+8*^-3
二进制中的1001用公式展开:
9 = 1*2^3+0*2^2+0*2^1+1*2^0

    编码就是将输入的高、低电平信号编成一个对应的二进制代码,然后把二进制码按一定的规律编排编,例如我们在数字逻辑电路中接触到的8421码(用1000表示数字8)、格雷码、ASCII码(用0111000表示数字8)等。  

  • 编码器

    具有编码功能的逻辑电路称为编码器。编码器又分为普通编码器和优先编码器。

2.2.2、普通编码器

  • 普通编码器

    任何时刻只允许输入一个编码信号,若同时输入多个信号,编码输出就会混乱。常见的有二进制和二-十进制编码器。

  • 二进制编码器

    普通二级制编码器根据输入输出,可分为4/2线、8/3线、16/4线编码器。

  8/3线,即8线—3线编码器(3位二进制普通编码器,将8个输入的信号编成8个3位二进制数码输出)。

 输出对应的逻辑表达式:

由此得出逻辑电路图:

注:逻辑表达式还可以写成,而逻辑电路图可以使用与非门实现。

  • 二-十进制编码器

    将十个状态(对应十进制0-9)编制成BCD码(8421码、2421码、余3码,4位二进制)。BCD码在学习数字逻辑电路中接触过,就偷个懒。

2.2.3、优先编码器

  • 优先编码器

    允许同时输入两个以上的有效编码信号。当同时输入几个有效的编码信号时,优先编码器能按预先设定好的优先级别,只对其中优先权最高的一个进行编码。 优先编码器同样也有:4线2线、8线3线、BCD码优先编码器。

    8线3线优先编码器真值表:

输出对应的逻辑表达式:

常用的集成电路优先编码器有74HC147、74HC148两种,下图是74HC148电路图:

 

2.3、译码器

2.3.1、什么是译码器

  • 什么是译码

    译码是编码的逆过程,他能将具有特定含义的二进制码翻译成一定的输出信号(即电路的某种状态),来表示二进制代码的愿意,这一过程就称为为译码。

  • 译码器

    具有译码功能的逻辑电路称为译码器;

    译码器一般分为:唯一地址译码器(二进制译码器、二-十进制译码、显示译码器)和代码变换器(将一种代码转换成另一种代码,比如8421BCD码转余3码);

2.3.2、唯一地址译码器

    常见的唯一地址译码器译码器有二进制译码器、二-十进制译码器、显示译码器。

  • 二进制译码器

    将输入的n位二进制码转成N位()特定对象,且每次输入只能得到唯一的有效输出。比如:3线-8线译码器,输入3位得到唯一对应的8位高低电平信号;

  • 二-十进制译码器

    将输入的BCD码的十个代码译成十个高低电平输出信号。

    比如:输入0000只有输出高电平表示0,输入0001只有输出高电平表示1;

 

  • 显示译码器

    显示译码器主要由译码器和驱动器两部分组成,他可以将二进制代码译成可直接驱动数码显示器显示数字的信号。

    人们习惯十进制数字的使用与运算,所以在数字系统中,常常需要将数字(字母符号等)直观的显示出来。常见的数码显示器有:半导体发光二极管显示器、液晶显示器;

1)半导体发光二极管显示器

    其中七段LED数码管是目前最常用的数字显示器。它由七个发光二极管(加上小数点八个)按一定的方式排列而成的,利用不同光段的组合来显示不同的阿拉伯数字。

    比如:输入0000,让输出高电平而输出低电平就能显示为0;

    发光二极管数码显示器的内部接法有两种:为共阳接法,当某段外接低电平时,该段被点亮;共阴接法,当某段外接高电平时,该段被点亮;

    优点:具有工作电压低、体积小、可靠性高、寿命长、速度快等优点而被广泛的应用;

    缺点:工作电流大,每个字段的工作电流约为10mA左右;

2)液晶显示器

    液晶显示器就是液态晶体显示器,它是既具有液体的流动性,又具有某些光学特性的有机化合物,它的透明度和颜色受其外加电场的控制。没有外加电场时,液晶分子排列整齐,入射的光线绝大部分被反射回来,液晶呈现透明状态,不显示数字;当在相应字段的电极加上电压时,液晶中的导电正离子作定向运动,从而破坏了液晶分子的整齐排列,使入射光产生了散射而变得混浊,使原来透明的液晶变成了暗灰色,从而显示出相应的数字;当外加电压断开时.液晶分子又恢复到整齐排列的状态。

    优点:功耗极小,工作电压低; ​ 缺点:显示清晰度相对低,响应速度慢;

2.4、数据选择器

2.4.1、什么是数据选择器

    能实现数据选择功能的逻辑电路,它的作用相当于多个输入的单刀多掷开关,所以也叫"多路开关"。

例如:

    在控制信号A的作用下,当A为低电平的时候输出,当A为高电平的时候输出

    数据选择器的功能:在通道选择信号的作用下,将多个通道的数据分时传送到公共的数据通道上去。

2.5、加法器

2.5.1、二进制的运算

    前面我们提到过进制的概念,我们日常生活中的计数法是十进制的,也就是逢十进一,在计算机中的运算是二进制的,也就是逢二进一。

    例如:我们用二级制来计算25-(11001)和5-(101)的加减乘除

  • 加减运算

  • 乘除运算

    二进制的运算也是符合运算法则的。  

2.5.2、什么是加法器

    加法器是实现二进制加法运算的电路

    在计算机的算术运算中,加减乘除的运算都可以归结为对加法器的应用。因此,加法器是实现运算的基础,是构成算术逻辑单元的重要组成部分。

    加法器又分为:半加器和全加器

2.5.3、半加器

    所谓半加器,就是不考虑低位进位,将两个一位的二进制数相加;

    由半加法器真正表,我们可以看出:

    本位S:A与B相同输出0,A与B不同输出1,很显然是一个异或逻辑;进一步展开还可以使用与非门实现;

    进位C:只有A与B都为1时输出1,是一个与逻辑。

    半加法器没有进位的输入,也就是说它只能计算当前1位的输入与输出的结果,不能承前只能启后。比如:我们在进行二进制运算的时候,只计算当前位置的本位和进位而不接收低位的进位的话就无法完成多位计算。  

2.5.4、全加器

    所谓全加器,考虑低位进位的相加,将加数、被加数和低位的进位信号相加;

    由全加器的真值表我们可以看出:

    本位S:由加数B和被加数A异或后再与低位的进位Ci再异或可得(本位,奇数个1时S为1,偶数个1时S为0);

    进位Co:当ABC三者中至少有两个1的时候进位就为1,因此将它们相与后再用或逻辑就能得到是否满足至少有一对1;

    通过上面的电路图,我们实现了一位全加法器,当然全加法器的电路实现方式还有多种,比如:非门+与门+异或门也可以实现。

2.5.5、多位加法器

1)串行进位加法器

    1位二进制数相加用1个全加器,那么两个多位二进制数相加,可以用多个全加器,只要将低位的进位输出C_O接高位的C_i。

    比如: 两个四位二进制数相加 ,用4个全加器相连

    这种由低位进位输出接到高位的输入的加法器,叫串行进位加法器(或行波进位加法器),它的每一级运算都必须等到低位进位产生以后才能继续往下运算,所以串行进位加法器运算延迟较高。

2)超前进位加法器

    为了提高运算速度,使进位信号不再逐级传递,而是一开始就算出各级的进位信号,这种加法器就是超前进位加法器(或快速加法器)。

根据全加器的真值表可以得出进位信号的规律:

假设,(C_i)_0=0那么:

最终的与输入的是有关的函数,所以在电路一开始就能得到后面所有的进位,所以在输入前我们就可以先得到进位再一并算出本位。

 

例如:在知道的情况下,我们在得出本位前,即可计算出及后所有的进位。这种电路计算周期明显缩短,效率得到提升,但是电路非常复杂。  

2.6、减法器

2.6.1、带符号的二进制数表示

    数据的表示形式,主要有两种方法:真值法和机器数(机器码)。

   真值:带符号的的数,正数的符号用+表示,负数的符号用-表示。

   机器数:将符号数值化,也称机器码,符号位用“0”表示正数,用“1”表示负数,根据数值部分的表示方法不同,常用的机器码分为原码、反码和补码三种形式。

2.6.2、原码

    也正是由于计算机内部的数据表示方式只有0和1,所以计算机并不认识+、-(正、负)号,所以必须拿出一位来表示数的正负,这就是原码的来源。

    一般来说,正整数前面加0,负整数前面加1,就可以表示一个二进制的原码,下面直接给出原码的公式(由于无法显示公式中的中文,所以都截图):

1)二进制整数原码

 注:n表示进制的位数

例如:

2)二进制小数原码

例如:

 透过公式,我们发现它的条件0是重复的,也就是说在原码中的零会有“+0” 和 “-0” 之分。

 

    正常4位二进制能表示0000-1111共16个数,而原码中正数(0-7)、负数(-7-0)因为“+0” 和 “-0”重合的原因,只有15个数。使用原码虽然区分了正负数,但是同样随之而来的产生了一个新的问题,那就是给运算带来的麻烦。

正数相加:

正负数相加:

减法运算:

    上诉正负相加、减,如果符号位参与计算的话,结果是错误的。

    也就是说原码在涉及负数运算的时候,不能直接运算。需要先确定符号位,在确定使用加减法,所以原码在做加减法时较为麻烦。那么有没有一种方法能让我们无需在意这个符号位呢?答案是有的,那就是反码。

2.6.3、反码

    自从加上了符号位,给我们的计算带来了一系列的问题,让我们的运算及电路设计变得十分复杂,于是干脆让符号位也参与运算。反码的设计思想就是冲着解决这个问题而出现了。

    定义:用反码表示带符号位二进制数时,符号位与原码相同,即用0表示正数,用1表示负数。正数反码的数值位于原码的数值位相同,负数反码的数值位是真值(或原码)的数值位每位取反。

1)二进制整数反码

2)二进制小数反码

例如:

 3)反码实现加减法

前面使用原码的相反数和正负数计算的结果都没有得到我们想要的结果,现在使用反码来看下:

正负数相加:

 减法运算:

    使用反码相加,无需在意符号位,解决了相反数(也就是减法)运算的问题。剩下的问题就是正0和负0的问题了。  

原码反码真值原码反码真值
00000000+010001111-0
00010001+110011110-1
00100010+210101101-2
00110011+310111100-3

2.6.4、补码

    使用反码虽然解决了符号问题。但是并没有解决“+0”和“-0”的问题。两数相减,总会有0的时候,什么时候是“+0”,什么时候是“-0”?虽然,带符号的0没有任何意义,但是有两个编码[0000 0000]和[1000 0000]对应0,这样还是有缺陷。于是出现了补码。

    定义:补码就是为了便于CPU减法运算的(其根本原因是,计算机在芯片设计的时候只做了加法器,并没有做减法器:一是成本、二是减法器实现对硬件的开销大)。

    在了解补码前我们先了解一个概念。便于我们了解补码的实现思路。那就是模。

    是指一个计量系统的计数范围。记作mod或M。如时钟的计量范围0-11,模=12。n位的计算机计量范围是0 到,模=

    任何有模的系统,均可以化减法为加法。比如:当前时间为上午10点,如何获得早上8点,可以逆时针校准两小时10-2 = 8,也可以再转一圈顺时针校准10小时之后也是8点。也就是说以12为模时,-2的补码就是10。

1)二进制整数补码

 2)二进制小数补码

    也就是说正数原码的补码就是原码,负数的原码的补码是反码末位+1。所以,0的补码就只有一个,就没有所谓的“+0”和“-0”之分了。  

原码反码补码真值原码反码补码真值
000000000000+0100011110000-0
000100010001+1100111101111-1
001000100010+2101011011110-2
001100110011+3101111001101-3

    补码解决了0的符号以及两个编码的问题,在计算机中一个字节8位,其范围为【-128,127】。用【0000 0000】表示0,用【1000 0000】表示-128,【1111 1111】表示127。

    -128实际上是使用以前的-0的补码来表示,所以-128并没有原码和反码(-128的补码表示[1000 0000]_补,算出来的原码是[0000 0000]_原,这是不正确的)使用补码,不仅仅修复了0的符号以及两个编码的问题,而且还能够多表示一个最低数。

    总结:正数的三种机器码的形式完全一样,而负数的三种机器码有三种不同的形式。

2.6.5、减法器实现

    前面我们了解到补码可以将正数和负数的符号位也一起参与计算。根据前面的公式,我们可以得出:

 

    根据转换的公式,对于负数B,先取反,再由加1得到B的补码再与A相加;我们知道一个n位的二进制的最高位为,而,相当于是对高位的进位取反,即得到了原码。当A-B>0时,高位的进位无需借位。

   我们以5-1=0101-0001为例:

   最终得到结果00100,结果正确;

   对于A-B<0时,我们以1-5=0001-0101(预期结果:10100)如果我们依然套用上诉公式:

 

    对于A-B<0时,通过加法器算出来的结果的数值位,是预期的补码。对上诉结果的数值位取反再加1,即可得到正确的值。  

2.7、乘法器

    前面我们也说到,二进制中的乘法也是符合运算法则的。被乘数和乘数的积符合与门的逻辑,相与后再错位接上加法器相加就实现了我们的乘法。  

3、时序逻辑电路

3.1、什么是时序逻辑电路

    组合逻辑电路的特点是,逻辑功能块的输出只与当前输入值有关,然而这并不能为我们解决所有的实际问题,事实上所有真正有用的系统都需要能保存状态信息,这就产生了另一类电路,称为时序逻辑电路。

    时序逻辑电路主要由存储电路和组合逻辑电路两部分组成(并不是每一个时序电路都是如此,有些没有组合电路部分)。它在任何一个时刻的输出状态由当前输入信号和电路原来的状态共同决定,而它的状态主要是由存储电路来记忆和表示的,它最重要的特点就是有记忆功能常见的时序逻辑电路有锁存器、触发器、寄存器,计数器等

  • 组合逻辑电路与时序逻辑电路的区别

组合逻辑电路时序逻辑电路
不包含存储元件包含存储元件
输出状态仅与当时输入状态有关输出状态与当时的输入及电路原来的状态有关
电路的特性用输出逻辑函数描述电路的特性用输出及次态逻辑函数描述

3.2、时序逻辑电路的分类

    时序逻辑电路按触发方式的不同,可以分为同步和异步两大类。

    在同步时序电路中,各触发器受同一时钟信号控制,其状态更新是发生在同一时刻,即各触发器是同步的;

    在异步时序电路中,触发器的时钟信号不完全相同,有的触发器直接受时钟控制,有的有另外的时钟脉冲,各触发器的状态更新有先后。

3.3、锁存器

    时序逻辑电路的输出状态既然与电路原来的状态有关,那么时序电路的组成中必须有存储电路,存储电路的输出状态与输入信号共同决定了时序电路的输出状态。

3.3.1、什么锁存器

    锁存器是一种对脉冲电平敏感、能够记忆一位二值信号的基本逻辑单元电路。常见的锁存器有:SR锁存器、门控SR锁存器、D锁存器。

3.3.2、SR锁存器

  • 什么是SR锁存器

    SR锁存器是静态存储单元中最基本、也是电路结构最简单的一种,通常由两个或非门或者与非门组成。

    将两个与非门的输入,输出端交叉相连,就组成一个基本SR锁存器。SR英文为set-reset,即实现置位-复位功能。

    SR锁存器中,S为Set端,也就是置位端,Q为(“与非门”)S端的输出端(状态端)。R为Reset端,也就是复位端,为R端的输出端(状态端)。

    正常情况下,两输出端的状态保持相反,通常以Q端的逻辑电平表示锁存器的状态,即Q=1,时,称为“1”态,反之称为“0”态。

  • 基本SR锁存器的状态分析

1)当输入端

    设锁存器的原态为“1”态,输出端Q=0,,即输出端翻转为“0”态;

    设锁存器的原态为“0”态,输出端Q=0,,即锁存器保持“0”态;

2)当输入端=1时

    设锁存器的原态为“0”态,输出端Q=1,,即输出端翻转为“1”态;

    设锁存器的原态为“1”态,输出端Q=1,,即锁存器保持“1”态;

3)当输入端

设锁存器的原态为“0”态,输出端Q=0,,即锁存器保持“0”态;

设锁存器的原态为“1”态,输出端Q=1,,即锁存器保持“1”态;

4)当输入端

设锁存器的原态为“0”态,则Q=1,,不符合相反条件;且翻转的顺序不同,输出结果不同。

逻辑功能
010置0
101置1
11Q^n保持
00不定不允许

注:是次态(即下一个状态),现态。

3.3.3、门控SR锁存器

    加了一个与门来控制信号的输入。

3.3.4、门控D锁存器

    在门控锁存器上再加了一个非门,使原来的RS两个置位信号缩减为一个置位信号D,同时也解决了门控SR锁存器不R、S能同时为1的问题。

    门控D锁存器其实还存在一个问题,那就是当使能信号C输入高电平的时候:Q的输出随D的输入变化而变化。

使能信号C输入高电平情况下:

    1)当输入高电平时(D=1),,此时Q=1;

    2)当输入高电平时(D=0),,此时Q=0;

 

    当使能信号为高电平时,Q的输出随D的变化而变化,如果D产生了错误信号(毛刺),则使得Q的结果也会不准确。

    关于毛刺——信号由于经由不同路径传输达到某一汇合点的时间有先有后的现象,就称之为竞争,英文名Race;由于竞争现象所引起的电路输出发生瞬间错误的现象,就称之为冒险,英文名Hazard或者Risk。有竞争不一定有冒险,但出现了冒险就一定存在竞争。发生冒险时往往会出现一些不正确的尖峰信号,这些尖峰信号就是“毛刺”。

3.4、触发器

3.4.1、什么是触发器

    触发器和锁存器很像,但是锁存器和触发器之间的区别在于锁存器是电平触发的(只要输入改变,输出就会改变),而触发器是边沿触发的(只有当控制信号从高电平变为低(或从低到高)电平时才会改变状态)。

    所以触发器(flipflop)是边沿敏感的存储单元,数据存储的动作由某一信号的上升或者下降沿行同步的。常见的有:RS触发器、D触发器、JK触发器、T触发器和主从触发器等;目前生产的触发器定型产品中有JK触发器和D触发器这两大类。D型触发器通常在上升沿改变状态而JK触发器在下降沿改变状态。最常用的触发器是D型触发器。

3.4.2、D型触发器

分析:

1)当D=0,CP=0时

,触发器状态不变;

2)当D=0,CP=1时

,Q=0,触发器置0;

3)当D=1,CP=0时

,触发器状态不变;

4)当D=1,CP=1时

,Q=1,触发器置1;

    Q总在CP上上升时触发状态翻转,Q的状态与D的状态是一致的,只是Q的状态总比D的状态要晚一步,即,上升沿后输入D不再起作用,触发器保持原先的状态。  

3.5、寄存器

3.5.1、什么是寄存器

    寄存器是能寄存二进制数码的时序逻辑电路。它由触发器构成,1个触发器可寄存1位二进制数码,如果要寄存n位二进制数码,则需要n个触发器。

    触发器主要分为:数码寄存器和位移寄存器。

3.5.2、数码寄存器

    数码寄存器可由RS触发器构成,也可以由D触发器、JK触发器构成。

 

    当时触发器被置为0,寄存器工作是,数据从输入,在CP脉冲的作用下,输入到四个触发器中,在CP=0时寄存器中存放的数据不变,输出端数字集成电路(中)(代码片段)

数字集成电路(中)1、逻辑门电路1.1、什么是逻辑门电路  门电路是一种用电脉冲控制的开关电路,具有一个或几个输入端,而输出端往往只有一个。它规定各个输入信号之间满足某种逻辑关系时,才有信号输出。即... 查看详情

javascript数字钱包:dmpadob​​e目标集成代码(代码片段)

查看详情

数字音频接口(代码片段)

 数字音频接口DAI,即DigitalAudioInterfaces,顾名思义,DAI表示在板级或板间传输数字音频信号的方式。相比于模拟接口,数字音频接口抗干扰能力更强,硬件设计简单,DAI在音频电路设计中得到越来越广泛的应用。图1和图2对比... 查看详情

数字电路基础知识——vivado使用chipscope在线逻辑分析仪debug(代码片段)

数字电路基础知识七)——Vivado使用Chipscope在线逻辑分析仪Debug在https://blog.csdn.net/vivid117/article/details/96508986和https://blog.csdn.net/vivid117/article/details/96753878这两篇文章中提到了使用两种在线逻辑分析进行在线debug的方法。由于RTL仿真... 查看详情

数字ic设计——跨时钟域篇1(时钟域)(代码片段)

数字IC设计——跨时钟域篇1一、时钟域概要1.CDC介绍CDC(clockdomaincrossing)检查(跨时钟域的检查)是对电路设计中同步电路设计的检查。非同步时钟没有固定的相位关系,这样Setup/Hold不满足而产生了亚稳态是... 查看详情

数字ic设计——跨时钟域篇1(时钟域)(代码片段)

数字IC设计——跨时钟域篇1一、时钟域概要1.CDC介绍CDC(clockdomaincrossing)检查(跨时钟域的检查)是对电路设计中同步电路设计的检查。非同步时钟没有固定的相位关系,这样Setup/Hold不满足而产生了亚稳态是... 查看详情

数字电路基础(代码片段)

题目:数制转换R进制数转换为十进制数:按权展开,相加十进制数转化为R进制数:整数部分,除R取余法,除到商为0为止。小数部分,乘R取整法,乘到积为0为止。二进制数转化八进制数:三位一组,整数部分左边补0,小数部... 查看详情

verilog之原语设计(代码片段)

...g之原语设计1、原语作用在一般的verilog设计中,一般采用数字逻辑设计,由软件将数字逻辑转化为特定的数字电路。但是,对于某些特殊的领域,有可能需要用户直接自定义数字电路以达到对指定电路的设计。原语就是执行这个... 查看详情

边沿检测电路(代码片段)

...#xff09;,就是检测输入信号的上升沿和下降沿。在设计数字系统时,边沿检测是一种很重要的思想,实际编程时用的最多的时序电路应该就是边沿检测电路和分频电路了。    那么,边沿检测电路该如何实现呢... 查看详情

数字电路3-8译码器(代码片段)

本程序实现3-8译码器的功能并级联成4-16译码器每个3-8译码器有三个使能端modulesanba(input[2:0]A,inputG1,input_G2A,input_G2B,outputreg[7:0]_Y);always@(*)beginif(G1,_G2A,_G2B==3'b100)//G1、_G2A、_G2B输入100时译码器才工作begincase( 查看详情

集成电路版图设计(代码片段)

...局的要求流片过程OPC技术(光学邻近矫正)数字集成电路设计流程模拟集成电路设计流程二、MOS管的流片流程MOS管尺寸指数1P4M芯片构成流片工艺立体图流片的简单过程三、流片的实际设计过程1、N阱光刻2、氧化层刻蚀3、... 查看详情

集成电路版图设计(代码片段)

...局的要求流片过程OPC技术(光学邻近矫正)数字集成电路设计流程模拟集成电路设计流程二、MOS管的流片流程MOS管尺寸指数1P4M芯片构成流片工艺立体图流片的简单过程三、流片的实际设计过程1、N阱光刻2、氧化层刻蚀3、... 查看详情

verilog学习笔记(05)(代码片段)

...程硬件描述语言VerilogVerilogHDL数字设计与综合VerilogHDL数字集成电路高级程序设计6.组合逻辑电路当一个数字电路中的输出信号完全是由输入信号所决定时,这样的电路称之为组合电路组合电路基本设计方式1.数据比较器1位数... 查看详情

电子电路学习笔记(15)——晶振(代码片段)

一、简介晶振是数字电路的心脏,就是因为所有的数字电路都需要一个频率高度稳定的工作时钟信号,为电路的工作提供时序基准,使各个模块的工作能够有条不紊的进行下去。而LC振荡器稳定性较差,频率容易... 查看详情

verilog学习笔记(01)(代码片段)

...程硬件描述语言VerilogVerilogHDL数字设计与综合VerilogHDL数字集成电路高级程序设计1.1什么是VerilogHDL?Verilog是一种硬件描述语言,可通过对数字电路和系统的语言描述,对 查看详情

verilog之简单时钟信号的编写(代码片段)

verilog之简单时钟信号的编写1、数字时钟信号在数字电路中,时钟信号是重要的一类信号,一般作为激励源驱动时序电路。掌握时钟信号的编写,对于时序电路的仿真具有重要意义。所有的时序电路都需要设置时钟信号来确认时... 查看详情

cpu设计和实现(取指)(代码片段)

...联系信箱:feixiaoxing@163.com】    cpu设计的本质是数字电路的设计。要是没有verilog、vhdl这些语言,那么剩下来使用的方法基本只有卡诺图这一种了。在数字电路中,有两种基本的电路,一种是逻辑电路,... 查看详情

k:剑指offer-56题解谁说数字电路的知识不能用到算法中?从次数统计到逻辑表达式的推导,一文包你全懂(代码片段)

...让所有人都能够能够看懂该方法。为此,本题解将从统计数字出现次数的解题方式开始讲起,再推导出逐位统计的解题方式,期望以循序渐进的方式得出最终代码的思想。相关知识关键字:二进制、位运算、真值表、逻辑表达式... 查看详情