📄 ex.ini
字号:
要求 = {
利用COP2000实验仪的K16..K23开关做为DBUS数据,
其它开关做为控制信号,将数据写累加器A和工作
寄存器W,并用开关控制ALU的运算方式,实现运
算器的功能。
}
目的 = {
了解模型机中算术、逻辑运算单元的控制方法
}
说明 = {
COP2000中的运算器由一片可编程芯片EPLD实现。
有8种运算, 通过S2,S1,S0来选择。运算数据由
寄存器A及寄存器W给出, 运算结果输出到直通门D。
有兴趣的同学可以参考第76页实现本ALU功能的
ABEL语言。了解ALU的实现方法。
S2 S1 S0 功能
0 0 0 A+W 加
0 0 1 A-W 减
0 1 0 A|W 或
0 1 1 A&W 与
1 0 0 A+W+C 带进位加
1 0 1 A-W-C 带进位减
1 1 0 ~A A取反
1 1 1 A 输出A
注意:
运算器在加上控制信号及数据(A,W)后,
立刻给出结果, 不须时钟。
}
;电路 = "ALU.JPG"
;波形 = "ALUW.JPG"
}
实验定义 = {
名称 = "实验5 数据输出实验"
连线 = {
{67, 68}, ; J1 <--> J3
{36, 0}, ; S0 <--> K0
{35, 1}, ; S1 <--> K1
{34, 2}, ; S2 <--> K2
{38, 3}, ; AEN <--> K3
{29, 5}, ; X0 <--> K5
{30, 6}, ; X1 <--> K6
{31, 7}, ; X2 <--> K7
{32, 8}, ; CyIN <--> K8
{33, 9}, ; CN <--> K9
{37, 50} ; ALUCK <--> CLOCK
}
操作 = {
{'00000000 00000000 00000000 11100000', '11111111 00000000 00000000 00000000', "X210置为000,IN输出指示灯亮,IN输出到总线"},
{'00000000 00000000 00000000 11100000', '11111111 00000000 00000000 00100000', "X210置为001,IA输出指示灯亮,中断向量输出到总线"},
{'00000000 00000000 00000000 11100000', '11111111 00000000 00000000 01000000', "X210置为010,ST输出指示灯亮,堆栈值输出到总线"},
{'00000000 00000000 00000000 11100000', '11111111 00000000 00000000 01100000', "X210置为011,PC输出指示灯亮,PC值输出到总线"},
{'00000000 00000000 00000000 11100000', '11111111 00000000 00000000 10000000', "X210置为100,D直通门输出指示灯亮,ALU直通门输出到总线"},
{'00000000 00000000 00000000 11100000', '11111111 00000000 00000000 10100000', "X210置为101,R右移门输出指示灯亮,ALU右移门输出到总线"},
{'00000000 00000000 00000000 11100000', '11111111 00000000 00000000 11000000', "X210置为110,L左移门输出指示灯亮,ALU左移门输出到总线"},
{'00000000 00000000 00000000 11100000', '11111111 00000000 00000000 11100000', "X210置为111,没有输出,总线浮空"}
}
要求 = {
利用COP2000实验仪的开关做为控制信号,
将指定寄存器的内容读到数据总线DBUS上
}
目的 = {
了解模型机中多寄存器接数据总线的实现原理
}
说明 = {
COP2000中有7个寄存器可以向数据总线输出数据,
但在某一特定时刻只能有一个寄存器输出数据。
由X2,X1,X0决定那一个寄存器输出数据
}
电路 = "XXX.JPG"
;波形 = "XXXW.JPG"
}
实验定义 = {
名称 = "实验6 移位实验"
连线 = {
{67, 68}, ; J1 <--> J3
{36, 0}, ; S0 <--> K0
{35, 1}, ; S1 <--> K1
{34, 2}, ; S2 <--> K2
{38, 3}, ; AEN <--> K3
{29, 5}, ; X0 <--> K5
{30, 6}, ; X1 <--> K6
{31, 7}, ; X2 <--> K7
{32, 8}, ; CyIN <--> K8
{33, 9}, ; CN <--> K9
{37, 50} ; ALUCK <--> CLOCK
}
操作 = {
{'00000000 11111111 00000000 00000000', '11111111 01010101 00000000 00011000', "DBUS[7..0]置为55H"},
{'00000000 00000000 00000000 00001111', '11111111 01010101 00000000 00000111', "置K3(AEN)为0, 允计打入A寄存器"},
{'11000000 00000000 00000000 00000000', '10111111 01010101 00000000 00000111', "按住CLOCK脉冲键,CLOCK由高变低,这时寄存器A的黄色选择指示灯亮,表明选择A寄存器"},
{'11000000 00000000 00000000 00000000', '01111111 01010101 00000000 00000111', "放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据55H被写入A寄存器"},
{'00000000 11111111 00000000 00000000', '11111111 01100110 00000000 00000111', "观察D直通门, L左移门,R左移门,结果应为55H, AAH, 2AH。"}
}
要求 = {
利用COP2000实验仪的开关做为控制信号,
实现移位运算
}
目的 = {
了解移位功能的实现方法
}
说明 = {
移位与输出门是否打开无关,无论运算器结果如何,
移位门都会给出移位结果。但究竟把那一个结果送
数据总线由X2X1X0输出选择决定。
}
;电路 = "DL6.JPG"
;波形 = "BX6.JPG"
}
实验定义 = {
名称 = "实验7 微程序计数器uPC实验"
连线 = {
{68, 69}, ; J2 <--> J3
{65, 0}, ; IREN <--> K0
{58, 1}, ; EMEN <--> K1
{57, 2}, ; EMWR <--> K2
{56, 3}, ; EMRD <--> K3
{66, 50} ; IRCK <--> CLOCK
}
操作 = {
{'00000000 00000000 00000000 00001111', '11111111 00000000 00000000 00001111', "置K3210为0000,每按一次CLOCK,uPC加一"},
{'00000000 11111111 00000000 00000000', '11111111 00010010 00000000 00000000', "DBUS[7..0]置为12H"},
{'00000000 00000000 00000000 00001111', '11111111 00010010 00000000 00001000', "置K3210为1000,uPC打入方式"},
{'11000000 00000000 00000000 00000000', '10111111 01010101 00000000 00010000', "按住CLOCK脉冲键,CLOCK由高变低,这时IR寄存器的黄色选择指示灯亮,表时打入uPC, IR寄存器"},
{'11000000 00000000 00000000 00000000', '01111111 01010101 00000000 00010000', "放开CLOCK键,CLOCK由低变高,产生一个上升沿,数据10H被写入uPC寄存器"}
}
要求 = {
利用COP2000实验仪上的K16..K23开关做为DBUS的数据,
其它开关做为控制信号,实现微程序计数器uPC的写入
和加1功能。
}
目的 = {
1. 了解模型机中微程序的基本概念。
2. 了解uPC的结构、工作原理及其控制方法
}
说明 = {
74HC161是一片带预置的4位二进制记数器。功能如下:
当 RST = 0时,记数器被清0
当IREN = 0时,在CK的上升沿,预置数据被打入记数器
当IREN = 1时,在CK的上升沿,记数器加一
TC为进位,当记数到F(1111)时,TC=1
CEP,CET为记数使能,当CEP,CET=1时,记数器工作,
CEP,CET=0时,记数器保持原记数值
}
电路 = "uPC.JPG"
波形 = "uPCW.JPG"
}
实验定义 = {
名称 = "实验8 PC实验"
连线 = {
{68, 69}, ; J2 <--> J3
{43, 0}, ; ELP <--> K0
{42, 1}, ; JRC <--> K1
{41, 2}, ; JRZ <--> K2
{44, 3}, ; JIR2 <--> K3
{45, 4}, ; JIR3 <--> K4
{59, 5}, ; PCOE <--> K5
{60, 50} ; PCCK <--> CLOCK
}
操作 = {
{'00000000 00000000 00000000 00100001', '11111111 00000000 00000000 00000001', "置K5(PCOE)为0,置K0(ELP)为1,每按一次CLOCK键, PC加一"},
{'00000000 11111111 00000000 00000000', '11111111 00010010 00000000 00000000', "DBUS[7..0]置为12H"},
{'00000000 00000000 00000000 00000001', '11111111 01010101 00000000 00000001', "置K0(ELP)为1, 黄色PC预置指示灯不亮,不允计打入PC"},
{'00000000 00000000 00000000 00011011', '11111111 01010101 00000000 00000010', "置K0(ELP)为0,K1(JRC)为1,黄色PC预置指示灯亮,允计打入PC"},
{'00000000 00000000 00000000 00011011', '11111111 01010101 00000000 00000000', "置K0(ELP)为0, K1(JRC)为0,黄色PC预置指示灯不亮,不允计打入PC"},
{'00000000 00000000 00000000 00011101', '11111111 01010101 00000000 00001100', "置K0(ELP)为0, K2(JRZ)为1,黄色PC预置指示灯亮,允计打入PC"},
{'00000000 00000000 00000000 00011101', '11111111 01010101 00000000 00001000', "置K0(ELP)为0, K2(JRZ)为0,黄色PC预置指示灯不亮,不允计打入PC"},
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -