内容发布更新时间 : 2024/11/7 12:38:29星期一 下面是文章的全部内容请认真阅读。
4. 地址寄存器
地址寄存器AR1(U37)和AR2(U27、U28)提供双端口存储器的地址。AR1是一片GAL22V10,具有加1功能,提供双端口存储器左端口的地址。AR1从数据总线DBUS接收数据。AR1的控制信号是LDAR1和AR1_INC。当AR1_INC=1时,在T4的上升沿,AR1的值加1;当LDAR1=1时,在T4的上升沿,将数据总线DBUS的数据打入地址寄存器AR1。AR2由2片74HC298组成,有两个数据输入端,一个来自程序计数器PC,另一个来自数据总线DBUS。AR2的控制信号是LDAR2和M3。M3选择数据来源,当M3=1时,选中数据总线DBUS;当M3=0时,选中程序计数器PC。LDAR2控制何时接收地址,当LDAR2=1时,在T2的下降沿将选中的数据源上的数据打入AR2。 5. 指令寄存器
指令寄存器IR是一片74HC374(U20)。它的数据端从双端口存储器接收数据(指令)。当LDIR=1时,在T4的上升沿将来自双端口存储器的指令打入指令寄存器IR保存。指令的操作码部分送往控制器译码,产生各种所需的控制信号。大多数情况下,指令的操作数部分应连到寄存器堆(用户自己连接),选择参与运算的寄存器。在某些情况下(条件转移指令时),指令的操作数部分也参与新的PC的计算。
本实验系统设计了12条基本的机器指令,均为单字长(8位)指令。指令功能及格式如表2所示。表2中的X代表随意值;RS1、RS0指的是寄存器堆的B端口选择信号RS1、RS0;RD1、RD0指的是寄存器堆的A端口选择信号RD1、RD0,不过由于运算结果需写回,因此它也同时指WR1、WR0,用户需将它们对应连接。另一点需说明的是,为了简化运算,指令JC D中的D是一个4位的正数,用D3 D2 D1 D0表示。
机器指令格式
名 称 加法 减法 乘法 逻辑与
助 记 符 ADD Rd,Rs SUB Rd,Rs MUL Rd,Rs AND Rd,Rs 功 能 Rd+Rs?Rd Rd-Rs?Rd Rd*Rs?Rd Rd&Rs?Rd 指令格式 R7 R6 R5 R4 R3 R2 R1 R0 0 0 0 0 RS1 RS0 RD1 RD0 0 0 0 1 RS1 RS0 RD1 RD0 0 0 1 0 RS1 RS0 RD1 RD0 0 0 1 1 RS1 RS0 RD1 RD0 10 存数 取数 无条件转移 条件转移 停机 中断返回 开中断 关中断 STA Rd,[Rs] LDA Rd,[Rs] JMP [Rs] JC D STP IRET INTS INTC Rd?[Rs] [Rs]?Rd [Rs]?PC 若C=1,PC+D?PC 若C=0,PC+1?PC 暂停运行 返回断点 允许中断 禁止中断 0 1 0 0 RS1 RS0 RD1 RD0 0 1 0 1 RS1 RS0 RD1 RD0 1 0 0 0 RS1 RS0 × × 1 0 0 1 0 1 1 0 1 0 1 0 1 0 1 1 1 1 0 0 D3 D2 × × × × × × × × D1 D0 × × × × × × × × 6. 时序发生器
时序发生器产生计算机模型所需的时序。时序电路由一个1MHz晶体震荡器、2片GAL22V10(U6和U7)组成,位于控制存储器的右边。根据本机设计,执行一条微指令需要4个节拍脉冲T1、T2、T3、T4,执行一条指令通常需要取指、送操作数、运算、写结果四个节拍电位W1、W2、W3、W4,因此本机的基本时序如下:
MFT1T2T3T4
W1W2W3W4 ?ù±?ê±Dòí?11