1、计算机系统综合设计计算机系统课程设计me10.2 微程序设计微程序设计一、微程序设计思想的产生一、微程序设计思想的产生利用利用软件方法软件方法(微程序设计技术微程序设计技术)来设计硬件)来设计硬件 微程序控制的微程序控制的基本思想基本思想:把操作控制信号编成所谓的把操作控制信号编成所谓的“微指令微指令”,存放到存储器里(控制存储器存放到存储器里(控制存储器CM)(ROM,RAM?)当机器运行时,一条又一条地读出这些微指令,当机器运行时,一条又一条地读出这些微指令,从而产生全机所需要的各种操作控制信号从而产生全机所需要的各种操作控制信号10.2 微程序设计微程序设计一、微程序设计思想的产生一、微
2、程序设计思想的产生 完成完成一条机器指令一条机器指令微操作命令微操作命令 1微操作命令微操作命令 2微操作命令微操作命令 n微指令微指令 110100000微指令微指令 n微程序微程序00010010存储逻辑存储逻辑一条机器指令对应一个微程序一条机器指令对应一个微程序存入存入 ROM机器指令与微指令机器指令与微指令 程序机器指令机器指令1机器指令机器指令2机器指令机器指令i机器指令机器指令n.微指令微指令2微指令微指令1微指令微指令i微指令微指令n.微程序n微程序控制器中,机器指令与微指令的关系是微程序控制器中,机器指令与微指令的关系是_。n A每一段机器指令组成的程序由一条微指令每一段机器指
3、令组成的程序由一条微指令来执行来执行n B每一条机器指令由一段微指令组成的微程每一条机器指令由一段微指令组成的微程序解释执行序解释执行n C每一条机器指令由一条微指令来执行每一条机器指令由一条微指令来执行n D每一条微指令由若干条机器指令解释执行每一条微指令由若干条机器指令解释执行主要内容一、本次设计要达到的目的1:理解指令到底怎么指挥计算机运行2:指令和微程序的关系二、原理1:实验台相应模块原理2:PLD板三、本次设计主要工作1:简单计算机的构造调试2:课程设计报告本次设计主要工作简易计算机的设计1.使用FD-CES实验仪2.主要模块:运算器、寄存器、指令部件、内存、总线缓冲、微程序控制、启
4、停和时序模块。3.完成以下指令的设计MOV R1,#20HLDA 30HADD A,R1STA 40H HALT(1)存储器系统包括内存,控存和外存。存储器系统包括内存,控存和外存。其中:内存其中:内存1K字节字节SRAM 控存控存1K24bit SRAM 外存外存1K字节字节EEPROM 通过实验仪控制台,可对内存,控存和外存进行读写或转存。通过实验仪控制台,可对内存,控存和外存进行读写或转存。地址地址地址地址 (2)CPU八位。八位。运算器:多累加器结构或单累加器多通用寄存器结构。运算器:多累加器结构或单累加器多通用寄存器结构。控制器:微操作控制信号发生器采用软控制器:微操作控制信号发生器
5、采用软(微程序微程序)硬硬(TTL/PLD)结合的方法实现。结合的方法实现。(3)指令系统指令系统 自己设计。自己设计。指令长度:单字节或双字节。指令长度:单字节或双字节。操作数寻址方式:直接地址寻址;立即数寻址;寄存器直接寻址;寄存器间接寻址:操作数寻址方式:直接地址寻址;立即数寻址;寄存器直接寻址;寄存器间接寻址:*PC相对寻址;相对寻址;*间接地址寻址;间接地址寻址;*寄存器变址寻址。寄存器变址寻址。功能模块 1.运算器模块 2.寄存器堆模块 3.指令部件模块 4.内存模块 5.总线缓冲模块 6.微程序控制模块 7.启停和时序模块 8.控制台控制模块 运算器模块累加器暂存器累加器暂存器累
6、加器累加器缓冲器缓冲器暂存器暂存器累加器判累加器判零电路零电路进位发生线路进位发生线路寄存器堆模块指令部件模块如:直接地址寻址 ll位操作数地址由指令第一字节 低3位和第二字节8位直接给出。LDA addr;(addr)A STA addr;(A)addr 操作码 a100a9a8a7a6a5a4a3a2a1a0第一字节第二字节11位操作数地址 内存模块总线缓冲模块微程序控制模块 启停和时序模块PLD实验板 ABEL程序第一部分:IAB10 PIN 45;IAB9PIN 44;IAB8PIN43;IAB7 PIN 42;第二部分*I-PC*CL=!(M14&CLK);PINC=M6;GI=M7
7、;OI=M15;PCO=!M6;LP=(!M9)&(!I4&!I3&ZD#!I4&I3&CY#I4&!I3&A0#I4&I3);整个系统连接PLD板运算器模块寄存器堆模块总线缓冲模块指令部件模块内存模块总线缓冲模块微程序控制模块启停和时序模块简易计算机的设计1.确定设计总要求 2.设计整机逻辑框图 3.设计指令系统 4.设计指令执行流程 5.确定微操作控制信号及其实现方法 6.设计微指令格式 1、确定设计总要求 (1)运算器:采用单累加器多寄存器结构(开关KA、KB、KC、KR分别置左、右、右、左)。(2)指令系统:小于等于8条指令,无外设。(3)内存寻址方式:据具体情况自行完善(4)微程序设
8、计微操作信号发生器。设计整机逻辑框图单累加器多寄存器多累加器多寄存器3、设计指令系统n1:指令操作数寻址方式及其编码n2:设计指令执行流程 ll位操作数地址由指令第一字节 低3位和第二字节8位直接给出。例:LDA addr;(addr)A STA addr;(A)addr操作码 a100a9a8a7a6a5a4a3a2a1a0第一字节第二字节11位操作数地址2:指令操作数寻址方式及其编码LDA 30H10000 00000 110000STA 40H10100 00001 000000指令(第一)字节含寄存器选择码,决定选哪个寄存器并对其操作。例:单字节指令ADD A,Ri;(Ri)AADD
9、A,R1000000 01MOV R1,#20H指令第二字节8位为立即可操作的数据。例:MOV A,#data;dataA操作码及Ri选择码d7 d6 d5 d4 d3 d2 d1 d0第一字节第二字节8位立即数data MOV Ri,#data;dataRi 010001 01 001000002:设计指令执行流程 12345确定微操作控制信号及其实现方法设计微指令格式设计微指令格式 I12345 MDl0MD6 MD5 MD4 MD3 MD2 MDlMDO 接地 I7 I6 I5 I2 5V00876A9BAEBC00876A控存地址整个系统连接PLD板运算器模块寄存器堆模块总线缓冲模块指
10、令部件模块内存模块总线缓冲模块微程序控制模块启停和时序模块ABEL程序第一部分:IAB10 PIN 45;IAB9PIN 44;IAB8PIN43;IAB7 PIN 42;第二部分*I-PC*CL=!(M14&CLK);PINC=M6;GI=M7;OI=M15;PCO=!M6;LP=(!M9)&(!I4&!I3&ZD#!I4&I3&CY#I4&!I3&A0#I4&I3);设计实验接线表 源程序的编写调试指令对应MOV A 80H;60 80STA 55H ;A0 55HALT ;FF MDl0MD6 MD5 MD4 MD3 MD2 MDlMDO 接地 I7 I6 I5 I2 5V01B:038
11、FFA01C:00876A02B:00CFFA02C:080EB602D:00876A03F:008F9E02D:00876AMOV A,#20HMOV R0,30HADD A,R0STA 40HHALT6020643000A040FF00876A038FFA00876A008FFB00876A008FFB00876AMOV A,#DATAMOV R0,#DATAADD A,R0STA ADDR00CFFA080EB600876AHALT008F9E00876A控制存储器地址?02B02C02F03003403502B02C02D03F040确定设计目标确定整机逻辑确定指令系统指令流程编写调试
12、程序编写应用程序确定各位操作控制信号实现方案确定微指令格式编写微程序熟悉实验仪输入微程序到控存(用FD-CES键盘)熟悉PLD实验板编辑ABL源程序(生成*.ABL文件)编译ABL源程序(生成*.JED文件)下载*.JED文件到PLD(ISP2096)输入程序到内存(用FD-CES键盘)单拍/连续运行程序(用FD-CES键盘)图图3-2 实验计算机研制流程实验计算机研制流程整个系统连接PLD板运算器模块寄存器堆模块总线缓冲模块指令部件模块内存模块总线缓冲模块微程序控制模块启停和时序模块ABEL程序第一部分:IAB10 PIN 45;IAB9PIN 44;IAB8PIN43;IAB7 PIN 42;第二部分*I-PC*CL=!(M14&CLK);PINC=M6;GI=M7;OI=M15;PCO=!M6;LP=(!M9)&(!I4&!I3&ZD#!I4&I3&CY#I4&!I3&A0#I4&I3);设计实验接线表 nMOV A,#20HnMOV R0,30HnADD A,R0nSTA 40HnHALT6020643000A040FF000002004005007?几位地址00000876An可改进的地方:n接线方法n操作码设定