程序计数器(8 位)
使用 数字逻辑实验舱的 8 位程序计数器保持、递增或同步加载地址。RST 为异步输入;OE(输出使能) 控制 A0–A7 三态输出。
概述
本地实验舱 程序计数器存储一个 8 位地址。时钟上升沿可装载新地址或递增当前地址,独立的输出使能则控制其三态地址输出。
本地实验舱 的确切实现
| 方向 | 索引 | 引脚 | 作用 |
|---|---|---|---|
| 输入 | 0–7 | D0–D7 | 并行装载使用的地址;D0 为最低有效位(LSB)。 |
| 输入 | 8 | CLK(时钟) | 上升沿时钟。 |
| 输入 | 9 | LD(装载) | 高电平有效的同步装载使能。 |
| 输入 | 10 | RST | 高电平有效的异步复位。 |
| 输入 | 11 | INC | 高电平有效的同步递增使能。 |
| 输入 | 12 | OE | 高电平有效的输出使能。 |
| 输出 | 0–7 | A0–A7 | 使能时输出存储地址;A0 为 LSB(最低有效位)。 |
存储行为
| 条件 | 事件后的存储地址 |
|---|---|
| RST = 1 | 立即为 0x00 |
| RST = 0,CLK 上升沿,LD = 1 | D0–D7 |
| RST = 0,CLK 上升沿,LD = 0,INC = 1 | (address + 1) mod 256 |
| 其他情况 | 原地址 |
RST 优先于两种时钟驱动操作。在上升沿,LD 优先于 INC。
输出行为
- 存储地址初始为 0x00。新插入元件时,OE 为 LOW(低电平),因此 A0–A7 初始为 Z。
- OE 不影响装载、递增、复位或存储地址。
- 该元件不会自动递增;INC 必须在上升沿为 HIGH(高电平)。
- 计数器覆盖完整的 0x00–0xFF 范围,没有进位输出。
CPU(中央处理器) 中的用途
程序计数器可在取指期间驱动存储器地址总线。跳转控制可将目标地址置于 D0–D7 并激活 LD;顺序执行控制可激活 INC。
运行时参考
| 端子 | 方向 |
|---|---|
D0 |
输入 |
D1 |
输入 |
D2 |
输入 |
D3 |
输入 |
D4 |
输入 |
D5 |
输入 |
D6 |
输入 |
D7 |
输入 |
CLK |
输入 |
LD |
输入 |
RST |
输入 |
INC |
输入 |
OE |
输入 |
A0 |
输出 |
A1 |
输出 |
A2 |
输出 |
A3 |
输出 |
A4 |
输出 |
A5 |
输出 |
A6 |
输出 |
A7 |
输出 |
新放置元件的输出初始状态按上方输出端子顺序排列为:ZZZZZZZZ。四态符号为 0、1、X(主动驱动的未知态)和 Z(高阻态)。默认传播延迟:2 ns(仿真时间)。
学习路径
常见问题
什么是程序计数器?
D0–D7 提供待加载值。每个 CLK 上升沿,若 LD=1,则加载该值;否则若 INC=1,则按模 256 递增。高电平有效的 RST 会立即清零已存储的地址。
PC(程序计数器) 如何实现跳转?
控制电路使 LD 有效,并在上升沿到来时将分支目标地址置于 D0–D7。OE 仅决定 A0–A7 是否驱动地址总线,不改变已存储的值。