19、P1 W3 U3.4 计数器

2019-08-06  本文已影响0人  shazizm

视频:
如果本次课程对应的 Coursera 的视频打不开,可以点击下面链接
P1W3U3.4 - Counters

计数器

在讲解 计数器 之前。先打个比方。

例如有一个制作蛋糕的步骤,分几步完成。

有一个机器人,执行完一步,就会看看计数器里存的第几个步骤,然后去执行相应的步骤。

通常计数器 里存的就是下一步的数。每次计数器加一就好。

有时候计数器也会重置到第0步,重复执行前几步命令。比如开始需要重复做3个蛋糕。再放入烤箱。

有时候计数器要跳过执行。比如做好第2个蛋糕,烤箱已经准备就绪了,那就直接把计数器设置成第某步,开始放入蛋糕。

上面基本就是 计数器 (PC = Program Counter)的工作方式了。

电脑每次都执行上次计数器里存的指令地址。然后执行完。再去计数器里看下一条命令该执行谁。

我们要设计的计数器,需要能会做三个动作:
1、Reset 重置 (PC = 0)
2、Next 下一个 (PC++)
3、Goto 跳转 (PC = n)

计数器的翻译并不好理解。PC(Program Counter)程序柜台(这里存着程序),更形象,就好像计算机执行完一条程序后,就去柜台问问,下一步该执行啥了,然后柜台告诉它下一步该执行啥。

下面是本节一个作业:

PC的示意图 上方 有三个输入。

如果 reset[t] == 1 那么 PC 的 out[t+1] = 0 (out 重置到 0步)
如果 reset[t] !== 1
那么再判断
如果 load[t] ==1 那么 PC 的 out[t+1] = in[t] (out 跳转到 in步)
如果 load[t] !==1
那么再判断
如果 inc[t] == 1 那么 PC 的 out[t+1] = out[t] + 1 (out 下一步)
如果以上都不是 那么 out[t+1] = out[t] (out 保持不变)

作业

下图 演示了用 硬件模拟器,加载内建的 PC.hdl
然后演示了一下如何操作 PC

注意判断优先级:reset 重置> load 跳转> inc 加一

计数器的演示 从 6分20 到 10分15。

本节不长,就介绍了一个 计数器,但就像NAND、ALU、DFF、PC这几个关键电路,在硬件物理实现上,都是至关重要的。

下节课 就来把第三周的作业介绍一下。

上一篇下一篇

猜你喜欢

热点阅读