数字电路与系统 课件 第8章 时序功能电路_第1页
数字电路与系统 课件 第8章 时序功能电路_第2页
数字电路与系统 课件 第8章 时序功能电路_第3页
数字电路与系统 课件 第8章 时序功能电路_第4页
数字电路与系统 课件 第8章 时序功能电路_第5页
已阅读5页,还剩51页未读 继续免费阅读

下载本文档

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

文档简介

第8章时序功能电路8学时2025/7/231学习目标与内容学习目标理解时序电路结构,并进一步掌握时序逻辑电路的分析设计掌握寄存器的电路结构、功能(扩展功能)及其应用理解计数的原理、掌握计数电路的功能及其应用理解流水线的概念学习内容寄存器类型及其结构并入并出/并入串出/串入并出/串入串出串行序列产生器串行传输的CRC校验码产生电路串行序列检测器多端口寄存器组FIFO计数原理,计数器类型及其应用处理器中的程序计数器流水线电路结构2025/7/2328.1.1并行寄存器寄存器是数字系统中用于存储二进制数的时序电路模块,由多个触发器构成并行输入并行输出、串入并出、并入串出、串入串出串行:依次左移/右移2025/7/23374ALS574内部逻辑电路图与引脚排列D7(9)Q7(12)1DQC1CLK(11)OE_L(1)11END6(8)Q6

(13)1DQC1END5(7)Q5(14)1DQC1END4(6)Q4(15)1DQC1END3(5)Q3(16)1DQC1END2(4)Q2(17)1DQC1END1(3)Q1(18)1DQC1END0(2)Q0(19)1DQC1END0Q0Q2191D111ENC1OE_LCLKD1Q1318D2Q2417D3Q3516D4Q4615D5Q5714D6Q6813D7Q791274ALS574功能表输入输出OE_LCLKDiQiL↑HHL↑LLL除↑外×Qi原值H××Hiz8.1.2移位寄存器移位方向:左移/右移单向移位/双向移位功能:串/并转换、并/串转换、数值运算(乘2,除2)2025/7/234RD_L(9)1DQC1Q1(4)RD1DQC1Q2(5)RD1DQC1Q3(6)RD1DQC1Q4(10)RD1DQC1Q5(11)RD1DQC1Q6(12)RD1DQC1Q7(13)RD1DQC1Q0(3)RDA(1)B(2)CLK(8)74LS164内部逻辑电路图&1174LS164功能表输入输出功能描述RD_LCLKABQ0n+1Q1n+1Q2n+1Q3n+1Q4n+1Q5n+1Q6n+1Q7n+1

L×××LLLLLLLL复位H除↑外××Q0nQ1nQ2nQ3nQ4nQ5nQ6nQ7n保持H↑HHHQ0nQ1nQ2nQ3nQ4nQ5nQ6n右移H↑L×LQ0nQ1nQ2nQ3nQ4nQ5nQ6n右移H↑×LLQ0nQ1nQ2nQ3nQ4nQ5nQ6n右移D0=A⸱B,

CLK↑Di=Qi-1n,i=1,2,…,7,

CLK↑moduleshiftreg8(CLK,Reset,data_in,q);inputCLK,Reset,data_in;outputreg[7:0]q;always@(posedgeCLK,posedgeReset)beginif(Reset==1)q<=0;elsebeginq[7]<=data_in;q[6:0]<=q[7:1];endendendmodule双向移位寄存器寄存器选择端信号不同,而实现不同移位根据电路图推导S1S0取不同值时,各激励的简化电路?Q0n+1=S1’⸱S0’⸱Q0n+S1’⸱S0⸱DR+S1⸱S0’⸱Q1n+S1⸱S0⸱D0,CLK↑2025/7/235S0(9)S1(10)D0(3)Q0

(15)RC11DQD1(4)Q1(14)RC11DQD2(5)Q2(13)RC11DQD3(6)Q3(12)RC11DQCLK(11)CLR_L(1)DR(2)DL(7)74LS194内部逻辑电路图111111≥1&&&&&&&&&&&&&&&&≥1≥1≥1Q1n+1=S1’⸱S0’⸱Q1n+S1’⸱S0⸱Q0n+S1⸱S0’⸱Q2n+S1⸱S0⸱D1,

CLK↑Q2n+1=S1’⸱S0’⸱Q2n+S1’⸱S0⸱Q1n+S1⸱S0’⸱Q3n+S1⸱S0⸱D2,

CLK↑Q3n+1=S1’⸱S0’⸱Q3n+S1’⸱S0⸱Q2n+S1⸱S0’⸱DL+S1⸱S0⸱D3,

CLK↑双向移位寄存器具备左移和右移功能S1=0,S0=0时,保持S1=0,S0=1时,右移S1=1,S0=0时,左移S1=1,S0=1时,并入并出2025/7/236S0(9)S1(10)D0(3)Q0

