实验四 程序计数器 PC 和地址寄存器 AR
一.实验目的
1.掌握地址单元的工作原理。
2.掌握的两种工作方式,加 1 计数和重装计数器初值的实现方法;
3.掌握地址寄存器从程序计数器获得数据和从内部总线获得数据的实现方法。
二.实验原理
地址单元主要由三部分组成:程序计数器、地址寄存器和多路开关。
程序计数器 PC 用以指出下一条指令在主存中的存放地址,CPU 正是根据 PC 的
内容去存取指令的。因程序中指令是顺序执行的,所以 PC 有自增功能。程序计
数器提
供下一条程序指令的地址,如电路图 4-2-1 所示,在 T4 时钟脉冲的作用下具
有自动加 1 的功能;在 LDPC 信号的作用下可以预置计数器的初值(如子程序
调用或中断响应等)。当 LDPC 为高电平时,计数器装入 data[ ]端输入的数
据。aclr 是计数器的清 0 端,高电平有效(高电平清零);aclr 为低电平时,
允许计数器正常计数。地址寄存器 AR(74273)锁存访问内存 SRAM 的地址。
273 中的地址来自两个渠道。一是程序计数器 PC 的输出,通常是下一条指令的
地址;二是来自于内部数据总线的数据,通常是被访问操作数的地址。为了实现
对两路输入数据的切换,在 FPGA 的内部通过总线多路开关 BUSMUX 进行选择。
LDAR 与多路选择器的 sel 相连,当 LDAR 为低电平,选择程序计数器的输出;
当 LDAR 为高电平时,选择内部数据总线的数据。
三.实验步骤
按照 图 4-2-1 程序计数器原理图编辑、输入电路,实验台选择 NO.0 工作模
式。对输入原理图进行编译、引脚锁定、并下载到实验台。示例工程文件是
PC_unit.bdf。硬件实验验证(与仿真波形图 4-2-2 比较!)。
实验说明:
(1)下载 pc_unit.sof ;
(2)用模式键选模式“0”,再按一次右侧的复位键;
(3)键 2 和键 1 可输入 8 位总线数据 B[7..0](此值显示于发光管 D1~D8
和数码管 2/1);CLR(键 5)按 2 次(0�1�0),产生一正脉冲,高电平清零;
LDAR(键 6)=0 时,BUSMUX 输出程序计数器 PC 的值;LDAR=1 时,BUSMUX 输
出 B[7..0]总线数据。LDPC(键 7):程序计数器 PC 预置控制端,当 LDPC=1
时,将 B[7..0]总线数据装入程序计数器 PC;当 LDPC=0 时,程序计数器 PC
处于计数自动工作状态,对 T4 进行计数;T4(键 8):程序计数器 PC 的计数
时钟 CLK,键 8 按动两次产生一个计数脉冲。
2.通过 B[7..0]设置程序计数器的预加载数据。当 LDPC=0 时,观察程序计数
器自动加 1 的功能;当 LDPC=1 时,观察程序计数器加载输出情况,
示例操作:
1、所有键置 0,键 2/1 输入 A5;按键 5�PC 计数器清 0(0�1�0);
2、连续按动键 8,可以从数码 8/7 上看到 AR 的输出,即 PC 值;
3、按键 6�’1’,选通直接输出总线上的数据 A5 作为 PC 值,按键 8,产生
一个脉冲上升沿,即可看到 AR(显示在数码 8/7)的输出为 A5;
4、使键 6=0,仍选通 PC 计数器输出,这时键 2/1 输入 86,按键 7 产生一个
上升脉冲(0�1�0),即用 LDPC 将 86 加载进 PC 计数器;
评论0
最新资源