微指令设计
![微指令设计](https://img.360docs.net/img05/1o2x191hgknxr01zsb0aox93g24ivjr-51.webp)
![微指令设计](https://img.360docs.net/img05/1o2x191hgknxr01zsb0aox93g24ivjr-b2.webp)
(1) 设计一条指令,比较SR内容与[ADDR].
若SR<[ADDR],则SR+[ADDR]->[ADDR]; 否则SR-[ADDR]->[ADDR].
指令格式:D4 0 SR
ADDR
设计分析:
100:把PC的值(即ADDR的地址)送到AR中,然后PC+1
101:用MEM->AR将ADDR从内存中取出并送到AR中
102:利用SR-MEM->Q计算SR与[ADDR]的差,并让各标志位接受ALU的运算结果,103:若S=1(即SR<[ADDR]),条件转移到105,否则顺序执行104
104:将Q的值(即SR-[ADDR])送到[ADDR]中
105:AR<[ADDR]时转移到此处,计算SR+[ADDR]并送到Q寄存器中
106:将Q寄存器的值送到[ADDR]中
微程序:
100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402
101H: MEM->AR: 0000 0E00 10F0 0002
102H: SR-MEM->Q,接受标志: 0000 0E01 01D0 0080
103H: S=1(即AR<[ADDR])时,条件转移到105: 0041 43B0 9080 0000
104H: Q->MEM,CC#=0: 0029 0300 1020 0010
105H: SR+MEM->Q: 0000 0E00 00D0 0080
106H: Q->MEM,CC#=0: 0029 0300 1020 0010
A800
MOV R1,900
MOV R2,7
MOV R3,100
LDMC
RET
G800
A820
MOV R7,0001
MOV R1,0002
MOV [082A],R1
NOP
NOP
RET
E826
D407 082A
G820
U820
运行结果如下:
0820:2C70 0001 MOV R7, 0001
0822:2C10 0002 MOV R1, 0002
0824:3401 082A MOV [082A],R1
0826:D407 DW D407
0827:082A ADC R2, R10
0828:AC00 RET
0829:0000 NOP
082A:0003 NOP
……结果分析:由于运行前SR=R7=0001<[ADDR]=[082A]=0002,故运行后[ADDR]=0003=SR+[ADDR],结果正确.
更换数据测试:
>E821
0821 0001:0002
>G820
>U820
运行结果如下:
0820:2C70 0002 MOV R7, 0002
0822:2C10 0002 MOV R1, 0002
0824:3401 082A MOV [082A],R1
0826:D407 DW D407
0827:082A ADC R2, R10
0828:AC00 RET
0829:0000 NOP
082A:0000 NOP
……结果分析:由于运行前SR=R7=0002=[ADDR]=[082A]=0002,故运行后[ADDR]=0000=SR-[ADDR],结果正确.
(2) 设计一条指令,比较SR内容与[ADDR].
若SR<[ADDR],则IP+OFFSET->PC;否则SR+[ADDR]->DR.
指令格式:D4 DR SR
ADDR
OFFSET
设计分析:
100:把PC的值(即ADDR的地址)送到AR中
101:用MEM->AR将ADDR的值从内存中取出并送到AR中
102:利用MEM->Q将[ADDR]的值从内存中取出然后送到Q寄存器中
103:SR-Q,并让个标志位接收运算结果,以便根据标志位进行条件转移
104:降OFFSET的地址送到AR中并且PC+1,若S=1(即SR<[ADDR]),条件转移到106,否则顺序执行105
105:SR>=[ADDR]时,SR+Q->DR,结束
106:AR<[ADDR]时转移到此处,计算IP+OFFSET并送到PC中
微程序:
100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402
101H: MEM->AR: 0000 0E00 10F0 0002
102H: MEM->Q: 0000 0e00 00f0 0000
103H: SR-Q:改变标志位:0000 0e01 9200 0088
104H:S=1(即SR<[ADDR])时,
条件转移到106,PC->AR,PC+1->PC: 0041 83B0 A035 5402
105H: SR+Q->DR,CC#=0: 0029 0311 B000 0088
106H: IP+MEM->C,CC#=0: 0029 0310 30D6 5000
装载微码:
A800
MOV R1,900
MOV R2,7
MOV R3,100
LDMC
RET
G800
A820
mov r1,0002
mov [0890],r1
nop
nop
nop
ret
mov r0,1111
Ret
E824
D487 0890 0004
1)RR7 :0001
SR(0001) R0=1111 2) RR7:0004 SR(0004)>ADDR(0002) R8=0006 3) RR7:0002 SR(0002)=ADDR(0002) R8=0004 (3) 设计一条指令。将SR与绝对地址ADDR单元内容比较,如果SR<[ADDR],则[ADDR]-SR->[ADDR],否则,[ADDR]+SR->[ADDR]。 指令格式:D4 0 SR ADDR 设计分析: 先取出[ADDR]中的值,然后用SR-[ADDR]->Q来计算二者的差值,并利用运算所得的标志位判断比较二者的大小以进行条件转移:当S=1时,说明SR<[ADDR],程序跳转执行[ADDR]-SR->Q,然后将Q的值写 回[ADDR];否则,顺序执行[ADDR]+SR->Q,并将Q的值写回[ADDR]中。微程序: 100H: PC->AR, 0000 0E00 90B0 5002 101H: MEM->AR: 0000 0E00 10F0 0002 102H: SR-MEM->Q,接受标志: 0000 0E01 01D0 0080 103H: S=1(即SR<[ADDR])时,条件转移到106: 0041 43B0 9080 0000 104H:SR+MEM->Q,转移到105: 0041 8310 00D0 0080 105H: MEM-SR->Q: 0000 0E00 02D0 0080 106H: Q->MEM,CC#=0: 0029 0300 1020 0010 加载微程序: E900 输入以上微码 (2) 加载到微控存程序段 微码存放在900H(或某内存单元)开始的内存单元中 >A800 0800:MOV R1,900 ;微码在内存中的首地址 0802:MOV R2,7 ;共9条微指令 0804:MOV R3,100 ;微码在微控存中的首地址 0806:LDMC ;加载微码指令 0807:RET 0808: >G800 ;加载微指令到控制存储器 (3) 运行程序段 >A820 MOV R1,01 ;R1是指令中的SR,用它和DATA比较MOV R2,02 MOV [082A],R2 NOP NOP NOP NOP RET >E826 输入以下内容:D401 082A (4) 运行结果 >G820 ;运行程序 结果: 1.(SR=01)<([ADDR]=02)时 [ADDR]=0001 2. >E821 0002 (SR=02)=([ADDR]=02)时 [ADDR]=0004 (4)设计一条条件转移指令。将SR与内存单元DA TA的值进行比较, 1)如果SRDR, 2)如果SR≥DA TA,则ADDR->PC 指令格式:D4 DR SR DATA ADDR 设计分析: 一开始要将PC即DA TA的地址送到AR,并PC+1->PC,因为两种情况下PC都至少要指向第三行ADDR处。从存储器中取出DA TA的值,把SR和DA TA的值相减,让各个标志位接收运算结果,并根据标志位S的值判断条件转移,同时要再将PC 即ADDR的地址送到AR中并PC+1->PC 1)当S=1时,SR 2)否则,SR≥DA TA,顺序执行ADDR->PC 微程序 100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402 101H: mem->Q: 0000 0e00 00f0 0000 103H: SR-Q:改变标志位:0000 0e01 9200 0088 104H:S=1(即SR<[ADDR])时, 条件转移到105,PC->AR,PC+1->PC: 0041 43B0 A035 5402 104H:MEM->PC,CC#=0: 0029 0300 30F0 5000a8 105H:SR+Q->DR,CC#=0: 0029 0311 B000 0088 (2) 加载到微控存程序段 微码存放在900H(或某内存单元)开始的内存单元中 >A800 0800:MOV R1,900 ;微码在内存中的首地址 0802:MOV R2,6 ;共6条微指令 0804:MOV R3,100 ;微码在微控存中的首地址 0806:LDMC ;加载微码指令 0807:RET 0808: >G800 ;加载微指令到控制存储器 (3) 运行程序段 >A820 MOV R1,01 ;R1是指令中的SR,用它和DATA比较 NOP NOP NOP RET >A82A MOV R8,10F0 ;大于等于时,将会跳到82A执行这条赋值指令 RET >E822 输入以下内容:D421 0088 082A (4) 运行结果 >G820 ;运行程序 结果: 1.SR(0001) DR(R2)=0089 2. >E821 0001:0088 SR(0088)=DA TA(0088)时 R8=10F0 >E821 0088:0099 Sr(0099)>DA TA(0088)时 R8=10F0 (5)把用绝对地址表示的内存单元ADDR1的内容与内存单元ADDR2的内容相加,结果存到ADDR1单元中。 一. 实验器材 TEC-2实验计算机、电脑各一台 二. 实验分析与设计 1. 指令格式 指令格式:D4XX ADDR1 ADDR2 2. 指令功能 功能:[ADDR1] + [ADDR2] →[ADDR1] 3. 设计分析 1)PC加1后不送入PC,而是直接存入AR中,这样即可以通过AR逐步取出ADDR2中的内容到Q 中暂时存放,而PC的值并不发生改变; 2)将PC送到AR,这次PC指向的是ADDR1的地址,即向AR中送入ADDR1的地址,然后PC自加1送入PC中,然后逐步取出ADDR1指向的内存中的数据; 3)再将PC加1,并且不将PC送到AR中,以免覆盖之前AR中ADDR1的地址,此操作用于跳出该 指令; 4)将2)中取出数据Q中的相加后送到Q; 5)将Q中的数据送到AR指向的内存中,即ADDR1; 4. 微程序 100:PC+1→AR:0000 0E00 90B5 5402 101:MEM→AR:0000 0E00 10F0 0002 102:MEM→Q:0000 0E00 00F0 0000 103:PC→AR,PC+1→PC:0000 0E00 A0B5 5402 104:MEM→AR:0000 0E00 10F0 0002 105:PC+1→PC: 0000 0E00 A0B5 5400 106:MEM+Q→Q:0000 0E01 00E0 0000 107:Q→MEM,CC#=0:0029 0300 1020 0010 5. 加载到微控存程序段 说明:微码存放在900H(或某内存单元)开始的内存单元中>A800↙ 0800:MOV R1,900 ;微码在内存中的首地址 0802:MOV R2,8 ;微指令条数 0804:MOV R3,100 ;微码在微控存中的首地址0806:LDMC ;加载微码指令 0807:RET 0808: 6. 运行程序段 >A820↙ 0820:MOV R0,0011 0822:MOV [0890],R0 0824:MOV [0891],R0 0826:NOP 0827:NOP 0828:NOP 0829:RET >E826↙ 然后输入以下内容: D400 0890 0891 7. 运行结果 >G820↙ 用D命令查看运算结果 >D890↙ 则屏幕显示 0890:0022 0011? (6) 设计一条半字交换指令 指令格式:D8 DR 0 2. 指令功能 DR(I15-I8)与DR(I7-I0)的内容互换 3. 设计分析 1)将DR的内容送到Q寄存器中,并启用4号命令,因为预备循环8次,所以下地址字段要写7; 2)用8号命令重复循环,让Q和DR中的数据联合左移8次,Q中的高8位作为填充移入到DR的第八位,就相当于完成了DR中数据高低位的交换; 3)循环结束后,顺序执行. 4. 微程序 110:DR→Q,4#:0001 C400 8030 0008 111:R0Q→R0Q(联合左移),8#:0000 0806 E030 0208 112:CC#: 0029 0300 9030 0008 5. 加载到微控存程序段 说明:微码存放在900H(或某内存单元)开始的内存单元中 >A800↙ 0800:MOV R1,900 ;微码在内存中的首地址 0802:MOV R2,3 ;微指令条数 0804:MOV R3,110 ;微码在微控存中的首地址 0806:LDMC ;加载微码指令 0807:RET 0808: 6. 运行程序段 >A820↙ 0820:MOV R0,80F0 0822:NOP 0824:N0P 0825:NOP 0827:NOP 0828:RET >E822↙ 然后输入以下内容: D800 7. 运行结果 >G820↙ 用D命令查看运算结果 >R↙ 则屏幕显示 (7)设计一条指令,实现的功能是: 当DR=SR时,原PC(IP)+OFFSET→PC; 当DR 1. 指令格式 指令格式:D4 DR SR OFFSET ADDR 2. 设计分析 1) 100:另DR-SR并让各个标志位接受ALU的状态标志; 2)101:PC→AR,将OFFSET的地址送到AR中,然后根据标志位判断,如果零标志位等于1,说明DR=SR,利用下地址字段给出跳转的地址104; 3)102:若零标志位不为1,则由顺寻执行到此处。根据负标志位判断,若为1,则说明DR 4)103:若102和103中的条件判断都不成立,即DR>SR,则用PC+1→PC顺序执行下一条汇编指令; 5)104:由101跳转至此后,用IP+OFFSET(MEM)→PC将ADDR送到PC中完成转移; 6)105:由102跳转至此后,用ADDR(MEM)→PC完成转移。 3. 微程序 100:DR-SR;接受标志: 0000 0E01 9110 0088 101:PC->AR,DR=SR时跳到104: 0041 0370 9030 5002 102:PC->AR, PC+1->PC,DR 103:PC+1->PC,DR>SR时执行下条指令:0029 0300 B030 5400 104:IP+OFFSET(MEM)->PC:0029 0300 30D6 5000 105:ADDR(MEM)->PC:0029 0300 30F0 5000 (2) 加载到微控存程序段 4. 加载到微控存程序段 说明:微码存放在900H(或某内存单元)开始的内存单元中 >A800↙ 0800:MOV R1,900 ;微码在内存中的首地址 0802:MOV R2,6 ;微指令条数 0804:MOV R3,100 ;微码在微控存中的首地址 0806:LDMC ;加载微码指令 0807:RET 0808: 5. 运行程序段 >A820↙ 0820:MOV R7,7 0822:MOV R8,8 0824:MOV R0,0 0827: NOP 0828:NOP 0829: NOP 082A:MOV R0,4444 082C: RET 082D: MOV R0,5555 082F: RET 0830: MOV RO,7777 0832: RET >E826↙ 然后输入以下内容: D478 0007 0830 6. 运行结果 1)R7=7,R8=8 >G820↙ 用R命令查看运算结果 R0=7777 (成功跳转至0830处) 2)>E821 输入0008 (即R7=8,R8=8) >G820↙ 用R命令查看运算结果 R0=5555 (成功跳转至IP+OFFSET即082D处) 3)>E821 输入0009 (即R7=9,R8=8) >G820↙ 用R命令查看运算结果 R0=4444 (成功执行下一条指令,即082A处) (8)设计一条指令,以实现将SR内容与内存单元ADDR的内容相加,结果存到ADDR单元中。 1.指令功能 功能:[ADDR]+SR→[ADDR] 2.指令格式 指令格式:D4 0 SR ADDR 3.设计分析 根据实验册Page45后的<<微指令分析及功能描述表根据指令的功能和指令格式,在读取地址ADDR单元内容后暂时放置于Q寄存器中,然后将SR(R8)与Q寄存器内容相加,其结果也暂存放在Q寄存器中,此时,由于地址寄存器AR中存放的恰好是地址ADDR,因此只要将Q寄存器内容写入存储器就可以完成所需的指令功能。 4.微程序 100:PC→AR,PC+1→PC:0000 0E 00 A0 B5 54 02 101:MEM→AR:0000 0E 00 10 F0 00 02 102:MEM→Q:0000 0E 00 00 F0 00 00 103:Q+SR→Q:0000 0E 01 80 80 00 80 104:Q→MEM,CC#=0:0029 03 00 10 20 00 10 5.加载到微控存程序段 (一)用”A”命令输入加载微码的程序 在命令行提示符状态下输入: >A800↙ 0800:MOV R1,900 ;微码在内存中的首地址 0802:MOV R2,5 ;微指令条数 0804:MOV R3,100 ;微码在微控存中的首地址 0806:LDMC ;加载微码指令 0807:RET 0808: (二)用”G”命令运行加载微码的程序 在命令行提示符状态下输入: >G800 微码便装入起始地址为100H的微控存中. 6.输入程序并运行新命令 (一)用”A”命令输入程序 在命令行提示符状态下输入: >A820 0820:MOV R0,0011 0822:MOV R8,0001 0824:MOV [0890],R0 0826:NOP 0827:NOP 0828:RET (二)用”E”命令输入新指令 在命令行提示符状态下输入: >E826 0826: D400 0890 0891 7.用”G”命令运行程序 在命令行提示符状态下输入 >G820 然后用”D”命令察看运行结果 在命令行提示符状态下输入: >D890 屏幕将显示: 0890 0012 0891单元为0012,即为正确的运算结果. (9)设计一条符号扩展指令 1.指令功能 功能:DR 符号扩展→DR 2.指令格式 指令格式:D8 DR 0 3.设计分析 根据指令的功能和指令格式: (1)对寄存器保存的低位字节的8位有符号补码数进行逻辑左移操作,左移9位,空出的低位补0; (2)对其进行算术右移操作,右移9位,空出的高位用最高位(符号位)填补,这样即可将其扩展为16位的同值补码数; (3)结果仍保存在原寄存器中,完成指令功能; 4.微程序 100:R/C=8:0002 0400 8030 0000 101:DR→DR逻辑左移9次:0000 0806 F030 0208 102:R/C=8:0002 0400 8030 0000 103:DR→DR算术右移9次,CC#=0:0029 0F20 D030 0108 5.加载到微控存程序段 (一)用”A”命令输入加载微码的程序 在命令行提示符状态下输入: >A800 0800:MOV R1,900 ;微码在内存中的首地址 0802:MOV R2,4 ;微指令条数 0804:MOV R3,100 ;微码在微控存中的首地址 0806:LDMC ;加载微码指令 0807:RET 0808: (二)用”G”命令运行加载微码的程序 在命令行提示符状态下输入: >G800 微码便装入起始地址为100H的微控存中. 6.输入程序并运行新命令 (一)用”A”命令输入程序 在命令行提示符状态下输入: >A820 0820:MOV R9,00FF 0822:NOP 0823:RET (二)用”E”命令输入新指令 在命令行提示符状态下输入: >E822 然后输入以下内容: D890 7.察看运行结果 >G820 >R R9=FFFF 微程序控制器的设计与实现 目录 1设计目的 (3) 2设计内容 (3) 3具体要求 (3) 4设计方案 (3) 5 调试过程 (11) 6 心得体会 (12) 微程序控制器的设计与实现 一、设计目的 1)巩固和深刻理解“计算机组成原理”课程所讲解的原 理,加深对计算机各模块协同工作的认识 2)掌握微程序设计的思想和具体流程、操作方法。 3)培养学生独立工作和创新思维的能力,取得设计与调 试的实践经验。 4)尝试利用编程实现微程序指令的识别和解释的工作 流程 二、设计内容 按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。 三、设计要求 1)仔细复习所学过的理论知识,掌握微程序设计的思 想,并根据掌握的理论写出要设计的指令系统的微程 序流程。指令系统至少要包括六条指令,具有上述功 能和寻址方式。 2)根据微操作流程及给定的微指令格式写出相应的微 程序 3)将所设计的微程序在虚拟环境中运行调试程序,并给 出测试思路和具体程序段 4)尝试用C或者Java语言实现所设计的指令系统的加 载、识别和解释功能。 5)撰写课程设计报告。 四、设计方案 1)设计思路 按照要求设计指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻 址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。从而可以想到如下指令:24位控制位分别介绍如下: XRD :外部设备读信号,当给出了外设的地址后,输出此信号,从指定外设读数据。 EMWR:程序存储器EM写信号。 EMRD:程序存储器EM读信号。 PCOE:将程序计数器PC的值送到地址总线ABUS上。 EMEN:将程序存储器EM与数据总线DBUS接通,由EMWR 和EMRD决定是将DBUS数据写到EM中,还是 从EM读出数据送到DBUS。 IREN:将程序存储器EM读出的数据打入指令寄存器IR 和微指令计数器uPC。 EINT:中断返回时清除中断响应和中断请求标志,便于下次中断。 ELP: PC打入允许,与指令寄存器的IR3、IR2位结合,控制程序跳转。 MAREN:将数据总线DBUS上数据打入地址寄存器MAR。 MAROE:将地址寄存器MAR的值送到地址总线ABUS上。 OUTEN:将数据总线DBUS上数据送到输出端口寄存器OUT 里。 STEN:将数据总线DBUS上数据存入堆栈寄存器ST中。 RRD:读寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 RWR:写寄存器组R0-R3,寄存器R?的选择由指令的最低两位决定。 CN:决定运算器是否带进位移位,CN=1带进位,CN=0不带进位。 FEN:将标志位存入ALU内部的标志寄存器。 X2:X1:X0: X2、X1、X0三位组合来译码选择将数据送到DBUS上的寄存器。具体如下: X2 X1 X0 输出寄存器 0 0 0 IN_OE 外部输入门 0 0 1 IA_OE 中断向量 0 1 0 ST_OE 堆栈寄存器 0 1 1 PC_OE PC寄存器 计算机硬件课程设计 设计报告 学号: 姓名:成绩: 学号: 姓名:成绩: 东南大学计算机科学与工程系 二0 10 年11 月 一、设计名称: My CPU的设计 二、本设计的主要特色: 1、熟悉挂总线的逻辑器件的特性和总线传送的逻辑实现方法。 2、掌握半导体静态存储器的存取方法。 三、设计方案: 1. 数据格式——8位二进制定点表示 2. 指令系统——CPU的指令格式尽量简单规整,这样在硬件上更加容易实现。 7条基本指令:输入/输出,数据传送,运算,程序控制。 指令格式:Array 7 6 5 4 3 2 1 0 两种寻址方式: 寄存器寻址Array 7 6 5 4 3 2 1 0 直接地址寻址,由于地址要占用一个字节,所以为双字节指令。 7条机器指令: IN R目:从开关输入数据到指定的寄存器R目。 OUT R源:从指定的寄存器R源中读取数据送入到输出缓冲寄存器,显示灯亮。 ADD R目,R源:将两个寄存器的数据相加,结果送到R目。 JMP address : 无条件转移指令。 HALT : 停机指令。 LD R目,address : 从内存指定单元中取出数据,送到指定寄存器R 目。 ST address , R 源: 从指定的寄存器R源中取出数据,存入内存指定单元。 Address(内存地址) 3. CPU内部结构 4.数据通路设计 根据指令系统,分析出数据通路中应包括寄存器组、存储器、运算器、多路转换器等,采用单总线结构。 通用寄存器组: 运算器: 存储器: 多路转换器: 输出缓冲器: 5.控制器设计 控制通路负责整个CPU的运行控制,主要由控制单元和多路选择器MUX 完成。在每一个时钟周期的上升沿指令寄存器IR 从内存中读取指令字后,控制单元必须能够根据操作码,为每个功能单元产生相应主控制信号,以及对ALU 提供控制信号。对于不同的指令,同一个功能单元的输入不同,需要多路选择器MUX 来对数据通路中功能单元的输入进行选择。 第二章计算机指令集结构 知识点汇总: 指令集设计、堆栈型机器、累加器型机器、通用寄存器型机器、CISC、RISC、寻址方式、数据表示 简答题 1.增强CISC机器的指令功能主要从哪几方面着手?(CISC) (1) 面向目标程序增强指令功能。 (2) 面向高级语言和编译程序改进指令系统。 (3) 面向操作系统的优化实现改进指令系统。 2.简述CISC存在的主要问题。(知识点:CISC) 答:(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。 (2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。 3.简述RISC的优缺点及设计RISC机器的一般原则。(知识点:RISC) 答:(1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同。 (4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。 4.根据CPU内部存储单元类型,可将指令集结构分为哪几类?(知识点:堆栈型机器、累加器型机器、通用寄存器型机器) 答:堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 5.常见的三种通用寄存器型指令集结构是什么?(知识点:通用寄存器型机器) 答:(1)寄存器-寄存器型。 (2)寄存器-存储器型。 (3)存储器-存储器型。 1字符信息是符号数据,属于处理(非数值)领域的问题,国际上采用的字符系统是七单位的(ASCII)码。 2 根据操作数所在位置指出其寻址方式:操作数在指令中,为___立即 _______寻址方式,操作数地址在指令中,为___直接__________寻址方式。 3 双端口存储器和多模块交叉存储器属于并行存储器结构,其中前者采用(空间)并行技术,后者采用(时间)并行技术。 4 CPU从内存取出一条指令并执行该指令的时间称为(指令周期),它常用若干个(CPU周期)来表示。 5 计算机系统的层次结构从下至上可分为五级,即微程序设计级(或逻辑电路级)、一般机器级、操作系统级、(汇编语言)级、(高级语言)级。 6 十进制数在计算机内有两种表示形式:(字符串)形式和(压缩的十进制数串)形式。前者主要用在非数值计算的应用领域,后者用于直接完成十进制数的算术运算。 7 一个定点数由符号位和数值域两部分组成。按小数点位置不同,定点数有(纯小数)和(纯整数)两种表示方法。 8 对存储器的要求是容量大、速度快、成本低,为了解决这三方面的矛盾,计算机采用多级存储体系结构,即(cache)、(主存)、(外存)。 9 一个较完善的指令系统,应当有(数据处理)、(程序控制)、(数据传送)、(数据存储)四大类指令。 10 CPU中保存当前正在执行的指令的寄存器是(指令寄存器),指示下一条指令地址的寄存器是(程序计数器),保存算术逻辑运算结果的寄存器是(数据缓冲寄冲器)和(通用寄存器)。 11 在计算机术语中,将ALU控制器和(内存)存储器合在一起称为(主机)。 12 数的真值变成机器码时有四种表示方法,即(原码)表示法,(反码)表示法,(补码)表示法,(移码)表示法。 13 广泛使用的(SRAM )和(DRAM )都是半导体随机读写存储器。前者的速度比后者快,但集成度不如后者高。 14 反映主存速度指标的三个术语是存取时间、(存储周期)和(存储器带宽)。 15 CPU从(内存)取出一条指令并执行这条指令的时间和称为 (指令周期)。 16 RISC指令系统的最大特点是:只有(取数)指令和(存数)指令访问存储器。 17 直接使用西文键盘输入汉字,进行处理,并显示打印汉字,要解决汉字的(输入编码)、(汉字内码)和(字模码)三种不同用途的编码。 18. 形成操作数或指令地址的方式,称为___寻址方式__________。 19 主存储器的技术指标有(存储容量),(存取时间),(存储周期),(存储器带宽)。 《计算机组成原理》课程设计报告 ——微程序设计 指导老师:丁伟 学院:计算机学院 班级:软件 1501 姓名: 学号: 一、项目任务 本项目的任务是针对第2章所述的OpenJUC-II教学机模型机,设计控制器的微程序,实现该模型机的指令系统。通过课程设计理解指令的执行过程,指令系统与硬件的关系,进而加深对计算机的结构和工作原理的理解。 二、项目设计 本项目预期分为6个上机设计步骤: Day1:熟悉微程序的设计和调试方法 Day2:双操作数指令的设计与调试 Day3:条件转移指令的设计与调试 Day4:移位指令的设计与调试 Day5:堆栈相关指令的设计与调试 Day6:中断系统的设计与调试 通过上述实践步骤,初步达成微程序设计要求,针对不同产品提出的不同要求,通过编写相应符合的微程序汇编指令,达到预期效果和收益。 三、项目需求 OpenJUC-II模型机、Quartus II软件、虚拟实验板软件、Windows计算机、预先编写完成的.sof和.scc文件。 取指令字段 取目的操作数入口取源操作数 寄存器寻址入口 寄存器间接 寄存器自增间接 立即寻址 直接寻址 间接寻址 变址寻址 相对寻址 进入取目阶段 取目的操作数阶段 从微地址028至02F依次为寄存器寻址,寄 存器间接寻址,寄存器自增间接寻址,02B 为空,直接寻址,间接寻址,变址寻址,相 对寻址 进入执行阶段 从41开始为 MOV,ADD,ADDC,SUB,SUBB,AND,OR,XOR,CMP, TEST的入口地址 保存结果的控存 SAR,SHL,SHR,ROL,ROR,RCL,RCR控存 JC,JNC,JO,JNO,JZ,JNZ,JS,JNS控存 转移的控存 信息与电气工程学院 硬件描述语言课程设计 设计说明书 (数字式竞赛抢答器) ) 学生姓名 学号 班级 成绩 指导教师 通信工程系 年月日 信息与电气工程学院 课程设计评阅人评语 评阅人:(签名) 年月日评阅人评定成绩: 信息与电气工程学院 课程设计任务书 —学年第一学期 专业:通信工程学号:姓名: 课程设计名称:硬件描述性语言 设计题目:数字式竞赛抢答器 完成期限:自年月日至年月日共周 设计依据、要求及主要内容(可另加附页): 一般来说,设计一台智能抢答器,必须能够准确判断出第一位抢答者,并且通过数显、蜂鸣这些途径能让人们很容易得知谁是抢答成功者,并设置一定的回答限制时间,让抢答者在规定时间内答题,主持人根据答题结果实行增减分的操作,并将分数显示在屏幕上,评出最终赢家。所以我们在设计智能抢答器的模块需要满足鉴别、计时、计分、数显等功能。 定时抢答器的工作过程是:接通电源时,主持人将开关置于“清除”位置,抢答器处于禁止工作状态,编号显示器灭灯;抢答开始时,主持人将控制开关拨到“开始”位置,发光二极管灯亮,抢答器处于工作状态,这时,抢答器完成以下工作: (1)优先编码器电路立即分辨出抢答者编号,并由锁存器进行锁存,然后由译码显示电路显示编号; (2)扬声器发出短暂声响,提醒主持人注意; (3)控制电路要对输入编码电路进行封锁,避免其他选手再次进行抢答;(4)当选手将问题回答完毕,主持人操作计分开关,计分电路采用十进制加减计数器、数码管显示。本轮抢答完毕,主持人操作控制开关,使系统回复到禁止工作状态,以便进行下一轮抢答。 指导教师(签字):系主任(签字): 批准日期:年月日 一、基础知识(50分) 1、名词解释(10分) 机器字长 SRAM EPROM 指令系统 微指令 2、选择题(10分) 1)设字长32位,使用IEEE格式,则阶码采用______表示。 A.补码 B. 原码 C. 移码 D. 反码 2) 四片74181ALU和一片74182CLA器件相配合,具有如下进位传递功能______。 A.形波进位 B. 组内先行进位,组间先行进位 C.组内先行进位,组间行波进位 D. 组内形波进位,组间先行进位 3) 某SARM芯片,其存储容量为64K×16位,该芯片的地址线数目和数据线数目分 别是___。 A. 16, 16 B .16, 64, C. 64, 8 D. 64, 16 4)单地址指令中为了完成两个数的算术运算,除地址码指明的一个操作数外,另一个 数常需采用______。 A. 堆栈寻址方式 B. 立即寻址方式 C. 隐含寻址方式 D. 间接寻址方式微 5)程序控制器中,机器指令与微指令的关系是______。 A.每一条机器指令由一条微指令来执行 B. 一段机器指令组成的程序可由一条微指令执行 C. 一条微指令由若干条机器指令组成 D. 每一条机器指令由一段用微指令编成的微程序来解释执行 3、 填空题(10分) 1)存储___①___并按__②____顺序执行,这是冯?诺依曼型计算机的工作原理。 2) 相联存储器是按 ③ 访问的存储器。 3) 主存与cache 的地址映射有__④___、 ⑤ 、 ⑥ 三种方式。 4) 通常指令编码的第一个字段是 ⑦ 。 5) 异步通信方式可分为 ⑧ 、 ⑨ 、 ⑩ 三种类型。 4、问答题(20分) 1)在计算机中,为什么要采用多级结构的存储器系统 2)简述CPU 的功能. 3)试比较水平型微指令与垂直型微指令。 4)简述总线集中控制的优先权仲裁方式。 二、综合应用(50分) 1、已知X=-0.1101,Y=0.1011,试用补码一位乘法计算X ×Y (15分) 2、指令格式如下所示。OP 为操作码字段,试分析指令格式特点。 (10分) 3、某32位机共有微操作控制信号52个,构成5个相斥类的微命令组,各组分别包含4个,5个,8个15个可20个微命令,已知可判定的外部条件有CY 和ZF 两个,微指令字长29位。 (1)给出采用断定方式的水平型微指令格式 (2)控制存储器器的容量应为多少位? (10分) 4、某8位机采用单总线结构,地址总线16根(A 15~A 0, A 0为低位),双向数据总线8根 (D 7~D 0,,控制总线中与主存有关的有MREQ (允许访存,低电平有效),R/W (高电平 为读命令,低电平为写命令) 主存地址空间分配如下: 0~8191为系统程序区,由只读存储器芯片组成; 8192~32767为用户程序区;最后(最大地址)2K 地址空间为系统程序工作区,上述地址为十进制数,按字节编址,现有如下存储器芯片: ROM:8K ×8位(控制端仅有CS ) RAM(静态):16K ×1位,2K ×8位,4K ×8位,8K ×8位 请从上述芯片中选择适当芯片设计该计算机存储器,画出主存储器逻辑框图,注意画 出选片逻辑(可选用门电路及3:8译码器74LS138)与CPU 的连接,说明选哪些存储器芯片,选多少? 三、基础知识(50分) 1.选择题(10分) 1)在机器数______ 中,零的表示形式是唯一的。 A .原码 B .补码 C .移码 D .反码 2)主存贮器和CPU 之间增加cache 的目的是______。 A 解决CPU 和主存之间的速度匹配问题 15 10 7 3 2 0 偏移量(16位) 基值寄存器 源寄存器 OP (1) 设计一条指令,比较SR内容与[ADDR]. 若SR<[ADDR],则SR+[ADDR]->[ADDR]; 否则SR-[ADDR]->[ADDR]. 指令格式:D4 0 SR ADDR 设计分析: 100:把PC的值(即ADDR的地址)送到AR中,然后PC+1 101:用MEM->AR将ADDR从内存中取出并送到AR中 102:利用SR-MEM->Q计算SR与[ADDR]的差,并让各标志位接受ALU的运算结果,103:若S=1(即SR<[ADDR]),条件转移到105,否则顺序执行104 104:将Q的值(即SR-[ADDR])送到[ADDR]中 105:AR<[ADDR]时转移到此处,计算SR+[ADDR]并送到Q寄存器中 106:将Q寄存器的值送到[ADDR]中 微程序: 100H: PC->AR,PC+1->PC: 0000 0E00 A0B5 5402 101H: MEM->AR: 0000 0E00 10F0 0002 102H: SR-MEM->Q,接受标志: 0000 0E01 01D0 0080 103H: S=1(即AR<[ADDR])时,条件转移到105: 0041 43B0 9080 0000 104H: Q->MEM,CC#=0: 0029 0300 1020 0010 105H: SR+MEM->Q: 0000 0E00 00D0 0080 106H: Q->MEM,CC#=0: 0029 0300 1020 0010 A800 MOV R1,900 MOV R2,7 MOV R3,100 LDMC RET G800 A820 MOV R7,0001 MOV R1,0002 MOV [082A],R1 NOP NOP RET E826 D407 082A G820 U820 运行结果如下: 0820:2C70 0001 MOV R7, 0001 计算机硬件课程设计--简单模型机设计 计算机硬件综合课程设计报告 简单模型机设计 一、设计要求 硬件:TDN-CM+计算机组成原理实验系统一台,PC机一台,排线若干,串口线一根。 软件:CMP软件 二、设计目的 1.通过对一个简单计算机的设计,对计算机的基 本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。 2.通过这次课程设计,建立整机的概念,对程序 进行编辑,校验,锻炼理论联系实际的能力。 3.通过本次课程设计熟悉和训练设计思路与实 现方法。 4.通过本次课程设计锻炼团队合作的能力和团 队问题的解决。 三、设计电路及连线 设计电路及连线实验图如下图1-1所示。 图1-1 简单模型机连线图 四、设计说明 本次课程设计将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,计算机数据通路的控制将由微程序控制器 来完成,CPU 从内存中取出一条机器指令到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。 本次课程设计采用五条机器指令:IN (输入)、ADD (二进制加法)、STA (存数)、OUT (输出)、JMP (无条件转移),其指令格式如下(前4位为操作码): 助记符 机器指令码 说 明 微程序入口地址 IN 0000 0000 “INPUT DEVICE ”中 10 的开关状态→R0 0001 0000 ×××× ×××× R0+[addr]→R0 11 0010 0000 ×××× ×××× R0→[addr] 12 0011 0000 ×××× ×××× [addr]→BUS 13 0100 0000 ×××× ×××× addr →PC 14 ADD addr STA 题目:模型计算机系统的设计与实现学生姓名: 学院: 班级: 指导教师: 2010年1 月8 日 内蒙古工业大学课程设计(论文)任务书 课程名称:计算机组成与结构课程设计学院:信息工程学院班级:计07-_3班__ 学生姓名:武宝全 _ 学号: 200710210023 指导教师:董志学王晓荣邢红梅 摘要 本次课程设计要求设计实现一个简单8位模型计算机系统,包括用可编程器件实现的运算器,微程序控制器,存储器,简单输入/输出接口和设备,时序和启停控制等电路。通过自己定义的一套指令系统,主要实现算术A加B,A+/B运算,逻辑A·B,置B运算,输入指令,输出指令和存储器存数指令。由微程序控制器按照微指令格式给出下地址,并将结果存入存储器。用Protel电路设计软件画出所设计的模型机系统的电路原理图,包括运算器,微程序控制器,存储器、简单输入/输出设备、时序和启停等电路。用可编程器件EPM7123实现运算器,并借助MAXPLUSII软件实现其功能。在QDKJ-CMH-CPLD试验平台上调试并进行验证。 关键字:微程序、控制器、存储器、 引言 通过俩周的组成与结构设计,设计一个8位模型计算机系统,包括用可编程器件实现的运算器,微程序控制器,存储器,简单输入/输出接口和设备,时序和启停控制等电路。设计工作是在之前的验证实验基础之上完成的,通过自己的思维,实现微程序机的一些基本的逻辑运算。根据现有的二进制指令系统,条件为模型计算机系统为8位模型机,运算器为8位运算器,数据总线和地址总线都为8位,输入设备为8位开关,输出设备为8位发光二级管指示灯。在现有的芯片内烧制自行设计的微指令,达到在输入一个数据后自加,减一,实现自行跳转。 在设计完成后,再输入数据04后得出07的结果,并实现跳转。 嵌入式课程设计电子词典硬件设计 ————————————————————————————————作者:————————————————————————————————日期: 上海电力学院 嵌入式系统 课程设计报告 题目:电子词典的设计 姓名: 学号: 院系: 专业年级: 同组成员: 年月日 一、实验内容及要求 在LCD屏幕左侧绘制出单词输入框和释义显示框以及一个搜索键,右侧绘制4*4键盘按钮,模拟出简易电子词典的功能,按钮操作用触摸屏或键盘实现均可。 实现功能: (1)LCD屏幕上显示4*4键盘,显示单词及其翻译、例句。 (2)一个键可完成2个英文字母的输入,如左上角第一个键可实现输入a,b两个字母,第一次按下时为输入a,如果需输入b,只需连续快速按键两次即可。 (3)在输入完单词后,点击搜索键,即可在释义显示框中显示该单词的词性、中文解释、示例词组和句子等。 (4)当发现输入的单词在库中不存在时,可实现将该单词添加入库的操作。 二、设计思路 (1)通过LCD显示模块画出电子词典操作界面。 (2)对应界面中各键的位置设置键盘对应键值。 (3)设定功能键,实现以下3个功能:①退格键:删除最后一位字母;②搜索∕保存键:对输入框的单词进行判断,若单词存在于词库中,则显示单词词性、词义、例句;若单词不存在则自动进行保存;③转换键:按下后,字母键输出对应的第二个字母。 (4)按键后赋值并显示。 三、软件构架 开 LCD模块 键盘 结 四、模块分析 (1)键盘模块 流程图: 源代码:/********************************************************************************************* * File : keyboard.c * Author: embest * Desc : keyboard source code * History: *********************************************************************************************/ /*--- include files ---*/ 开键盘初始键盘是Y 读取是否是功Y N 执行赋显结束 N 第2章计算机指令集结构设计 1. 通常可按哪5个因素对计算机指令集结构进行分类? (1) 在CPU中操作数的存储方法。 (2) 指令中显式表示的操作数个数。 (3) 操作数的寻址方式。 (4) 指令集所提供的操作类型。 (5) 操作数的类型和大小。 2. 在对计算机指令集结构进行分类的5个因素中,哪一种是各种指令集结构之间最主要的区别? CPU中操作数的存储方法,即在CPU中用来存储操作数的存储单元的类型,是各种指令集结构之间最主要的区别。 3. 根据CPU内部存储单元类型,可将指令集结构分为哪几类? 堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。 4. 堆栈型指令集结构、累加器型指令集结构和通用寄存器型指令集结构分别有什么 5. 现代大多数机器均采用通用寄存器型指令集结构,为什么? 主要有两个方面的原因,一是寄存器和CPU内部其他存储单元一样,要比存储器快;其次是对编译器而言,可以更加容易、有效地分配和使用寄存器。 6. 通用寄存器型指令集结构可细分为哪三类? 寄存器-寄存器型。 寄存器-存储器型。 存储器-存储器型。 7. 三种通用寄存器型指令集结构分别有什么优缺点? 8. 从当前的计算机技术观点来看,CISC结构有什么缺点? (1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。 (2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。 9. 增强CISC机器的指令功能主要从哪几方面着手? (1) 面向目标程序增强指令功能。 (2) 面向高级语言和编译程序改进指令系统。 (3) 面向操作系统的优化实现改进指令系统。 10. RISC的设计原则是什么? (1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同。 (4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。 11. RISC和CISC处理机的指令系统结构在指令格式、寻址方式和每条指令的周期数(CPI)三方面有哪些区别? 12. 计算机指令集结构设计所涉及的内容有哪些? (1) 指令集功能设计:主要有RISC和CISC两种技术发展方向。 (2) 寻址方式的设计。 (3) 操作数表示和操作数类型。 (4) 寻址方式的表示:可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。 (5) 指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式三种。 计算机硬件课程设计---基于微程序的复杂模型机设计 一、实验题目: 设计一台有微程序控制的8位模型机,指令系统要求达到10条指令以上。 二、实验目的: (1)在掌握部件单元电路实验的基础上,进一步将其组成系统,构造一 台复杂模型计算机,建立一台基本完整的整机。 (2)为其定义至少十条机器指令,并编写相应的微程序,通过联机调试,观察计算机执行指令:从取指令、指令译码、执行指令等过程中数据通路内数据的流动情况,进一步掌握整机概念。 三、实验设备: TDN-CM+教学实验系统一套、PC微机一台 四、实验原理与指令设计: (1)实验原理: ①数据格式 模型机规定数据采用定点整数补码表示,字长为8位,其格式如下: 其中,第7位为符号位,数值表示范围是-27 ≤X≤27-1 ②机器指令格式 单字节指令寻址方式采用寄存器直接寻址,其格式如下: 双字节指令采用直接寻址,其格式如下 其中,OP-CODE为操作码,RS为源寄存器,RD为目标寄存器,并规定: ③微指令格式: 其中,A、B、C三个字段的编码方案如下表: WE,A9,A8三个字段编码方案如下: 运算器逻辑功能表 (2)指令设计: 模型机可设计4大类指令共16条,其中包括算术逻辑指令、访存指令、控制转移指令、I/O指令、停机指令。我们设计的十条指令 机器指令的微操作流程图如下 0 1 代码文件名为test.txt,其内容如下:$P0000 ; IN R0 $P0112 ; MOV R0,R2 $P0221 ; MOV R1,0 $P0300 $P0438 ; LOAD R0,[50] $P0550 $P0641 ; ADD R0,R1 $P0752 ; SUB R2,1 $P0801 $P0960 ; JZ NEXT2 $P0A0D $P0B70 ; JMP NEXT1 $P0C04 $P0D80 ; OUT R0 $P0E90 $P0F40 ; STOR R1,[40] $M00018001 ;00->01 $M0101ED82 ;PC->AR,PC+1 $M0200C050 ;RAM->BUS,BUS→IR $M10001001 ;INPUT->R0 $M11019201 ;RS->RD $M1201ED83 ;PC->AR,PC+1 $M03009001 ;RAM->BUS,BUS->R1 微程序控制器的设计与实现 一、设计目的 1、巩固和深刻理解“计算机组成原理”课程所讲解的原理, 加深对计算机各模块协同工作的认识。 2、掌握微程序设计的思想和具体流程、操作方法。 3、培养学生独立工作和创新思维的能力,取得设计与调试的 实践经验。 4、尝试利用编程实现微程序指令的识别和解释的工作流程。 二、设计内容 按照要求设计一指令系统,该指令系统能够实现数据传送,进行加、减运算和无条件转移,具有累加器寻址、寄存器寻址、寄存器间接寻址、存储器直接寻址、立即数寻址等五种寻址方式。 三、设计具体要求 1、仔细复习所学过的理论知识,掌握微程序设计的思想,并根、 据掌握的理论写出要设计的指令系统的微程序流程。指令系统至少要包括六条指令,具有上述功能和寻址方式。 2、根据微操作流程及给定的微指令格式写出相应的微程序 3、将所设计的微程序在虚拟环境中运行调试程序,并给出测试思 路和具体程序段 4、撰写课程设计报告。 四、设计环境 1、伟福COP2000型组成原理实验仪,COP2000虚拟软件。 2、VC开发环境或者Java开发环境。 五、设计方案 (1)设计思想 编写一个指令系统,根据所编写的指令的功能来设计相应的微程序。首先利用MOV传送指令来给寄存器和累加器传送立即数,实现立即数寻址;利用寄存器寻址方式,用ADDC指令对两者进行相加运算;利用寄存器间接寻址方式,用SUB指令实现减运算;利用累加器寻址方式,用CPL指令实现对累加器寻址;利用存储器寻址方式,用JMP 指令实现程序的无条件跳转。这样,所要设计的指令系统的功能就全部实现了。 (2)微指令格式 采用水平微指令格式的设计,一次能定义并执行多个并行操作微命令的微指令,叫做水平型微指令。其一般格式如下: 按照控制字段的编码方法不同,水平型微指令又分为三种:全水平型(不译法)微指令,字段译码法水平型微指令,以及直接和译码相混合的水平型微指令。 (3)24个微指令的意义 COP2000 模型机包括了一个标准CPU 所具备所有部件,这些部件包括:运算器ALU、累加器A、工作寄存器W、左移门L、直通门D、右 计算机科学与技术学院 硬件课程设计报告 姓名:学号: 专业:计算机科学与技术 班级:计科班 设计题目:电子计算器 成员: 指导教师:职称: 年月 课程设计指导教师评阅书指导教师评语: 成绩:指导教师签字: 年月 摘要 电子计算器的设计主要分为键盘扫描与读取编码、七段LED数码管显示和四则运算的编写。这次设计中我们采用可编程接口芯片8255链接4*4键盘和LED显示屏,从键盘扫描读入数字,在显示屏上面显示出来,并通过cpu运算出结果显示在屏幕上。由于对汇编语言也不甚了解,只是进行一些简单的自然数的四则运算。 由于本次实验中,实验箱是TPC-ZK综合微机开放式实验系统,微机接口实验仪采用模块化、积木式的结构,各实块互不影响。但可通过连线将各实验模块有机组合起来,进行微机外围接口实验。这个实验选择的是4*4键盘连接上8255A然后控制LED显示。 关键词:8255A ;七段LED数码管;键盘;汇编语言;四则运算 目录 1 设计任务与要求 (3) 1.1选题 (3) 1.2需求分析 (3) 1.3设计任务 (3) 2硬件方案 (3) 2.1微处理器8086芯片 (3) 2.2 可编程并行接口8255A芯片 (4) 2.3 4*4矩阵键盘 (6) 2.4 七段LED数码管 (7) 2.5 电路及其功能模块图 (8) 3软件方案 (10) 3.1流程图 (10) 3.2源程序代码 (11) 4 问题与解决方案 (26) 5 成果展示 (26) 6 总结 (27) 7 心得体会与收获 (27) 8参考文献 (27) 1 设计任务与设计要求 1.1选题 我选的题目是电子计算器,电子计算器的设计主要分为键盘编码、七段数码管显示、和四则运算法则这三部分。设计时用可编程接口芯片8255A链接4*4键盘和七段LED数码管,8255扫描键盘并通过数码管显示相应的数字,这其中需要一定的汇编程序作为核心支撑,才能正确的使各种功能运行正常。 1.2需求分析 通过对选题的深入了解,电子计算器基本功能可以概括为: 1.可以进行简单的加、减、乘、除四则运算; 2.为了显示的人性化,按下每个数字都要进行反馈显示; 3.数码管只有四位显示,运算数和结果应尽量小于四位数,不然显示不全; 4.计算器能判断个别简单的错误,如除数为零,显示报错; 5.计算器要有清零功能,可以在按键失误后重新按键。 在显示屏上可以及时反馈按下数字,这需要扫描程序模块一直运行着,并能够及时调用显示程序模块,当有运算符号按下时还要及时给之前按下的数字进行组装成一个数值,组装键值模块也是程序的重要所在。等等这些都是在主程序下合理安排、运用流畅的,才能带来较完美的计算器体验。 1.3设计任务 本次实验我分为电路设计和编码设计这两个任务模块来设计的。 电路设计主要研究键盘按键位置设计和各个芯片器件之间的连线。 编码设计主要分为键盘扫描读取编码、七段数码管显示编码和四则运算编码。 2 硬件方案 2.1微处理器8086芯片 计算机硬件课程设计报告 复杂模型机设计 一、实验目的 经过一系列硬件课程的学习及相关实验后,做一个综合的系统性的设计,这在硬件方面是一个提高,进一步培养实践能力。 二、实验原理 搭建一台8位模型机,指令系统要求有10条以上,其中包括运算类指令、传送类指令、控制转移类指令、输入输出指令、停机指令等。 三、实验思路 1、确定设计目标:确定所设计计算机的功能和用途。 2、确定指令系统:确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式。 3、确定总体结构与数据通路:总体结构设计包含确定各部件设置以及它们之间的数据通路结构,列出各种信息传送路径以及实现这些传送所需要的微命令。 4、设计指令执行流程:数据通路确定后,就可以设计指令系统中每条指令的执行流程。根据指令的复杂程度。每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需要考虑哪些微操作可以安排在同一个微指令中。 5、确定微程序地址:根据后续微地址的形成方法,确定每条微程序地址及分支转移地址。 6、根据微指令格式,将微程序流程中的所有微操作进行二进制代码化,写入到控制存储器中的相应单元中。 7、组装、调试:在总装调试前,先按功能模块进行组装和分调,因为只有功能模块工作正常后,才能保证整机的运行正确。 四、实验原理 1.指令系统及指令格式: 指令系统应包括:算术逻辑运算指令、访存指令、控 制转移指令、I/O指令、停机指令。 一般指令格式: 指令系统如: ADD RS,RD MOV DATA,RD MOV RS,[ADDR] JZ ADDR IN RD HALT 其中RS 、RD为R0、R1、R2中之一,DATA为立即数,ADDR 为内存地址。 2.指令微操作流程Array 3.微指令格式 1 关于此次课程设计 1.1 课程设计目的 本课程设计是计算机科学与技术专业重要的实践性教学环节之一,是在学生学习完《计算机组成原理》课程后进行的一次全面的综合设计。目的是通过一个完整的8位指令系统结构(ISA)的设计和实现,加深对计算机组成原理课程内容的理解,建立起整机系统的概念,掌握计算机设计的基本方法,培养学生科学的工作作风和分析、解决实际问题的工作能力。 1.2课程设计内容及要求 基于TDN-CM++计算机组成原理实验教学系统,设计和实现一个8位指令系统结构(ISA),通过调试和运行,使设计的计算机系统能够完成指定的功能。 设计过程中要求考虑到以下各方面的问题: (1)指令系统风格(寄存器-寄存器,寄存器-存储器,存储器-存储器); (2)数据类型(无符号数,有符号数,整型,浮点型); (3)存储器划分(指令,数据); (4)寻址方式(立即数寻址,寄存器寻址,直接寻址等); (5)指令格式(单字节,双字节,多字节); (6)指令功能类别(算术/逻辑运算,存储器访问,寄存器操作,程序流控制,输入/输出)。 要求学生综合运用计算机组成原理、数字逻辑和汇编语言等相关课程的知识,理解和熟悉计算机系统的组成原理,掌握计算机主要功能部件的工作原理和设计方法,掌握指令系统结构设计的一般方法,掌握并运用微程序设计(Microprogramming)思想,在设计过程中能够发现、分析和解决各种问题,自行设计自己的指令系统结构(ISA)。 2 分析阶段 2.1 微指令格式分析 微指令格式如下表: 表2-1 微代码定义 (1)字段24~19控制运算器的控制端,通过改变S3~CN来决定对数据进行何种算术或逻辑运算。本设计中全部为正逻辑运算。 (2)字段18为控制对主存W/R的开关 Y1、Y2进行选择。 (4)字段15~7为A、B、C三个开关控制端。 复杂模型机设计实验 专业:软件工程 班级:1000505 组员: 组员: 一、实验目的 综合运用所学计算机组成原理知识,设计并实现较为完整的计算机。 二、实验设备 PC机一台,TD-CMA实验系统一套。 三、实验原理 下面讲述一下模型计算机的数据格式及指令系统。 1.数据格式 模型机规定采用定点补码表示法表示数据,字长为8位,8位全用来表示数据(最高位不表示符号),数值表示范围是: 0≤X≤28-1。 2.指令设计 模型机设计三大类指令共十五条,其中包括运算类指令、控制转移类指令,数据传送类指令。运算类指令包含三种运算,算术运算、逻辑运算和移位运算,设计有6条运算类指令,分别为:ADD、AND、INC、SUB、OR、RR,所有运算类指令都为单字节,寻址方式采用寄存器直接寻址。控制转移类指令有三条HLT、JMP、BZC,用以控制程序的分支和转移,其中HLT为单字节指令,JMP和BZC为双字节指令。数据传送类指令有IN、OUT、MOV、LDI、LAD、STA共6条,用以完成寄存器和寄存器、寄存器和I/O、寄存器和存储器之间的数据交换,除MOV指令为单字节指令外,其余均为双字节指令。 3.指令格式 其中, IN和 OP-CODE为操作码,RS为源寄存器,RD为目的寄存器,P为I/O端口号,占用一个字节。 系统设计五种数据寻址方式,即立即、直接、间接、变址和相对寻址,LDI 指令为立即寻址,LAD、STA、JMP和BZC指令均具备直接、间接、变址和相对寻 址能力。 LDI LAD、 其中M。 表5-3-2 寻址方式 4.指令系统 根据模型机所要完成的功能设计自己的指令系统。列出了各条指令的格式、汇编符号、指令功能。 四、总体设计 本模型机的数据通路框图如图5-3-2所示。 计算机硬件技术基础课程设计 电子琴设计 学院名称:自动化学院 学院名称:自动化学院 专业:自动化专业班级: ******** 学号: 2011**** : **** 学号: 2011**** : ****** 学号: 2011**** : ****** 学号: 2011**** : **** 评分:教师: **** 目录 目录...................................................................... I 摘要.................................................................... II 1 电子琴设计原理......................................................... - 0 - 1.1音阶频率对应关系................................................. - 0 - 1.2音阶对应频率所转换的十进制数..................................... - 0 - 2 软件设计总体方案及流程图............................................... - 1 - 2.1键盘扫描程序:................................................... - 1 - 2.2功能转移程序:................................................... - 1 - 2.3琴键处理程序:................................................... - 1 - 2.4自动播放歌曲程序:............................................... - 1 - 2.5 简要流程图....................................................... - 2 - 2.6 简要流程图(子程序)............................................. - 3 - 3 硬件电路介绍........................................................... - 4 - 3.1 8255A简介....................................................... - 4 - 3.2 8254简介........................................................ - 4 - 3.3 键盘简介......................................................... - 5 - 3.4 扬声器控制模块................................................... - 6 - 3.5 系统电路图....................................................... - 6 - 3.6 实物电路图接线................................................... - 7 - 3.7 按键操作说明..................................................... - 7 - 4 总结................................................................. - 8 - 5 附录................................................................. - 9 - 5.1心得体会......................................................... - 9 - 5.1.1 心得体会():.............................................. - 9 - 5.1.2 心得体会():............................................. - 10 - 5.1.3 心得体会():............................................. - 11 -计算机组成原理课程设计(微程序)报告
计算机硬件课程设计报告(cpu设计)
吉林大学 计算机系统结构题库 第二章
计算机组成原理习题(1)
计算机组成原理课程设计微程序设计
硬件描述语言课程设计报告
计算机组成原理样卷及答案
微指令设计
计算机硬件课程设计--简单模型机设计
模型计算机系统的设计与实现
嵌入式课程设计电子词典硬件设计
计算机体系结构问答题第2章
计算机硬件课程设计——基于微程序的复杂模型机设计
微程序控制器的设计与实现
硬件课程设计报告(电子计算器)
计算机硬件课程设计报告——复杂模型机设计
计算机组成原理设计(十条指令)
硬件课程设计报告 南理工
计算机硬件课程设计电子琴设计说明