(15)RC11DQD1(4)Q1(14)RC11DQD2(5)Q2(13)RC11DQD3(6)Q3(12)RC11DQCLK(11)CLR_L(1)DR(2)DL(7)74LS194内部逻辑电路图111111≥1&&&&&&&&&&&&&&&&≥1≥1≥1Q0n+1=S1’⸱S0’⸱Q0n+S1’⸱S0⸱DR+S1⸱S0’⸱Q1n+S1⸱S0⸱D0,

CLK↑Q1n+1=S1’⸱S0’⸱Q1n+S1’⸱S0⸱Q0n+S1⸱S0’⸱Q2n+S1⸱S0⸱D1,

CLK↑Q2n+1=S1’⸱S0’⸱Q2n+S1’⸱S0⸱Q1n+S1⸱S0’⸱Q3n+S1⸱S0⸱D2,

CLK↑Q3n+1=S1’⸱S0’⸱Q3n+S1’⸱S0⸱Q2n+S1⸱S0’⸱DL+S1⸱S0⸱D3,

CLK↑双向移位寄存器具备左移和右移功能S1=0,S0=0时,保持S1=0,S0=1时,右移S1=1,S0=0时,左移S1=1,S0=1时,并入并出2025/7/23774LS194功能表输入输出CLR_L模式CLK串行并行

Q0n+1

Q1n+1

Q2n+1

Q3n+1S1S0DLDRD0D1D2D3L×××××××××LLLLH××除↑外××××××Q0nQ1nQ2nQ3nHLL↑××××××Q0nQ1nQ2nQ3nHLH↑×L××××LQ0nQ1nQ2nHLH↑×H××××HQ0nQ1nQ2nHHL↑L×××××Q1nQ2nQ3nLHHL↑H×××××Q1nQ2nQ3nHHHH↑××d0d1d2d3d0d1d2d3moduleshift8_r_l(clr,clk,load,s,d,dr,dl,q);inputclr,clk,load,s,dr,dl;input[7:0]d;outputreg[7:0]q;always@(posedgeclk)beginif(~clr)q='b0;elseif(load)q=d;elseif(s)

beginq=q>>1;q[7]=dr;end//右移

else

beginq=q<<1;q[0]=dl;end//左移endendmodule并入或串入/串出寄存器Shift/Load_L为低时,8位输入端A~H并行数据输入Shift/Load_L为高时,串行输入端SI串行输入内部各触发器同步右移,逐位依次从输出端QH输出2025/7/23874LS166功能表输入内部输出RD_LShift/Load_LCLKIHCLKSIABCDEFGHQAn+1QBn+1QCn+1…QGn+1QHn+1L××××××××××××LLL…LLH×L无效×××××××××QAnQBnQCn…QGnQHnHLL↑×abcdefghabc…ghHHL↑H××××××××HQAn

QBn…QfnQGnHHL↑L××××××××LQAnQBn

…QfnQGnH×H↑×××××××××QAnQBn

QCn…QGnQHn74LS166内部逻辑电路图RD_L(9)Shift/Load_L(15)1DQC1QCRDCLKIH(6)CLK(7)SI(1)A(2)B(3)C(4)D(5)E(10)F(11)G(12)H(14)1≥1&&≥11DQC1QBRD1DQC1QARD1DQC1QDRD1DQC1QERD1DQC1QFRD1DQC1QGRDQH(13)1DQC1RD&&≥1&&≥1&&≥1&&≥1&&≥1&&≥1&&≥111移位寄存器应用并入/串出:控制移位的方向(左移或右移),实现高位先行或低位先行串入/并出:接收端将接收到的串行数据转换为并行数据串入/串出:实现串行数据的延时并入/并出:并行存储。队列访问的先进先出、先进后出的堆栈移位寄存器应用并/串、串/并转换、左移乘以2、右移除以2串行序列产生器/检测器、串行加法器、移位型计数器2025/7/239序列产生器的方法设计一个110100序列信号产生器利用触发器利用移位寄存器利用计数器2025/7/23101、画状态转换图2、状态编码6个状态,需3位编码,000~101表示S0~S5S0,1S1,1S5,0S2,0S4,0S3,13、列状态转换输出表4、得激励方程和输出方程Q2n+1=Q2nQ0n’+Q1nQ0nQ1n+1=Q2n’Q1n’Q0n+Q1nQ0n’Q0n+1=Q0n’Y=Q2n’Q1n’+Q1nQ0n5、自启动检查111100,110111,能自启动,画电路图Q2nQ1nQ0nQ2n+1Q1n+1Q0n+1Y000001100101010100110011100110010101010000Q2nQ1nQ0n0001111000011010110010110110100000xxQ2n+1Q1n+1Q0n+1Y例:移位寄存器产生串行序列图示电路产生的序列是什么?D0=Q1n’⸱Q2n’,D1=Q0n,D2=Q1n,Z=Q2nQ0n+1=Q1n’⸱Q2n’,Q1n+1=Q0n,Q2n+1=Q1n产生的序列为000112025/7/2311000,0100,0110,0111,1011,1010,0001,1101,1Q0Q1Q2,Z移位寄存器构成的序列产生器电路状态转移图ZCLK1D2C1Q21D1C1Q11D0C1Q0&Q0nQ1nQ2nQ0n+1Q1n+1Q2n+1Z00010001001100110011001100110010001010001010101011110111观察!Q0给Q1,同时Q1给Q2,右移?!而Q0由各触发器的输出经组合逻辑产生74LS194功能表2025/7/231274LS194功能表输入输出CLR_L模式CLK串行并行

