如何用边沿触发D触发器和与非门设计一个三位右移寄存器?

我们先来看看这道题目吧!

解题前的准备知识:

1.什么是自循环功能?

现有右移寄存器和右移循环寄存器两个寄存器,假设两个寄存器都是8位的。
则:

右移寄存器的移位1011 1111, 向右移一位,移出的位扔掉,左边空位自动补0,结果为0101 1111。
右移循环寄存器的移位1011 1111,向右移一位,移出的位补到左边空的位上,结果为1101 1111。

右移循环寄存器所展示的就是自循环功能!

2.什么是边沿触发的D触发器?

 请注意:

(1)当CP=0时,D触发器处于保持状态。当CP=1时,才符合上图中的特性方程。

(2)边沿触发即在CP信号发生变化的那一刻触发。

3.什么是移位寄存器?

移位寄存器中的数据可以在移位脉冲作用下依次逐位右移或左移。数据可以并行输入、并行输出;串行输入、串行输出;并行输入、串行输出;串行输入、并行输出。

在此仅展示最基本的右向移位寄存器。

下面进入正题!

(1)我们知道右移寄存器是同步的,所以画出三个D触发器,将他们的时钟信号CP端连接起来。

(2)要实现右移进位的功能,就要把前两个D触发器的输出端依次接到后一个D触发器的输入端,从而实现进位功能。

以上两步就得到了最基本的电路图。

(3)现在我们来分析输入端。

1.假设D触发器最左边的输入端为S(上图中小人眼睛盯着的地方),最终输出为D0。

2.画出控制端X和输入端S的真值表。

X(控制端)S(输入端)
0(X=0时串行输出新数据DI)DI(新数据)
1(X=1时自循环,所以输入和输出相等)D0(最终输出值)

3.根据上述真值表,我们写出相应的表达式:S=X非 DI+X D0

将上述式子化简成全部用与非门表示:

 4.直接根据化简后的式子,画出输入电路。

5.最后将原先的基本电路与刚刚得到的输入电路连接起来,就得到最终的答案啦!

 by 访问宇宙

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Logisim是一款免费的电子电路仿真软件,非常适合初学者进行逻辑电路设计和学习。要设计一个双向移位寄存器(Dual-Shift Register),你需要使用Logisim的构建块来构造逻辑门、存储单元以及控制信号。以下是设计步骤: 1. **创建基本组件**: - 首先,打开Logisim,从工具栏选择"新建项目"或"新建电路"。 - 添加基本的逻辑门组件,如与门(AND)、或门(OR)、非门(NOT)等。 2. **构建移位寄存器**: - 使用组合电路(如D触发器或JK触发器)创建一个基础的单向移位寄存器。Logisim中可能没有直接的移位寄存器模块,但你可以通过连接两个D触发器或JK触发器并加上适当的控制输入来实现。 3. **添加双向功能**: - 对于双向移位,你需要额外一个控制信号,通常称为“左移”(LS)和“右移”(RS)。你可以用两个与非门(AND NOT)来分别控制两个方向的移位,输入是LS(连接到移位寄存器的“clock”输入)和RS(连接到下一个触发器的“clock”输入)。 4. **连接控制信号**: - 将LS和RS输入连接到对应的触发器的clock输入端,这样在输入这两个信号时,寄存器就会按照指定的方向进行移位。 5. **配置输入和输出**: - 设计输入端口,接收数据,输出端口用于查看移位后的结果。你可以使用数据输入线(例如,A, B)连接到移位寄存器的适当输入,以及数据输出线来读取移位后的值。 6. **测试和验证**: - 运行模拟,给输入信号喂数据,观察输出是否按预期进行双向移位。你可以通过更改输入和控制信号来测试各种情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

访问宇宙

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值