数字逻辑——Registers and Counters

Register

register就是多个flip-flop连在一起,构成的一个可以同时存储多位数字的记忆结构。每个flip-flop存储1位,n个flip-flop构成的register就可以存储n位

Basic register

如下就是一个最基础的4位register

image

Register with Parallel Load

如下是一个register with parallel load

只有当load=1时,register的值才会改变,否则保持不变

image

Shift Register

Shift Register就是n个D flip-flop连在一起,前一个flip-flop的输出作为后一位flip-flop的输入,这样每次clk驱动,寄存器里的n位数就右移1位,第一个flip-flop又会接受新的输入

image

这是通过shift register实现register之间的传输,每次clk驱动,A就会右移一位给B,A右移丢掉的那一位又会回到A的最高位,这样n次移动后,A存的数不变,B存的数变成A存的数

image

这是用shift register来实现serial adder,全加器进行n次加法后,结果会存储在A中

image

Universal shift register: 可以实现左移、右移、不动和全部重置

image

image

Counter

counter就是一个register的值,根据驱动信号,按照一定的规律变化

Asynchronous Ripple Counter

该种ripple counter不受clk控制,输出受count控制

ripple counter实际上是register中的二进制数从0逐渐加1增加到111...111(n位),再进行循环

这是分别用T Latch和D Latch来实现的ripple counter

图中的flip-flop实际上是低电平触发的latch

J和K始终保持为1,使得被驱动的flip-flop一直翻转

image

BCD Counter

如下是一个BCD Ripple Counter,通过特殊的设计,JK不再均为1,使得最大值为1001

image

Synchronous Ripple Counter

这是Synchronous ripple counter,所有flip flop都受时钟驱动,通过与门来调整每一个flip-flop的 JK值,从而实现递增

image

Johnson Counter

Johnson Counter比较像一个shift register,高前三位右移,LSB取反放到MSB

register的数据变化如下:

0000->1000->1100->1110->1111->0111->0011->0001->0000

image

posted @ 2022-01-13 16:57  wcvanvan  阅读(798)  评论(0)    收藏  举报