Q0n+1

Q1n+1

Q2n+1

Q3n+1S1S0DLDRD0D1D2D3L×××××××××LLLLH××除↑外××××××Q0nQ1nQ2nQ3nHLL↑××××××Q0nQ1nQ2nQ3nHLH↑×L××××LQ0nQ1nQ2nHLH↑×H××××HQ0nQ1nQ2nHHL↑L×××××Q1nQ2nQ3nLHHL↑H×××××Q1nQ2nQ3nHHHH↑××d0d1d2d3d0d1d2d3例:用移位寄存器74LS194构建序列00011101产生电路序列共8位,即要求至少8个状态,按书写顺序先产生左边,依次往右序列倒置10111000,则右移右出相应的状态Q0Q1Q2为000,100,110,111,011,101,010,001(即每错1位)没有相同的组合列状态转移表。Q1n+1源于Q0n,Q2n+1源于Q1n写表达式Q0n+1=Q0n’⸱Q1n’⸱Q2n’+Q0n⸱Q1n’⸱Q2n’+Q0n⸱Q1n⸱Q2n’+Q0n’⸱Q1n⸱Q2n=

Q1n’⸱Q2n’+Q1n⸱Q2n’

⸱Q0n

+Q1n⸱Q2n

⸱Q0n’Q1n+1=Q0nQ2n+1=Q1n2025/7/2313000,0100,0110,0111,1011,1010,0101,1001,1Q0Q1Q2,Z10111000Q0nQ1nQ2nQ0n+1Q1n+1Q2n+1000100100110110111111011011101101010010001001000例:用移位寄存器194构建序列00011101产生电路由Q1n+1源于Q0n,Q2n+1源于Q1n知,右移S1S0为01。DR输入Q0n+1=DR=Q1n’⸱Q2n’⸱1+Q1n⸱Q2n’⸱Q0n

+Q1n⸱Q2n

⸱Q0n’令S1接Q1,S0接Q2。则D0为1,

D1为0,D2为Q0,D3为Q0’Q1n+1=Q0nQ2n+1=Q1n画电路图直接左边先出,可否?又该如何设计?2025/7/23149111C1S0CLK110R0CLR_LS1SRG430MDRQ0Q2151DD031DD3Q3Q6121DDL71DD1Q14141DD2Q25131D1420103GS0S11D01D1MUX1Y16EN071D254121EN_L332Y1510EN09111212133UDD1Z74LS19474LS153用移位寄存器构成序列信号产生器例:产生一个8位的序列信号000101112025/7/2315Q0Q1Q2011001000100010101110111Q0n

Q1nQ2n000111100100110101D0D0

=Q0n’∙Q2n’

+Q1n∙Q2n’+Q0n∙Q1n’∙Q2nCLKCLRS1S0LIND3

Q3D2Q2D1Q1D0Q0RIN74x194+5VCLOCKQ2Q1Q0组合逻辑思考2:若要产生序列10011101,几个触发器移位?Q0Q1Q2Q3S1S0=01,右移思考1:S1S0=10,左移外部链接Q0Q1Q2Q3右移任意2行都不同!D000101110D000101110最长(2m-1)线性序列产生器序列产生器通用结构?移位寄存器加异或反馈电路构成F=(C0×Q0n)⊕(C1×Q1n)⊕…⊕(Ci×Qin)⊕…(Cm-1×Qm-1n)2025/7/2316最长线性序列产生器一般结构1DC1QQ0C01DC1QQ1C11DC1QQiCi1DC1QQm-1Cm-1异或逻辑FCLK……最长线性序列反馈函数m需反馈的触发器序号m需反馈的触发器序号m需反馈的触发器序号20,11812,15,16,173426,27,28,31,32,3331,21913,16,17,183532,3442,32016,193629,30,31,33,34,3552,42118,203731,32,33,34,35,3664,52220,213831,32,36,3775,62317,223934,3883,4,5,72419,20,22,234034,35,36,3994,82521,244137,40106,92619,23,24,254236,37,38,39,40,41118,102721,24,25,264336,38,39,42125,7,10,112824,274437,38,41,43138,9,11,122926,284540,41,43,44148,10,12,133023,25,28,294635,40,42,43,44,451513,143127,304741,461610,12,13,153224,26,28,29,30,314840,42,43,45,46,471713,163326,28,31,324942,43,44,48如4位移位寄存器结构的C2=1,C3=1,而其他系数都为0,则F=Q2n⊕Q3n最长(2m-1)线性序列产生器4位移位寄存器结构的C2=1,C3=1,而其他系数都为0,则F=Q2n⊕Q3n若初始状态Q0nQ1nQ2nQ3n为1011,反馈信号F(即D0)=Q2n⊕Q3n=1⊕1=01011

