基本模型机的设计与实现课程设计报告
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
时序控制电路:4D触发器74ls175*1组成移位寄存器电路。
(3)设计主存储器
主存电路的组成:6264存储器(8K*8位)*3,地址寄存器:74ls273*1,三态门:74ls245*1。
2、微控制设计
(1)实现存储器读操作;
拨动总清开关后,置控制开关SWC、SWA为“0 0”时,按要求连线后,连续按动“启动运行”开关,可对主存储器RAM连续手动读操作。
06 0B;地址
07 40 JMP [00H];00H→PC
08 00;跳转地址
0A 01;加数,可自定
0B;求和结果保存在0B单元
2.连接实验线路
3.写程序
对于本实验箱可以用两种方法来写入程序。
方法一:联机读/写程序
按照规定格式,将机器指令及表2-2微指令二进制表编辑成十六进制的规定格式文件。微指令格式中的微指令代码为将表2-2中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。
(2)使用控制台WRITE和READ微程序进行机器指令程序的装入和检查,其操作如下:
A.使SIGNAL UNIT单元的SP03为“STEP”状态,SP04为“RUN”状态,CONTROLUNIT的开关SP05处于“NORM”状态,开关SP06处于“RUN”状态。
B.拨动开关单元的总清开关CLR(1à0à1),微地址寄存器清零,程序计数器清零。然后使开关单元的SWB、SWA开关设置为“01”,按动一次控制台单元的触动开关START,微地址显示灯显示“010001”,再按动一次START,微地址灯显示“010100”,此时数据开关的内容(输入单元)置为要写入的机器指令的内容,按动两次START键后,即完成该条指令的写入。若仔细阅读WRITE的流程,就不难发现,机器指令的首地址总清后为零,以后每个循环PC会自动加1。所以,每次按动START,只有在微地址灯显示“010100”时,才设置内容,直到所有机器指令写完。
6、基本模型机监控软件的设计
本模型机监控软件设计主要完成从输入设备读入数据,进行简单算术运算后,将结果存入内存的某个单元,最后通过输出设备输出结果。
监控软件详细如下:
地址内容助记符说明
0000 0000 0000 0000 IN;“INPUT DEVICE” →R0
0000 0001 0001 0000 ADD[0AH];R0+[0AH] →R0
3、机器指令设计
(1)输入指令:in;输入外部开关量的状态,送入寄存器R0。
(2)二进制加法指令:add addr;
(3)存数指令:sta addr;
(4)输出指令:out addr;
(5)无条件转移指令:jmp addr;
三、设计电路原理图(说明各器件的功能作用)
设计电路原理图如图1所示:
图l数据通路框图
3、指令寄存器介绍
指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器,然后再传送到指令寄存器。指令划分为操作码和地址码字段,由二进制构成,为了执行任何一条给定的指令,必须对操作码进行测试P(1),通过节拍脉冲T4的控制以便识别所要求的操作。“指令译码器”根据指令的操作码进行译码,强置微控制单元的微地址,使下一条微指令指向相应的微程序首地址。
参考程序一的机器指令:
$P0000
$P0120
$P0208
$P0330
$P0408
$P0540
$P0600
参考程序二的机器指令:
设计机器指令程序如下(机器码和地址为十六进制数据)。
地址内容助记符说明
00 00 IN;输入开关数据→R0,采集数据
01 10 ADD [0AH];R0+[0AH]→R0,输入数据与指定数据相加
02 0A;地址
03 20 STA [0BH];R0→[0B]
04 0B;地址
05 30 OUT [0BH];[0BH] →BUS,输出显示
uA1
uA0
A字段
B字段
P字段
15
14
13
控制信号
12
11
10
控制信号
9
8
7
控制信号
0
0
0
0
0
0
0
0
0
0
0
1
LDRI
0
0
1
RS_G
0
0
1
P1
0
1
0
LDDR1
0
1
0
0
1
0
0
1
1
LDDR2
0
1
1
0
1
1
1
0
0
LDIR
1
0
0
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU_G
1
0
1
1
1
0
LDAR
1
1
0
PC_G
1
1
0
LDPC
存储器写操作:拨动总清开关后,置控制开关SWC、SWA为“0 1”时,按要求连线后,再按动“启动运行”开关,可对主存储器RAM连续手动写入。
运行程序:拨动总清开关后,置控制开关SWC、SWA为“1 1”时,按要求连线后,再按动“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。
上述三条控制指令用两个开关SWC、SWA的状态来设置,其定义如下:
SWC
SWA
控制台指令
0
0
1
0
1
1
读内存
写内存
启动程序
根据以上要求设计数据通路框图,如图1所示。微代码定义如表1所示。
表1基本模型机微指令结构图
微程序
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
控制信号
S3
S2
S1
S0
M
CN
RD
M17
M16
A
B
P
uA5
uA4
uA3
uA2
1、有关微控制器部分在算术运算实验中以详细介绍。
2、处存储器的读、写和运行
为了想主存储器的RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序。
存储器读操作:拨动总清开关后,置控制开关SWC、SWA为“0 0”时,按要求连线后,连续按动“启动运行”开关,可对主存储器RAM连续手动读操作。
当全部微程序设计完毕后,应将每条微指令代码化,表2即为图2的微程序流程图按微指令格式转化而成的“二进制微代码表”。
图2微程序流程图
表2二进制代码表
本系统有两种外部I/O设备,一种是二进制数码开关,作为输入设备(INPUT);另一种是两位十六进制数LED数码管,作为输出设备(OUTPUT UNIT)。在输入时,二进制开关数据直接经过三态门送到总线上。只要开关状态不变,输入的信息也不变。输出时,将输出数据送到数据总线上,当写信号(WE)有效时,将数据打入输出锁存器,驱动数码块显示。
4、输入/输出设备
本系统有两种外部I/O设备,一种是二进制代码开关KD0~KD7,它作为输入设备INPUT;另一种是数码显示块,它作为输出设备OUTPUT。例如:输入时,二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到外部数据总线上,当写信号(W/R)有效时,将数据打入输入锁存器,驱动数码块显示。
STA addr 0010 0000 ×××× ××××;R0→[addr]
OUT addr 0011 0000 ×××× ××××;[addr] →BUS
JMP addr 0100 0000 ×××× ××××;[ADDR] →PC
说明:
指令IN为单字节指令,其余均为双字节指令,××××××××addr对应的主存储器二进制地址码。
(2)实现存储器写操作;
拨动总清开关后,置控制开关SWC、SWA为“0 1”时,按要求连线后,再按源自文库“启动运行”开关,可对主存储器RAM连续手动写入。
(3)实现程序运行操作。
拨动总清开关后,置控制开关SWC、SWA为“1 1”时,按要求连线后,再按动“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。
地址内容助记符说明
00 00 IN;输入开关数据→R0
01 20 STA [08H];R0→[08]
02 08;地址
03 30 OUT [08H];[08H] →BUS
04 08;地址
05 40 JMP [00H];00H→PC
06 00;跳转地址
参考程序二:
本程序从输入设备(数码开关)读入数据,与0A单元的数据相加,然后送到输出设备(LED数码管)进行显示。本程序不断地循环运行,在运行中可改变输入开关(INPUT)的值,观察输出显示的变化。
使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。其中参考程序一对应的文件名为“基本模型机1.TXT”,参考程序二对应的文件名为“基本模型机2.TXT”(联机软件的使用方法参看附录2)。
方法二:手动写入
(1)先将机器指令对应的微代码正确地写入28C16中,由于在实验1.7微程序控制器的组成与微程序设计实验中已将微代码写入E2PR0M芯片中,对照表2-5校验正确后就可使用。
C.校验。拨动SWITCH单元的总清开关CLR(1à0à1),微地址清零。PC程序计数
器清零,然后使SWITCH单元的开关SWB、SWA为“00”,按动CONTROL UNIT的触动开关START,微地址灯将显示“010000”,再按START,微地址灯显示为“010010”,第三次按START,微地址灯显示为“010111”,再按START后,此时OUTPUT单元的数码管显示为该首地址中的内容。不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。每次在微地址灯显示为“010000”时,是将当前地址中的机器指令写入到输出设备中显示。
二、设计方案
1、硬件设计
(1)设计微程序控制电路
微程序控制器的组成:控制存储器:EPROM2816*3,8D触发器74ls273*2,4D触发器74ls74*3;微指令寄存器格式:18位微指令,6位微地址。
(2)设计时钟信号源和时序控制电路
时钟信号源的组成:时基电路555,可触发单稳态多谐振荡器74ls237*2,输出频率为330-580Hz的方波信号。
0000 1000 0000 0000
0000 1001
0000 1010 0000 0001;自定义参加运算的数
0000 1011;求和结果存放单元
五、实验步骤
1.根据该模型机的指令系统,编写一段程序。这里给出两个参考程序。
参考程序一:
本程序从输入设备(数码开关)取入数据,保存在内存单元08,然后从08单元送到输出设备(LED数码管)进行显示。每次循环过程中,可以使输入设备数据改变,考察输出显示的结果(请实验者考虑:如何修改程序,使程序只执行一次从输入设备取出数据,送出输出设备显示)。设计机器指令程序如下(机器码和地址为十六进制数据)。
基本模型机的设计与实现课程设计报告
http://blog.csdn.net/maria87328/archive/2008/01/13/2041130.aspx
一、实验基本任务
1、由基本单元电路构成一台基本模型机。
2、设计五条机器指令,并编写相应的微程序。
3、调试指令和模型机使其在微程序的控制下自动产生各部件单元的控制信号正常工作。
5、设计指令
根据基本模型机的硬件设计五条机器指令:外部输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。指令格式入下:
助记符机器指令码说明
IN 0000 0000;“外部开关量输入”KD0~KD7的开关状态→R0
ADD addr 0001 0000 ×××× ××××;R0+[addr] →R0
0000 0010 0000 1010
0000 0011 0010 0000 STA[0BH];R0→[0BH]
0000 0100 0000 1011
0000 0101 0011 0000 OUT[0BH];[0BH] →BUS
0000 0110 0000 1011
0000 0111 0100 0000 JMP[00H];00H→PC
四、系统原理图(说明整机的工作过程)
系统原理图如附图1所示。
部件实验过程中,各部件单元的控制信号是认为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,实验计算机数据通路的控制将由微程序控制器开完成,CPU从内存中取出一条机器只到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
系统涉及到的微程序流程见图2,当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。由于“取指令”微指令是所有微程序都使用的公用微指令,因此P1的测试结果出现多路分支。本机用指令寄存器的高4位(I7—I4操作码)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P4测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用一个微地址单元随意填写。
(3)设计主存储器
主存电路的组成:6264存储器(8K*8位)*3,地址寄存器:74ls273*1,三态门:74ls245*1。
2、微控制设计
(1)实现存储器读操作;
拨动总清开关后,置控制开关SWC、SWA为“0 0”时,按要求连线后,连续按动“启动运行”开关,可对主存储器RAM连续手动读操作。
06 0B;地址
07 40 JMP [00H];00H→PC
08 00;跳转地址
0A 01;加数,可自定
0B;求和结果保存在0B单元
2.连接实验线路
3.写程序
对于本实验箱可以用两种方法来写入程序。
方法一:联机读/写程序
按照规定格式,将机器指令及表2-2微指令二进制表编辑成十六进制的规定格式文件。微指令格式中的微指令代码为将表2-2中的24位微代码按从左到右分成3个8位,将此三个8位二进制代码化为相应的十六进制数即可。
(2)使用控制台WRITE和READ微程序进行机器指令程序的装入和检查,其操作如下:
A.使SIGNAL UNIT单元的SP03为“STEP”状态,SP04为“RUN”状态,CONTROLUNIT的开关SP05处于“NORM”状态,开关SP06处于“RUN”状态。
B.拨动开关单元的总清开关CLR(1à0à1),微地址寄存器清零,程序计数器清零。然后使开关单元的SWB、SWA开关设置为“01”,按动一次控制台单元的触动开关START,微地址显示灯显示“010001”,再按动一次START,微地址灯显示“010100”,此时数据开关的内容(输入单元)置为要写入的机器指令的内容,按动两次START键后,即完成该条指令的写入。若仔细阅读WRITE的流程,就不难发现,机器指令的首地址总清后为零,以后每个循环PC会自动加1。所以,每次按动START,只有在微地址灯显示“010100”时,才设置内容,直到所有机器指令写完。
6、基本模型机监控软件的设计
本模型机监控软件设计主要完成从输入设备读入数据,进行简单算术运算后,将结果存入内存的某个单元,最后通过输出设备输出结果。
监控软件详细如下:
地址内容助记符说明
0000 0000 0000 0000 IN;“INPUT DEVICE” →R0
0000 0001 0001 0000 ADD[0AH];R0+[0AH] →R0
3、机器指令设计
(1)输入指令:in;输入外部开关量的状态,送入寄存器R0。
(2)二进制加法指令:add addr;
(3)存数指令:sta addr;
(4)输出指令:out addr;
(5)无条件转移指令:jmp addr;
三、设计电路原理图(说明各器件的功能作用)
设计电路原理图如图1所示:
图l数据通路框图
3、指令寄存器介绍
指令寄存器用来保存当前正在执行的一条指令。当执行一条指令时,先把它从内存取到缓冲寄存器,然后再传送到指令寄存器。指令划分为操作码和地址码字段,由二进制构成,为了执行任何一条给定的指令,必须对操作码进行测试P(1),通过节拍脉冲T4的控制以便识别所要求的操作。“指令译码器”根据指令的操作码进行译码,强置微控制单元的微地址,使下一条微指令指向相应的微程序首地址。
参考程序一的机器指令:
$P0000
$P0120
$P0208
$P0330
$P0408
$P0540
$P0600
参考程序二的机器指令:
设计机器指令程序如下(机器码和地址为十六进制数据)。
地址内容助记符说明
00 00 IN;输入开关数据→R0,采集数据
01 10 ADD [0AH];R0+[0AH]→R0,输入数据与指定数据相加
02 0A;地址
03 20 STA [0BH];R0→[0B]
04 0B;地址
05 30 OUT [0BH];[0BH] →BUS,输出显示
uA1
uA0
A字段
B字段
P字段
15
14
13
控制信号
12
11
10
控制信号
9
8
7
控制信号
0
0
0
0
0
0
0
0
0
0
0
1
LDRI
0
0
1
RS_G
0
0
1
P1
0
1
0
LDDR1
0
1
0
0
1
0
0
1
1
LDDR2
0
1
1
0
1
1
1
0
0
LDIR
1
0
0
1
0
0
P4
1
0
1
LOAD
1
0
1
ALU_G
1
0
1
1
1
0
LDAR
1
1
0
PC_G
1
1
0
LDPC
存储器写操作:拨动总清开关后,置控制开关SWC、SWA为“0 1”时,按要求连线后,再按动“启动运行”开关,可对主存储器RAM连续手动写入。
运行程序:拨动总清开关后,置控制开关SWC、SWA为“1 1”时,按要求连线后,再按动“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。
上述三条控制指令用两个开关SWC、SWA的状态来设置,其定义如下:
SWC
SWA
控制台指令
0
0
1
0
1
1
读内存
写内存
启动程序
根据以上要求设计数据通路框图,如图1所示。微代码定义如表1所示。
表1基本模型机微指令结构图
微程序
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
控制信号
S3
S2
S1
S0
M
CN
RD
M17
M16
A
B
P
uA5
uA4
uA3
uA2
1、有关微控制器部分在算术运算实验中以详细介绍。
2、处存储器的读、写和运行
为了想主存储器的RAM中装入程序或数据,并且检查写入是否正确以及能运行主存储器中的程序,必须设计三个控制操作微程序。
存储器读操作:拨动总清开关后,置控制开关SWC、SWA为“0 0”时,按要求连线后,连续按动“启动运行”开关,可对主存储器RAM连续手动读操作。
当全部微程序设计完毕后,应将每条微指令代码化,表2即为图2的微程序流程图按微指令格式转化而成的“二进制微代码表”。
图2微程序流程图
表2二进制代码表
本系统有两种外部I/O设备,一种是二进制数码开关,作为输入设备(INPUT);另一种是两位十六进制数LED数码管,作为输出设备(OUTPUT UNIT)。在输入时,二进制开关数据直接经过三态门送到总线上。只要开关状态不变,输入的信息也不变。输出时,将输出数据送到数据总线上,当写信号(WE)有效时,将数据打入输出锁存器,驱动数码块显示。
4、输入/输出设备
本系统有两种外部I/O设备,一种是二进制代码开关KD0~KD7,它作为输入设备INPUT;另一种是数码显示块,它作为输出设备OUTPUT。例如:输入时,二进制开关数据直接经过三态门送到外部数据总线上,只要开关状态不变,输入的信息也不变。输出时,将输出数据送到外部数据总线上,当写信号(W/R)有效时,将数据打入输入锁存器,驱动数码块显示。
STA addr 0010 0000 ×××× ××××;R0→[addr]
OUT addr 0011 0000 ×××× ××××;[addr] →BUS
JMP addr 0100 0000 ×××× ××××;[ADDR] →PC
说明:
指令IN为单字节指令,其余均为双字节指令,××××××××addr对应的主存储器二进制地址码。
(2)实现存储器写操作;
拨动总清开关后,置控制开关SWC、SWA为“0 1”时,按要求连线后,再按源自文库“启动运行”开关,可对主存储器RAM连续手动写入。
(3)实现程序运行操作。
拨动总清开关后,置控制开关SWC、SWA为“1 1”时,按要求连线后,再按动“启动运行”开关,即可转入到第01号“取址”微指令,启动程序运行。
地址内容助记符说明
00 00 IN;输入开关数据→R0
01 20 STA [08H];R0→[08]
02 08;地址
03 30 OUT [08H];[08H] →BUS
04 08;地址
05 40 JMP [00H];00H→PC
06 00;跳转地址
参考程序二:
本程序从输入设备(数码开关)读入数据,与0A单元的数据相加,然后送到输出设备(LED数码管)进行显示。本程序不断地循环运行,在运行中可改变输入开关(INPUT)的值,观察输出显示的变化。
使用联机软件的文件装载将实验程序和微程序下载到实验箱中,并用软件的读出功能进行检查。其中参考程序一对应的文件名为“基本模型机1.TXT”,参考程序二对应的文件名为“基本模型机2.TXT”(联机软件的使用方法参看附录2)。
方法二:手动写入
(1)先将机器指令对应的微代码正确地写入28C16中,由于在实验1.7微程序控制器的组成与微程序设计实验中已将微代码写入E2PR0M芯片中,对照表2-5校验正确后就可使用。
C.校验。拨动SWITCH单元的总清开关CLR(1à0à1),微地址清零。PC程序计数
器清零,然后使SWITCH单元的开关SWB、SWA为“00”,按动CONTROL UNIT的触动开关START,微地址灯将显示“010000”,再按START,微地址灯显示为“010010”,第三次按START,微地址灯显示为“010111”,再按START后,此时OUTPUT单元的数码管显示为该首地址中的内容。不断按动START,以后每个循环PC会自动加1,可检查后续单元内容。每次在微地址灯显示为“010000”时,是将当前地址中的机器指令写入到输出设备中显示。
二、设计方案
1、硬件设计
(1)设计微程序控制电路
微程序控制器的组成:控制存储器:EPROM2816*3,8D触发器74ls273*2,4D触发器74ls74*3;微指令寄存器格式:18位微指令,6位微地址。
(2)设计时钟信号源和时序控制电路
时钟信号源的组成:时基电路555,可触发单稳态多谐振荡器74ls237*2,输出频率为330-580Hz的方波信号。
0000 1000 0000 0000
0000 1001
0000 1010 0000 0001;自定义参加运算的数
0000 1011;求和结果存放单元
五、实验步骤
1.根据该模型机的指令系统,编写一段程序。这里给出两个参考程序。
参考程序一:
本程序从输入设备(数码开关)取入数据,保存在内存单元08,然后从08单元送到输出设备(LED数码管)进行显示。每次循环过程中,可以使输入设备数据改变,考察输出显示的结果(请实验者考虑:如何修改程序,使程序只执行一次从输入设备取出数据,送出输出设备显示)。设计机器指令程序如下(机器码和地址为十六进制数据)。
基本模型机的设计与实现课程设计报告
http://blog.csdn.net/maria87328/archive/2008/01/13/2041130.aspx
一、实验基本任务
1、由基本单元电路构成一台基本模型机。
2、设计五条机器指令,并编写相应的微程序。
3、调试指令和模型机使其在微程序的控制下自动产生各部件单元的控制信号正常工作。
5、设计指令
根据基本模型机的硬件设计五条机器指令:外部输入指令IN、二进制加法指令ADD、存数指令STA、输出到外设指令OUT、无条件转移指令JMP。指令格式入下:
助记符机器指令码说明
IN 0000 0000;“外部开关量输入”KD0~KD7的开关状态→R0
ADD addr 0001 0000 ×××× ××××;R0+[addr] →R0
0000 0010 0000 1010
0000 0011 0010 0000 STA[0BH];R0→[0BH]
0000 0100 0000 1011
0000 0101 0011 0000 OUT[0BH];[0BH] →BUS
0000 0110 0000 1011
0000 0111 0100 0000 JMP[00H];00H→PC
四、系统原理图(说明整机的工作过程)
系统原理图如附图1所示。
部件实验过程中,各部件单元的控制信号是认为模拟产生的,而本次实验将能在微程序控制下自动产生各部件单元控制信号,实现特定指令的功能。这里,实验计算机数据通路的控制将由微程序控制器开完成,CPU从内存中取出一条机器只到指令执行结束的一个指令周期全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。
系统涉及到的微程序流程见图2,当拟定“取指令”微指令时,该微指令的判别测试字段为P1测试。由于“取指令”微指令是所有微程序都使用的公用微指令,因此P1的测试结果出现多路分支。本机用指令寄存器的高4位(I7—I4操作码)作为测试条件,出现5路分支,占用5个固定微地址单元。
控制台操作为P4测试,它以控制台开关SWB、SWA作为测试条件,出现了3路分支,占用3个固定微地址单元。当分支微地址单元固定后,剩下的其它地方就可以一条微指令占用一个微地址单元随意填写。