1、计算机组成原理与系统结构课程设计指导书(Ver 1.0)计算机科学与工程学院2007 年 11 月目 录一、课程设计的目的 3二、模型机的设计步骤 3三、实验装置 5四、设计题目 5五、课程设计任务及要求 16六、考核办法 16七、附录 17附录 1(数据通路):17附录 2(系统连线参考图)18附录 3 (微指令格式)20附录 4(译码电路)20附录 5 控制台 命令 21一、课程设计的目的通过对一个简单计算机的设计,对计算机的基本组成、部件的设计、部件间的连接、微程序控制器的设计、微指令和微程序的编制与调试等过程有更深的了解,加深对理论课程的理解。二、模型机的设计步骤设计一台完整的计算机,
2、大致需按如下的顺序来考虑:1. 确定设计目标确定所设计计算机的功能和用途。2. 确定指令系统确定数据的表示格式、位数、指令的编码、类型、需要设计哪些指令及使用的寻址方式,并给出具体的编码,比如指令的操作码,地址码等的位数及各种编码的含义。3. 确定总体结构(寄存器、加法器、选择器的设置与数据通路的设计)总体结构设计包含确定各部件设置以及它们之间的数据通路结构。在此基础上,就可以拟出各种信息传输路径,以及实现这些传输所需要的微命令。对于部件设置,比如要确定运算器部件采用什么结构,控制器是微程序控制还是硬联控制等。综合考虑计算机的速率、性能价格比、可靠性等要求,设计合理的数据通路结构,确定采用何种
3、方案的内总线及外总线。数据通路不同,执行指令所需要的操作就不同,计算机的结构也就不一样。4. 设计指令执行流程数据通路确定后,就可以设计指令系统中每条指令的执行流程。根据指令的复杂程度,确定每条指令所需要的机器周期数。对于微程序控制的计算机,根据总线结构,需考虑哪些微操作可以安排在同一条微指令中,哪些微操作不能安排在同一条微指令中。5. 确定微程序地址确定后续微地址的形成方法,确定每个微程序地址及分支转移地址。6. 微指令代码化根据微指令格式,将微程序流程中的所有微指令代码化。首先写出每个微地址以及该地址对应的微指令代码(共 24 位二进制信息) ,如下表所示:其中:微地址表示控制存储器的地址
4、,后面的 24 位表示微指令。然后将每个微地址和对应的微指令转换成 16 进制,并写在一行,格式为:$M*,前面 2 个*表示该微指令的在微控制器中的地址,后面 6 个*表示该微指令代码。如上述表中的四条微指令写成:$M00018110:表示在控制存储器地址 00h 处的代码是 018110h。$M0101ED82:表示在控制存储器地址 01h 处的代码是 01ED82h。$M0200C048:表示在控制存储器地址 02h 处的代码是 00C048h。$M0300E004:表示在控制存储器地址 03h 处的代码是 00E004h。7 编写工作程序并代码化编写测试用的工作程序,并写出内存映像,用
5、二进制表示。然后代码化用 16 进制来表示,格式为:$P*,前面 2 个*表示该内存的地址,后面 2 个*表示该地址的数据。例如:$P0044:表示在内存地址 00h 处的数据是 44h。$P0146:表示在内存地址 01h 处的数据是 46h。8 联机操作文件的建立为了从 PC 机下载工作程序和微程序,需要建立联机操作文件,该文件是普通的文本文件,扩展名为 TXT,可用记事本来建立的,要求:a、 测试用的工作程序排在文件的前面,每个内存地址及代码占一行;b、 微指令代码排在文件的后面,每个微地址及微指令代码占一行;例如,下面是一个实验的文件(文件名:sample.txt) :$P0044$P
6、0146$P0298$M00018108$M0101ED82$M0200C0509连接实验线路根据附录 2 的实验线路图连接实验线路,其中第 1 题和第 2 题用图 2(简单模型机的连线图)连线,第 3 题和第 4 题用图 3(复杂模型机的连线图)连线。10下载工作程序和微程序使用唐都软件将工作程序和微程序下载到实验箱的内存和控制存储器中。其中,自带电源线的实验箱用 NCMP53 软件,启动软件后使用 F4装载 进行下载;外接电源线的实验箱用 CMPP 软件,启动软件后在菜单中选择 转储/ 装载 进行下载。11调试在总调试前,先按功能模块进行组装和分调,因为只有各功能模块工作正常后,才能保证整
7、机的正常运行。可以使用控制台命令 SWA、SWB 的不同取值,或使用联机软件检查内存程序是否正确,微程序是否正确。当所有功能模块都调试正常后,进入总调试。可以使用单步微指令方式执行工作程序,也可以直接使用连续方式执行程序。在执行过程中,可以通过联机软件的数据通路图查看信息在计算机中的传送路径,更有利于掌握数据的通路结构。这样也可以直接验证程序和微程序的正确性。如果运行结果不正确,需要返回来修改程序或微程序,每次修改后,需要重新完成第10 步,将程序和微程序下载到实验箱中。三、实验装置TDN-CM+计算机组成原理教学实验系统一台,排线若干。四、 设计题目题目一:设计一台模型计算机,实现下列指令系
8、统,并通过给定的工作程序验证上述指令系统。本设计实现的模型机共包含五条机器指令:IN(输入)、ADD(加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前 4 位为操作码):助记符 机器指令码(二进制) 说明 微程序的入口地址(八进制)IN 00000000 “INPUT DEVICE”中的开关状态R010(取指令后续微指令默认地址为 10)ADDaddr 00010000 XXXXXXXX RO+addrR0 11STAaddr 00100000 XXXXXXXX ROaddr 12OUTaddr 00110000 XXXXXXXX addrLED 13JMPad
9、dr 01000000 XXXXXXXX addrPC 14其中 IN 为单字长(8 位),其余为双字长指令,XXXXXXXX 为 addr 对应的二进制地址码。控制台命令的微程序流程如下(01 为取指微指令的地址):本设计的验证程序的内存映象(装入起始地址 00H)如下:地址(二进制) 内容(二进制) 助记符 说 明00000000 00000000 IN 将输入数据送 R0 寄存器00000001 00010000 ADDOAH00000010 00001010 RO+0AHR000000011 00100000 STA0BH00000100 00001011 R00BH00000101
10、00110000 OUT0BH00000110 00001011 0BHLED00000111 01000000 JMP 0100001000 00000001 01HPC000010010000 1010 0000 0001 输入自定的数据0000 1011 求和结果的存储单元测试数据为:FEH题目二:设计一台模型计算机,实现下列指令系统,并通过下列工作程序验证上述指令系统。本模型机共包含五条机器指令:IN(输入)、ADD(加法)、STA(存数)、OUT(输出)、JMP(无条件转移),其指令格式如下(前 4 位为操作码):助记符 机器指令码 说明 微程序的入口地址(八进制)IN 000000
11、00 “INPUT DEVICE”中的开关状态R010(取指令后续微指令默认地址为 10)ADC Imm 00010000 XXXXXXXX RO+Imm+cyR0 11STAaddr 00100000 XXXXXXXX ROaddr 12OUTaddr 00110000 XXXXXXXX addrLED 13JMPaddr 01000000 XXXXXXXX addrPC 14其中 IN 为单字长 (8 位),其余为双字长指令,XXXXXXXX 为 addr 对应的二进制地址码或 Imm 所对应的二进制数据(补码形式) 。控制台命令的微程序流程同 1 题。工作程序如下:地址 指令00 IN0
12、1 ADC 01H03 STA 0AH05 OUT 0AH07 JMP 01测试数据为:FEH题目三:设计一台模型计算机,实现下列指令系统,并用指定的工作程序验证上述指令系统。本模型机的指令系统及指令格式如下(前 4 位为操作码):助记符号 指令格式 功能 微程序入口地址(八进制)MOV rs,rd 1000 Rs rd Rsrd 30ADC rs,rd 1001 Rs rd Rs+rd+cyrd 31BZC 00 00 00 00D当 cy=1 或 z=1 时,DPC否则,顺序执行20(取指令后续微指令默认地址为 20)IN rd 0100 01 Rd Input Devicerd 24OU
13、T rd 0101 10 Rd Rd Output Device 25HALT 0110 00 00 停机 26其中, rs 为源寄存器,rd 为目的寄存器,并规定:Rs 或 rd 选定的寄存器000110R0R1R2控制台命令的微程序流程(注意控制台命令的微程序的入口地址,01 为取指令微指令的地址):P ( 4 )0 01 0K R D ( 0 0 )P C A RP C + 1S W B B U SB U S D R 1D R 1 R A M1 11 47 4P C A RP C + 1R A M B U SB U S D R 1D R 1 L E D1 01 27 31 30 1K W
14、 E ( 0 1 )R P ( 1 1 )S W B , S W A工作程序如下:地址 指令00 IN R001 IN R202 ADC R2,R003 MOV R0,R104 OUT R105 BZC 0207 HLT测试数据为两组:(1) R0=FE ;R2=01H(2) R0=FF;R2=01H题目四:设计一台模型计算机,完成下列指令系统,并编写工作程序验证上述指令系统。本模型机共设计 16 条基本指令,其中算术逻辑指令 9 条,访问内存指令和程序控制指令 4 条,输入输出指令 2 条,其它指令 1 条。下表列出了各条指令的格式、汇编符号、指令功能。类型助记符号 指令格式 功能 微程序入
15、口地址(八进制)CLR rd 0111 00 rd 0rd 27MOV rs,rd 1000 Rs rd Rsrd 30ADC rs,rd 1001 Rs rd Rs+rd+cyrd 31SBC rs,rd 1010 Rs rd Rs-rd-cyrd 32INC rd 1011 Rd Rd+1rd 33AND rs,rd 1100 rs rd Rsrdrd 34COM rd 1101 Rd rdrd 35RRC rs,rd 1110 Rs RdcyrsRsrd36算术逻辑指令RLC rs,rd1111 Rs RdcyrsRsrd37LDA M, D, rd 00 M 00 RdDErd 40访
16、存指令STA M, D, rd 00 M 01 RdDRdE 41JMP M,D 00 M 10 00DEPC 42程序控制指令BZC 00 M 11 00D当 cy=1 或 z=1 时,EPC43IN addr, rd 0100 01 Rd Addrrd 24输入输出OUT addr, rd 0101 10 Rd Rdaddr 25其它HALT 0110 00 00 停机 26下面对各种指令格式加以说明:(1) 算术逻辑指令算术逻辑运算指令共 9 条,用单字节表示,寻址方式采用寄存器直接寻址,格式为:7 6 5 4 3 2 1 0OP-CODE Rs rd其中,OP-CODE 为操作码,rs
17、 为源寄存器,rd 为目的寄存器,并规定:Rs 或 rd 选定的寄存器000110R0R1R2(2) 访存指令及程序控制指令模型机设计两条访存指令,即存数(STA)、取数(LDA),两条转移指令,即无条件转移指令(JMP)、结果为 0 或有进位转移指令(BZC),指令格式为:7 6 5 4 3 2 1 000 M OP-CODE rdD其中,OP-CODE 为操作码,rd 为目的寄存器地址(LDA、STA 指令使用),D 为位移量(正负均可),M 为寻址模式,其定义为:寻址模式 M 有效地址 E 说明 微程序入口00011011E=DE=(D)E=(RI)+DE=(PC)+D直接寻址间接寻址R
18、I 变址寻址相对寻址20212223变址寻址寄存器指定为寄存器 R2。(3) 输入/输出指令输入输出指令均采取单字节指令,其格式如下:7 6 5 4 3 2 1 0OP-CODE addr rd其中,addr=01 时,选中“Input Device”中的开关组作为输入设备,addr=10 时,选中“Output Device”中的数码显示作为输出设备。(4) 停机指令用于实现停机操作。测试用的工作程序如下:IN 01, R0IN 01, R2ADC R2, R0MOV R0, R1RLC R1, R1OUT R1BZC 00, 00HLT题目五:选做:用 CPLD 设计并行加法器(1)、实验
19、原理使用大规模可编程逻辑器件(CPLD)来设计实现一个 4 位的并行进位加法器。传统的数字系统设计只能通过设计电路板来实现系统功能,而采用可编程逻辑器件,则可以通过设计芯片来实现系统功能,从而有效地增强设计的灵活性,提高了工作效率。并能够缩小系统体积,降低能耗,提高系统的性能和可靠性。实验系统中采用的器件是 Lattice 公司的 ispLSI1032 芯片,isp 芯片具有“在系统可编程功能” ,这种功能可随时对系统进行逻辑重构和修改,而且只需要一条简单的编程电缆和一台 PC 机就可以完成器件大编程。IspLSI1032 芯片的等效逻辑门为 6000 门,具有 128 个宏单元,192 个触
20、发器和64 个锁存器,共有 84 个引脚,其中 64 个为 I/O 引脚。IspLSI1032 芯片的结构图如图 5-1 所示。图 5-1 ispLSI1032 芯片结构图对该器件的逻辑系统设计是通过使用硬件描述语言或原理图输入来实现的,硬件描述语言有 ABEL、AHDL 等多种语言,本节实现是使用原理图输入来编程的。下面是一个用原理入输入来设计一个 4 位并行加法器的例子。该加法器采用并行进位,有两组 4 位加法 A3A0、B3B0 输入,4 位本地和 F3F0 输出,一个低位进位 C0 输入及一个本地进位 CY 输出。系统采用 ispDesignEXPERT 软件来对可编程逻辑器件 isp
21、LS1032 进行编程设计实现。IspDesignEXPERT 可采用原理图或硬件描述语言或这两种方法的混合输入共三种方式来进行设计输入,并能对所设计的数字电子系统进行功能仿真和时序仿真。其编译器是此次软件所需要的熔丝图文件。该软件支持所有 Lattice 公司的 ispLSI 器件。(2)、实现步骤方法一:A、安装 EDA 软件打开计算机电源,进入 WINDOWS 系统,安装上述 IspDesignEXPERT 软件。安装完成后,桌面和开始菜单中则建有 IspDesignEXPERT 软件图标。B、建立新项目用鼠标双击该软件图标按钮,则出现建立新项目操作界面 IspDesignEXPERT
22、Project Navigator。在界面左上角 File 菜单中单击ew Project或单击坐上角“新建按钮,则出现界面Create New Project,在roject 栏中输入 ALU.syn ,在 Project type 栏中选 Schematic/ABEL,并单击“保存”按钮,则在 Source in Project 栏中建立了新的项目。双击第一行 Untitled 按钮并对该项目命名,在名称栏中填入_EX 并单击按钮。双击第二行选择器件。根据实验系统中所使用的器件型号,例如对 IspLSI1032-70LJ 这一器件,在amily 栏中选 ispLSI1K Device,在
23、DEVICE 栏中选 IspLSI1032,在 Speed Grade栏中选 70,在 Package 栏中选 84PLCC,单击 OK 按钮,再单击 Yes 按钮确定,则选定器件为IspLSI1032-70LJ84。C、输入编辑原理图单击界面左下角的 New按钮,则出现界面 New Source:(Schematic/ABEL),在其中选择 Schematic,并单击 OK 按钮,则出现原理图编辑界面 Schematic edit,输入模块名称ALU 并单击 OK 按钮,就可在原理图编辑界面中输入加法器原理图了,见图 5-2。输入逻辑图完成后,将其存盘并退出编辑界面。图 5-2 并行进位加法
24、器逻辑原理图D、对源程序进行编译在左方 Source in Project 栏中选中第二行 ispLSI1032-70LJ84,在右方 Processes for Current Source 栏中双击第七行 JEDEC FILE 按钮,则开始编译。如果编译正确,则生成可下载的文件 JEDEC FILE,即使出现警告提示,也表明已成功生成了可下载文件。如果提示错误,则需修改程序,然后重新编译。E、连接下载电缆在打开 PC 机和实验系统的电源之前,将下载电缆的一端与 PC 机的打印口相连,另一端与实验系统中 ispLSI1032 器件编程接口相连。F、将 JEDEC 文件下载到 ispLSI10
25、32首先打开实验系统的电源。在 ispDesign EXP ERT 软件界面菜单 Tools 中单击 ispDCD按钮,则进入文件下载界面。在下载界面中,单击菜单 Configuration 中的 Scan Board 按钮或 SCAN 图标按钮,则出现扫描界面,其下方的信息显示已检测到 ISP 芯片电路。然后单击 BROWSE 按钮,在其中选择要下载的文件 ALU.JED,并在 Command 菜单中,单击 Run Operation in Sequential Mode 按钮或 Run Operation 图标按钮,则进入文件下载过程。在进行下载时,实验系统下载电路的指示灯闪烁。下载完成后
26、,界面下方显示下载过程是否正确的有关信息。G、连接实验电路按图 5-3 连接实验电路,其中 ispLSI1032 的输入/输出引脚已在程序中定义。图 5-3 并行加法器实验接线图H、验证所设计器件的逻辑功能本实验所设计的是一个 4 位并行进位加法器,实验中 INPUT DEVICE 单元的高 4 位为B3B0,低 4 位为 A3A0,以总线单元的低 4 位 B3B0 发光二极管来显示运算结果,B7 位来显示进位输出,而低位进位输入由一个开关 AR 来给出。使 SWITCH UNIT 单元中的开关 SW-B=0(打开数据输出三态门) ,拨动 INPUT DEVICE 单元的输入开关置 A 和 B
27、 的值,然后由总线单元的显示灯来观察运算结果。方法二:以上所设计的并行加法器在应用 ispDesignEXPERT 软件时是以原理图输入形式来编程的,目的是为了让学生能更好地理解并行进位加法器的实现原理。为便于学生学习,这里以硬件描述语言编程,描写器件功能,下面用 ABEL 语言编程来实现上述加法器,步骤如下:a、建立新工程打开 ispDesignEXPERT 软件,建立一个新的目录来创建一个新的工程文件。在界面左上角 File 菜单中单击 New Project或单击左上角“新建”按钮,则出现界面 Create New Project,在 Project 栏中输入 ALU2.syn,在 Pr
28、oject type 栏中选 Schematic/ABEL ,并单击“保存”按钮,则在 Sources in Project 栏中建立了新的项目。器件型号还是选ispLSI103270-LJ84。b、编辑源程序单击界面左下角的按钮 New,则出现界面 New Source:(Schematic/ABEL) ,在其中选择 ABEL-HDL Module,单击 OK 按钮,则打开 new ABEL-HDL source 窗口,输入模块名称和文件名并单击 OK 按钮,就可在出现的源程序编辑界面中输入源程序了。输入完成后,将其存盘并退出编辑界面。上述并行加法器设计用 ABEL 语言来描述程序如下:MO
29、DULE aluTITLE 4 bit addr“InputsA4,A3,A2,A1 PIN 38,39,40,41;B4,B3,B2,B1 PIN 34,35,36,37;C0 PIN 52;“OutputsF4,F3,F2,F1 PIN 6,5,4,3;CY PIN 10;“VARA=0,A4,A3,A2,A1;B=0,B4,B3,B2,B1;C=0,0,0,0,C0;F=CY,F4,F3,F2,F1;“EQUATIONS“F=A+B+C;“ENDc、对源程序进行编译。d、将生成的 JED 文件下载至 ispLSI1032 芯片中。e、实验连线及实验操作步骤同上。五、课程设计任务及要求1、
30、任务:在一周内至少正确完成 3 道题目。2、要求:1) 同学们在实验前应该认真准备实验,根据实验讲义和课堂上学到的知识写出机器指令程序和微程序代码,做实验时带上。若没预习,没有机器指令程序和微程序代码,不准做实验。2) 每个题目完成后,回答实验指导老师的提问,由教师记录完成情况。3) 周五提交课程设计报告书,主要根据上述模型机设计步骤的要求,写出每一步骤的结果。重点阐述:A) 完善的微程序流程图(含所有机器指令和控制台命令的微程序流程图) 。B) 全部十六进制微程序代码。C) 系统的功能测试方法(含助记符形式和二进制形式的机器指令程序和数据) 、运行结果、结果分析、调试心得。六、考核办法课程设
31、计成绩评定的依据有课程设计报告书、具体完成情况、答辩情况及课程设计考勤登记表,其中平时成绩占总成绩的 20%。优:按要求完成 4 题或以上;有完整的符合标准的文档,文档有条理、有正确的微程序代码及工作程序代码,有正确的运行结果及结果分析;面试时概念正确、思路清晰、原理清楚、操作熟练、结果分析正确。良:完成 4 题,有完整的符合标准的文档,文档有条理、有正确的微程序代码及工作程序代码,有正确的运行结果及结果分析;面试时概念较正确、思路较清晰、原理较清楚、操作较熟练、结果分析较正确。中:完成 3 题或以上,有完整的符合标准的文档,文档有条理、有正确的微程序代码及工作程序代码,有正确的运行结果及结果
32、分析;面试时概念正确、思路清晰、原理清楚、操作熟练、结果分析正确。及格:完成 3 题,有较完整的符合标准的文档,文档较有条理、有正确的微程序代码及工作程序代码,有正确的运行结果及结果分析;面试时概念较正确、思路较清晰、原理较清楚、操作较熟练、结果分析较正确。不及格:完成的题目数不到 3 题,没有完整的符合标准的文档,面试时,回答问题不清楚等。七、附录附录 1(数据通路):图 F-1 数据通路结构框图附录 2(系统连线参考图)图 F-2 简单模型机实验接线图(实验 1、2)BUS NIT7B0ADRES UNITB7B0ALU NITB7B07B0AUJ3AUJ1LOG UNITREG UNIT
33、B7B0W/R UNIT STAE UNITSIGNAL UITMICRO-NTROLELOG I WITCH IINS UITINPUT ID7D0MAIN E7A0D7D0 EXT BUSD7D0AD7AD0 EX UNITD7D0OUTP NITD7D0SWJ3I7I2I3I0I7I2I3I06SE1SE6SE1P()2(3)P4 P()2(3)P4RS-BDI- RS-BDI-L1L1LDIR LIRPC-BLDLDAROPC-BLDLDARO3CNM2419LDR12LDR2L-B29 ALU-B29ARRCY ZIFC Z M167 A89R2-B10-R2-B10-LDR210L
34、DR210J1CE W/RLED-BY21Y0S-BSWBASBA432T1TS432T1F H24EM18W/RW/R图 F-3 复杂模型机实验接线图(实验 3、4)附录 3 (微指令格式)在实验中使用的模型机的微指令格式如下表给定,长度共 24 位。其中最后六位 uA0uA5 为 6 位的下一条微指令的地址, 前面几位为直接控制字段,直接与相应的控制门连接,A,B,C 为 3 个译码字段,分别由三个控制位译码出多位。其含义如下:A 字段 B 字段 C 字段151413 选择121110 选择9 8 7 选择0 0 0 0 0 0 0 0 00 0 1 LDRi 0 0 1 RS-B 0 0 1 P(1)0 1 0 LDDR1 0 1 0 RD-B 0 1 0 P(2)0 1 1 LDDR2 0 1 1 RI-B 0 1 1 P(3)1 0 0 LDIR 1 0 0 299-B 1 0 0 P(4)1 0 1 LOAD 1 0 1 ALU-B 1 0 1 AR1 1 0 LDAR 1 1 0 PC-B 1 1 0 LDPC附录 4(译码电路)附录 5 控制台命令控制台指令用两个开关 SWB、SWA 的状态来设置,其定义如下:SWB SWA 控制台指令0 0 读内存(KRD)0 1 写内存(KWE)1 1 启动程序(RP)