0101

1010

1101

1110

1111

0111

0011

0001

1000

0100

0010

1001

1100

0110

1011Q3端输出序列为1101011110001002025/7/23171DC1QQ01DC1QQ11DC1QQ21DC1QQ3CLK=1该结构能产生长度为2m-1的任意序列吗?不能2m序列产生器若全0也加入到最长序列产生器中,那么全0的前一状态必定为000…01,后一状态必定为100…00,其中原因是什么?因为:原2m-1序列:000…001

1000…00。向右移位:000…001,0000…00,10000…0,2m序列产生器的反馈函数为:F=(C0×Q0n)⊕(C1×Q1n)⊕…⊕(Ci×Qin)⊕…(Cm-1×Qm-1n)⊕(Q0n’⸱Q1n’⸱…⸱Qin’⸱…⸱Qm-2n’)当且仅当Q0n’,Q1n’,…,Qin’,…,Qm-2n’全为0时,有Q0n’⸱Q1n’⸱…⸱Qin’⸱…⸱Qm-2n’=12025/7/2318左边必须产生0,否则不是全0序列左边必须产生1,否则还是全0序列A⊕0=AA⊕1=A’任意M(<2m-1)长度序列产生器若要产生长度M<2m-1的序列,需跳过2m-1-M的状态。这时的反馈函数为:F=(C0×Q0n)⊕(C1×Q1n)⊕…⊕(Ci×Qin)⊕…(Cm-1×Qm-1n)⊕(起跳状态)确定起跳状态的方法由M长度确定寄存器m,查表得反馈函数F由任一非全0初始状态,可推得长度为2m-1的序列一将序列一循环右移M位,得序列二将序列一各位异或序列二对应的位,得序列三从序列三中寻找100…0(连续m-1个0)的码组,其对应位置序列一中的m位码就是移位寄存器各触发器的起跳状态,且从右到左对应寄存器Q0nQ1n…Qin…Qm-1n起跳状态为各寄存器Qn相与,且起跳状态的1对应Qin原变量,0对应Qjn为反变量2025/7/2319任意长度的序列例:产生长度M为11的序列m应该为4,利用前述初始状态为1011时,所推得的序列一110101111000100,向右循环移11位得序列二011110001001101,序列一异或序列二,得序列三序列三的1000码组对应的序列一的1100(倒序为0011)为起跳状态,且Q0n=0,Q1n=0,Q2n=1,Q3n=1跳过的状态有0001,1000,0100,0010,反馈函数为:F=Q2n⊕Q3n⊕(Q0n’⸱Q1n’⸱Q2n⸱Q3n)右移移位寄存器各触发器状态转移为:

1011

0101

1010

1101

1110

1111

0111

0011

1001

1100

0110

1011Q3输出序列为110101111002025/7/2320序列三

101011110001001序列一

110101111000100序列二

011110001001101⊕)1011

0101

1010

1101

1110

1111

0111

0011

0001

1000

0100

0010

1001

1100

0110

1011序列检测器例:移位寄存器74LS164设计实现010011序列检测器用移位寄存器实现串/并转换,将串行输入序列转为并行,即可并行判断6次移位后,Q5为最高位(最先移入的位)2025/7/2321UDDFSIQ0Q131D2&Q498RC1RD_LCLKQ5Q6Q10Q11Q12Q13Q1Q2Q3Q4Q5111&SRG8串行加法器加法演算过程,最低位开始逐位进行低位产生的进位存储以待高位相加时使用仅用1个二进制位加法器实现多位相加2025/7/2322XiYiCiSiCi+1QC1CLR1DCLK移位寄存器移位寄存器移位寄存器被加数X加数Y和SResetxysFSMStateNext-State串行加法器结构框图∑15M2[LOAD]67RC3/1CLKINHCLK≥1SRG8SER11,3DA22,3DB32,3DHQH14139M1[SHIFT]CLR_LC4D5E10F11G1274LS16615M2[LOAD]67RC3/1CLKINH≥1SRG8SER11,3DA22,3DB32,3DHQH14139M1[SHIFT]CLR_LSH/LD_LC4D5E10F11G1274LS1661DDRDQC1SCOXYCI∑RD_L被加数/和加数MSBCLKSH/LD_L74LS166实现串行加法运算S0S1Resetxy/s11/000/100/001/110/101/010/011/1串行加法器状态转移图S0:进位为0,S1:进位为1x被加数,y加数/s和循环冗余校验奇/偶校验增加1个校验位循环冗余校验码(CRC)在k位数据码后产生r位校验码,称为(n,k)码n=k+r产生校验码的生成多项式G(x)需满足:生成多项式的最高位和最低位必须为1。当任何一位发生错误时,n位码字被生成多项式G(x)模2相除(异或)的余数不为0当发生错误的位不相同时,应该使余数不同对余数继续模2相除后,应使余数循环2025/7/2323循环冗余校验生成多项式G(x)CRC8:G(x)=x8+x5+x4+1CRC12:G(x)=x12+x11+x3+x2+x+1CRC16:G(x)=x16+x15+x2+1CRC-CCITT:G(x)=x16+x12+x5+1CRC32:G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x+1发送端:生成校验码,并将数据(二进制)与校验码一起发送原始k位二进制码左移r位,空位补0。再将该k+r位模2除(异或)以G(x)。余数即校验码传输:k位二进制码信息与r位校验码一起传输接收端:接收端收到的k+r位码再进行模2除(异或)以生成多项式G(x)。余数为0,传输正确。余数不为0,传输错误2025/7/2324校验码生成过程例:若生成多项式G(x)=x3+x+1,求二进制码1010的CRC校验码解:生成多项式G(x)的最高幂次为3,因此校验码的位数r为3将二进制码1010左移3位并补0即为1010000将其进行模2除(异或)以1011得余数,余数的低位依次替补,继续进行模2除(异或)以1011,直至最后余数为3位,即得到校验码0112025/7/23251010000D×23⊕)1011

G(x)1000⊕)1011011校验码给定二进制数据101101100101,设计基于CRC-CCITT生成多项式的循环冗余校验码产生电路。CRC-CCITT的生成多项式为G(x)=x16+x12+x5+1数据左移16位(右边填16位0),再与生成多项式模2除(按位异或)2025/7/23261011011001010000000000000000数据0011111001000000100最高2位为0,末尾从数据下移2位011100010001001010最高1位为0,末尾从数据下移1位01101010001101011010001000000100001生成多项式⊕)10001000000100001⊕)10001000000100001⊕)10001000000100001⊕)01011100011110111010001000000100001⊕)001100001110011110010001000000100001⊕)01001011100011101010001000000100001⊕)0001111100001101100010001000000100001⊕)01110000011111001最后16位为生成多项式111000001111100110110110010100000数据位数不够,末尾添0补足17位01110001000100101最高位为00110101000110101110001000000100001生成多项式⊕)10001000000100001⊕)10001000000100001⊕)0101110001111011110001000000100001⊕)0011000011100111110001000000100001⊕)0100101110001110110001000000100001⊕)0001111100001101110001000000100001⊕)0111000001111100101111100100000010左移1位,末位补0。最高位仍为011111001000000100继续左移1位,末位补000111110010000001最高位为011100010001001010左移1位,末位补010001000000100001⊕)11010100011010110101110001111011100110000111001111011000011100111100100101110001110100011111000011011001111100001101100111110000110110001110000011111001生成多项式1110000011111001末尾都为0,左移对齐,无需增加异或位宽全部移完!继续模2除(按位异或)够12位?CRC校验码产生电路2025/7/2327CLK1DQC1CRC(2)G11DQC1CRC(1)G01DQC1CRC(3)G21DQC1CRC(4)G31DQC1CRC(r-1)Gr-21DQC1CRC(r)Gr-1…(a)r位校验码产生电路F0SD1DQC1f(b)16位校验码产生电路CLK1DQC1CRC(2)1DQC1CRC(1)1DQC1CRC(5)1DQC1CRC(6)1DQC1CRC(12)1DQC1CRC(16)……1DQC1CRC(13)…F0SD1DQC1f=0…Qf=11

000000

1110101001108.1.3多端口寄存器组寄存器:多个触发器构成,可在使能控制信号作用下,将数据写入或读出寄存组:多个寄存器构成(也称为寄存器文件(RegisterFile))由地址选中某个寄存器,并对其进行数据写入或读出操作。这种任意时刻都只能选择访问一个寄存器的电路称为单端口寄存器组3端口寄存器组:8个寄存器×16位,有2个读端口(A1/RD1和A2/RD2)和1个写端口(A3/WE/WD)地址线为3位,可访问所有23=8个寄存器中的任意一个每个读/写端口都有独立的数据线,可同时读2个寄存器并写1个寄存器2025/7/2328多端口寄存器组CLK图8-16多端口寄存器组A13A23A33WERD116RD216WD116寄存器(回顾)WR有效(同时输入Di,i=0~7),RD交替有效,交替写入,读出连续n次WR(输入不同的Di,i=0~7),前n-1次写入的数据被覆盖(未被使用)连续m次RD,同一个数据重复读取m次2025/7/23ENENQ’QCLKC11DDENENAFCLKWRRDENC11DD3ENO3ENC11DD2ENO2ENC11DD1ENO1ENC11DD0ENO0ENC11DD7ENO7ENC11DD6ENO6ENC11DD5ENO5ENC11DD4ENO4CLKDD7O7DD6O6DD5O5DD4O4DD3O3DD2O2DD1O1DD0O0WRRD若16位,32位宽度,如何设计?29寄存器组寄存器2025/7/23ABCG1G2A_LG2B_LY0_LY2_LY3_LY4_LY6_LY7_LY5_LY1_L02346751&012BIN/OCTENCLKDD7DD6DD5DD4DD3DD2DD1DD0WRWA0WA1WRWR0WR2WR3WR1023101BIN/OCTENDO7DO6DO5DO4DO3DO2DO1DO0RD1420103GS0S11D01D1MUX1Y16EN071D21D354121EN_L332D02D12Y1510EN092D22D31112122EN_L1330103GRA0RA10Oi1OiMUXOiEN02Oi3Oi12RD301RA0RA10Oi1OiMUX02Oi3Oi12033OiDDDDDDDDDDDDDDDDWA0WA1WRRA0RDRA10ENCLK101RegisterFileEND7D6D5D4D3D2D1D0O7O6O5O4O3O2O1O0WAi:写的地址,i=0,1,2,…RAi:读的地址,i=0,1,2,…WRi:第i字写使能,i=0,1,2,…jOi:第j字的第i位寄存器输出写操作读操作30思考:1.如何实现2口输出?2.如何实现16位寄存和输入输出?3.如何实现32个寄存器寄存器组2025/7/23ENO7RDENC11DD7ENC11DD6ENC11DD5ENC11DD4ENC11DD3ENC11DD2ENC11DD1ENC11DD001MUX012033ENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENC11DENO601MUX012033ENO501MUX012033ENO401MUX012033ENO301MUX012033ENO201MUX012033ENO101MUX012033ENO001MUX012033WA0WA1WR023101BIN/OCTENRA0RA1CLK318.1.4FIFO(先进先出),队列FIFO是按照先存入的数据先取出的顺序原则,由多个寄存器组成的存储体有两个指针write_ptr和read_ptr,分别指向寄存器组待存入数据的寄存器以及待读出的寄存器读指针read_ptr总追随写指针write_ptr而变化2025/7/2332FIFO结构示意图

FIFOdata-indata-outResetCLKwritereadfullemptywrite_ptrread_ptrheightwidthfull指示FIFO满,不能再存入更多数据。empty指示FIFO空,则没数据可读FIFO空:读指针与写指针指向同一位置,且单元数计数值为0FIFO满:若读/写指针指向相同位置,且单元计数值为FIFO长度8.2计数器计数器分类按时钟源:同步、异步按计数方式:加、减、双向计数按编码方式:二进制、十进制、格雷码等2025/7/2333CLKQ0Q1Q2异步计数器1DQC1Q01DQC1Q11DQC1Q2CLK(a)D触发器构成的异步计数器(b)时序图CLKQ0Q1Q2同步计数器(b)时序图1TQC1Q0CLK(a)T触发器构成的同步计数器1TQC1Q11TQC1Q21D触发器的功能T’触发器异步计数器的问题:延时导致计数值不连续,延时累积到一个时钟周期,导致计数值跳跃错误Ti=Q0n⸱Q1n⸱…⸱Qi-1n,i=1,2,…,T0=18.2.2计数器电路触发方式(上升沿,下降沿)计数方式(加/减计数,双向)计数进制(二进制,十进制,其他)预置数方式(同步/异步)复位(清零)方式(同步,异步)2025/7/2334几种常用计数器集成芯片型号时钟计数方式清零预置数74LS160/74LS162同步,↑十进制加异步/同步同步74LS161/74LS163同步,↑4位二进制加异步/同步同步74LS190同步,↑十进制加/减-异步74LS191同步,↑4位二进制加/减-异步74LS192双时钟,同步,↑十进制加/减异步异步74LS193双时钟,同步,↑4位二进制加/减异步异步74LS290异步,↓二-五-十进制加异步-74LS293异步,↓4位二进制加异步-计数器功能表2025/7/23354位同步二进制加计数器74LS163功能表输入输出CLKCLR_LLD_LENPENTD3D2D1D0Q3n+1Q2n+1Q1n+1Q0n+1↑L×××××××LLLL↑HL××d3d2d1d0d3d2d1d0↑HHL×××××保持↑HH×L××××↑HHHH××××计数74LS290功能表输入输出1R02R01S92S9CLK1CLK2Q3n+1Q2n+1Q1n+1Q0n+1HHL×××LLLLHH×L××LLLLL×HH××HLLH×LHH××HLLHL×L×↓↓计数L××L↓↓计数×LL×↓↓计数×L×L↓↓计数74LS192功能表输入输出CLRLD_LCLKUCLKDD3D2D1D0Q3n+1Q2n+1Q1n+1Q0n+1H×××××××LLLLLL××d3d2d1d0d3d2d1d0LH↑H××××加计数LHH↑××××减计数LH除↑外除↑外××××保持CLR_L为低:同步清零CLR_L为高,LD_L为低:同步并行预置数CLR_L和LD_L都为高,ENP和ENT也都为高:同步二进制加计数CLR为高:异步清零LD_L为低,且CLR为低:异步预置数CLR为低,且LD_L为高:根据时钟同步加/减计数CLK1

Q0为2进制计数;CLK2Q3Q2Q1为5进制计数1R0和2R0都为高:复位。1S9和2S9都为高:置9Q0接CLK2,Q3Q2Q1Q0构成8421BCD码异步十进制计数器,对CLK1计数Q3接CLK1,Q0Q3Q2Q1构成5421码异步十进制计数器,对CLK2计数8.2.3移位型计数器环形计数器:移位寄存器的最后一级输出反馈到第一级输入构成的计数器,不能自启动自启动设计:改变第1个触发器激励,而保持其他触发器的移位关系2025/7/2336环形计数器1DC1QQ31DC1QQ21DC1QQ11DC1QQ0CLKFF30001Q3Q2Q1Q0环形计数器状态转移图100000100100001110011100011001111110101111010101101000001111有效循环无效循环无效循环无效循环无效循环环形计数器自启动设计——激励的卡诺图表示各触发器都是依次移位,保持电路的移位结构,只修改Q3的激励D3由环形计数器状态转移图,可得到D3的卡诺图表示现态0001,次态1000(即D3为1)。现态1000,次态0100(即D3为0)。现态0100,次态0010(即D3为0)。现态0010,次态0001(即D3为0)现态0011,次态1001(即D3为1)。现态1001,次态1100(即D3为1)要能自启动,必须折断无效循环0000格的值0改为11111格的值1改为00101格的值如何改?2025/7/23370001Q3Q2Q1Q0环形计数器状态转移图100000100100001110011100011001111110101111010101101000001111有效循环无效循环无效循环无效循环无效循环0Q1nQ0nQ3nQ2n1100110011001100001111000011110D3环形计数器自启动卡诺图中1的数量越少且相邻,D3激励表达式就越简单,电路成本低0101格的10。竖线浅红背景格10,状态00110001,10010100都转入了有效状态斜线白背景格10,01110011,11010110,10110101都能经过几个状态后进入到有效状态触发器激励D3=Q3n’⸱Q2n’⸱Q1n’=(Q3n+Q2n+Q1n)’2025/7/23380Q1nQ0nQ3nQ2n11001100110011000011110000111101Q1nQ0nQ3nQ2n11000100100011000011110000111101Q1nQ0nQ3nQ2n1000000000000000001111000011110Q3Q2Q1Q01000010010010110110000110111000011101101010100100001101010111111有效循环可自启动环形计数器触发器激励D3=Q3n’⸱Q2n’⸱Q1n’=(Q3n+Q2n+Q1n)’2025/7/2339能自启动环形计数器Q3Q2Q1Q01000010010010110110000110111000011101101010100100001101010111111有效循环1DC1QQ31DC1QQ21DC1QQ0CLKFF31DC1QQ1≥1自启动设计不改变有效循环截断无效循环,且至少有一个状态进入有效循环电路应最简枝尽可能短扭环计数器m位环形计数器只使用了m个状态扭环:将移位寄存器最后一级的“非”反馈到最左边的输入m位扭环计数器具有2m个有效状态,2m-2m个无效状态构成1个或多个无效循环激励D3的卡诺图状态转移图知,现态0000时D3为1;00010;00101;00110;01001;01010因左下2格,右下1格必须存在,而保留右下格改变阴影格对应无效状态的值,即3个阴影1格改为02025/7/2340Q3Q2Q1Q01DC1QQ31DC1QQ21DC1QQ1CLKFF31DC1QQ000110111111100010000110011101000有效循环01011011010010010010110110100110无效循环1Q1nQ0nQ3nQ2n0000000100110010001111000011110D31Q1nQ0nQ3nQ2n0011001100110010001111000011110扭环计数器自启动设计扭环计数器的可自启动的激励D3:D3=Q2n’⸱Q1n’⸱Q0n’+Q3n⸱Q0n’2025/7/2341Q3Q2Q1Q000001000110011101111011100110001有效循环无效循环100101001010110101101011010100101Q1nQ0nQ3nQ2n0000000100110010001111000011110D31DC1QQ31DC1QQ21DC1QQ0CLK1DC1QQ1FF3≥1&&8.2.4程序计数器递增、递减、预置数、复位和保持等功能的程序计数器2025/7/2342rst计数器countmm4mmm+/-1min0编码器downuploadCLK程序计数结构框图next8.2.5计数器应用任意模计数器复位法设计:计数值达到所需值时,使得计数器复位归零异步复位时,多一个状态预置数方式设计:控制信号预置计数的初值扩展计数:多组实现更大数值的计数2025/7/234374LS290实现的7进制计数器Q3Q01093CT=1DIV2CLK1113CT=40CT2DIV5548CTR74LS2901213&1R02R0CT=03&2S91Z31S9&CLK274LS290功能表输入输出1R02R01S92S9CLK1CLK2Q3n+1Q2n+1Q1n+1Q0n+1HHL×××LLLLHH×L××LLLLL×HH××HLLH×LHH××HLLHL×L×↓↓计数L××L↓↓计数×LL×↓↓计数×L×L↓↓计数用4位二进制计数器74x163实现模11计数器清零法计数到1010时,利用同步清零端强制为00002025/7/234400000001001000110100110010111010100110000111011001011110111110111174LS163实现11计数器UDD1972G4C5/2,3,4+ENPCLK10M2G3ENTCTRDIV16CO155CT=0M1CLR_LLD_L3CT=15D0Q03141,5D1D1Q14132D2Q25124D3Q3611874LS163&4位同步二进制加计数器74LS163功能表输入输出CLKCLR_LLD_LENPENTD3D2D1D0Q3n+1Q2n+1Q1n+1Q0n+1↑L×××××××LLLL↑HL××d3d2d1d0d3d2d1d0↑HHL×××××保持↑HH×L××××↑HHHH××××计数用4位二进制计数器74x163实现模11计数器置数法计数到Q3Q2Q1Q0=1111(产生进位Co)时,利用同步预置数端强制输出为01012025/7/2345000000010010001101001100101110101001100001110110010111011110111174LS163实现11计数器(预置数)UDD72G4C5/2,3,4+ENPCLK10M2G3ENTCTRDIV16CO15195CT=0M1CLR_LLD_L3CT=15D0Q03141,5D1D1Q14132D2Q25124D3Q3611874LS163174x163用作余3码计数器回忆余3码?2025/7/2346000000010010001101001100101110101001100001110110601011101111011110011110074LS163实现的余3码计数器UDD72G4C5/2,3,4+ENPCLK10M2G3ENTCTRDIV16CO15195CT=0M1CLR_LLD_L3CT=15D0Q03141,5D1D1Q14132D2Q25124D3Q3611874LS163&例:74x163用于跳跃计数要求按1,2,3,5,6,7,8,9,10,11,12,13,15,1,….进行13进制计数解:3过后为5,跳过了4。13过后为15,跳过了14。15过后为1,跳过了0即输出Qi为0011时,预置数为0101。输出Qi为1101时,预置数为1111。输出Qi为1111时,预置数为00012025/7/2347Q3nQ2n

Q1nQ0nQ3n+1

Q2n+1Q1n+1Q0n+1LD_LD3D2D1D000000001ddddd000100101dddd001000111dddd001101010010101000101ddddd010101101dddd011001111dddd011110001dddd100010011dddd100110101dddd101010111dddd101111001dddd110011011dddd110111110111111101111ddddd1111000100001LD_L=(Q3n+Q2n+Q1n’+Q0n’)(Q3n’+Q2n’+Q0n’)Q1nQ0nQ3nQ2n0001111000d10101d11111100d101111例:74x163用于跳跃计数2025/7/2348Q1nQ0nQ3nQ2n0001111000dd0d01dddd11d10d10ddddQ3nQ2n

Q1nQ0nQ3n+1

Q2n+1Q1n+1Q0n+1LD_LD3D2D1D000000001ddddd000100101dddd001000111dddd001101010010101000101ddddd010101101dddd011001111dddd011110001dddd100010011dddd100110101dddd10101011

温馨提示

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

评论

0/150

提交评论