ImageVerifierCode 换一换
格式:DOCX , 页数:39 ,大小:1.05MB ,
资源ID:20328752      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20328752.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(《计算机组成原理》课程设计性实验指导文档格式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

《计算机组成原理》课程设计性实验指导文档格式.docx

1、 其输出为 F,两路输入为 S、R,最低位进位Cn,四个状态输出信号如图所示。第二个组成部分是通用寄存器组,由16个寄存器构成,并通过B口与A口地址选择被读的寄存器,B口地址还用于指定写入寄存器。通过B口地址、A口地址读出的数据将送到B、A锁存器,要写入寄存器的数据由一个多路选择器送来。第三个组成部分是乘商寄存器Q,它能对自己的内容完成左右移位功能,其输出可以送往ALU,并可接收ALU的输出结果。一组三选一门和另一组二选一门用来选择送向ALU的 R、S输入端的数据来源,包括Q寄存器、A口、 B口、外部输入D数据的8 种不同组合。第四个组成部分是 5 组多路选通门,包括一组三选一门完成把ALU的

2、输出、或左移一位、或右移一位的值送往通用寄存器组,最高、最低位移位信号有双向入/出问题。一组三选一门完成Q寄存器的左移一位、或右移一位、或接收ALU输出值的功能,最高、最低位移位信号有双向入/出问题。一组二选一门,选择把A口数据或ALU结果送出芯片,以给出输出Y的数据,Y输出的有无还受输出使能 /OE信号的控制,仅当 /OE为低时才有Y输出 ,/OE为高,Y输出为高阻态。ALU的数据来源由I2I1I0三位选择码控制,8种功能由I5I4I3三位选择码实现,运算结果处理方式由I8I7I三位选择码控制,具体规定如表1所示。表1 Am2901的9位控制码2TEC-2000运算器组成4 片Am2901之

3、间的连接如图2所示。图2 4片Am2901连接图TEC-2000的运算器具体组成:16 位机,使用16 位数据线,共用 4 片Am2901 芯片实现,写 16 位的地址寄存器操作,16 位 ALU 一次送 16 位数据。16 位ALU 输出经 16 位开关门送到16位的内部总线 IB。经16 位双向三态门送到外部总线。ALU 接收16位开关送数据。另外有状态寄存器 (FLAG GAL)、最低位进位信号、高低位移位信号线路 (SHIFT GAL)。状态位 C Z V S 和中断优先级P1、P0 经开关门送到内部线IB。完整的16位运算器组成如图2-3所示,其中GAL1、GAL3的控制信号如表2所

4、示。图3 16位运算器结构框图表2 GAL1状态寄存器、GAL3进位入、移位入、控制信号(二)控制器介绍TEC-2000 机上的控制器,可以选用组合逻辑或微程序方案实现,非常好地支持动态的指令集合,选用了 美国AMD 公司的 Am2910 芯片作为微程序的下地址形成部件,用来讲解微程序下地址逻辑和教学实验的对象,有很高实用性和典型性。组合逻辑和微程序控制器方案之间可用手拨开关完成切换。动态的指令集合,是指可以通过修改和增加微程序的内容,或变化可编程器件的内容,来改变计算机已有的指令系统,例如,增加新的指令,变更原有指令等;这对于教学与教学实验的计算机有特别重要的意义。1.微程序控制器的基本组成

5、与实现 微程序控制器是教学机的选件,在一块小印刷电路板上实现,直接插在大板左上方的72芯插槽上。其组成如图4所示。图4 微程序的控制器基本组成TEC-2000 机上的微程序控制器部件组成:(如图5所)56位的微指令字长,微下地址字段16位,控制命令字段40位;7 片 28C64 组成控存;1 片 28C64,从指令操作码映射产生微地址;1 片 374 存 8 位下地址;1 片 273 存 8 位条件码;1 片377存8位现微地址;1 片Am2910给出下一条微指令地址;1 片GAL 按判断条件产生微指令转移信号/CC;5 片GAL用作为 5 片 8位的 D 触发器的寄存器;2 片GAL 实现两

6、个4 位的2 选 1 芯片功能;8 或 16位的指令寄存器。图5 16位微程序控制器线路逻辑图2微程序定序器AM2910的组成与功能AM2910是形成下一条微指令的核心硬件,掌握它的内部组成和功能是学懂微程序设计技术,实现自己设计指令的重要环节。AM2910是一片能提供12位微指令地址的器件,能直接寻址4096条微址令字的空间,其结构如图6所示。图6 AM2910的内部结构框图AM2910包括一个四输入的多路地址选择器,用来从寄存器/计数器(R/C),直接输入(D), 微程序计数器(PC),或微堆栈(F)四个输入中选择其一作为下一条微址令的地址。寄存器/计数器由12位D触发器组成,作为寄存器时

7、,用于保存一个微地址以实现微程序转移,作为计数器时,具有减一功能(由AM2910的命令码决定),用于控制微程序的循环次数。微程序计数器由12位的增量器和由12的寄存器PC组成,当增量器进位CI为高电平时 PCy+1, 实现微程序的顺序执行,当CI为低电平时PCy 实现重复执行同一条微指令,微堆栈用于保存微子程序调用时的返回地址和微程序循环的首地址,当堆栈中的数据达到5个时,微堆栈指示发出已满信号(/FULL=0),此时再压入数据将覆盖栈顶数据。AM2910输出三个使能信号:/PL、/MAP、/VECT,用以决定直接输入D的来源。/PL=0 时,D的来源是微指令的下地址字段,以实现微程序转移;/

8、MAP=0 时,D的来源是MAPROM,用以实现丛机器指令的操作码找到相应的微程序首地址的转移;/VECT=0 时,D的来源原本是用于中断,但现在用于接收手拨微地址;命令译码器接收外来命令码I3I0,条件输入/CC,和条件允许/CCEN信号,并对其进行译码,产生片内工作需要的控制信号,和外部要用的控制信号/PL、/MAP、/VECT。若条件允许/CCEN信号接地,则可由条件输入/CC直接决定检测结果,我们教学机上就是这样用的。下表给出了由命令码I3I0,条件输入/CC,和条件允许/CCEN信号以及计数器当前值的组合决定的AM2910所完成的功能。其中:注1 表示若测试失败则保持,否则就装数;

9、图中/表示保持原内容不变3. 控制信号(1) 对运算器的控制24位控制信号,同24位微型开关内容, A3A0,B3B0,I8I6,I5I3,I2I0 SST20, SSH10, SCI10多出两位SA、SB,用于选择A口、B口来源SA=1 IR 的源操作数寄存器 =0 微码 A口 字段SB=1 IR 的目的操作数寄存器 =0 微码 B口 字段寄存器分配: R4:SP R5: PC约定用法:R0:I/O指令约定使用,也是通用累加器对内存和 I/O接口的读写 /MIO(0:有内存或串口读写,1:无) REQ (0:读写内存, 1:读写串行口) /WE (0:写操作, 1:读操作)(2) 对内部总线

10、和特定寄存器的控制(3) 控制器提供的控制信号(微指令格式)4TEC-2000 16位机基本指令流程图716位机基本指令流程. 加电启动时,执行 0-PC;. 接下来的两步,完成取指操作;. 按指令操作码,读出相应微指令;. 按指令具体功能,再分别用 1、2、3、4 步完成不同指令组的中各条指令的执行过程;. 最后检查中断请求信号,有请求时则响应中断,否则开始下一条指令的执行过程。图8 16 位机指令分组执行流程图(三)U命令和A命令、U命令: 反汇编15条机器指令U命令若跟地址参数,则该地址己在R15中,否则将U命令用的默认地址从UADR单元读入R15。U命令的功能是反汇编15条机器指令,即

11、把一条机器指令代码翻译成对应的汇编语句的格式,结果显示在计算机终端(或PC及仿真终端)的屏幕上,其执行流程如图8.3所示。实现U命令处理功能的子程序虽然较长,但实现原理并不难理解。例如,遇到的指令是二进制的 0000000000101001,按照指令格式和编码的具体规定,指令的最高8位是操作码,查指令汇总表,00000000是加法指令,汇编语句名为ADD,加法指令的最低8位是两个寄存器的编码,其中高4位是目的寄存器DR的编号,0010为R2,低4位是源寄存器SR的编号,1001是R9。按指令格式规定,两个寄存器之间要有一个逗号,因此,对0000000000101001指令反汇编的结果是 ADD

12、 R2,R9。这一结果在显示器屏幕上更具体的格式为:指令地址 指令字1 指令个2 汇编语句其中的指令地址,指令字1,指令字2(可以没有),都用4位16进制数值表示,反汇编语句要满足对汇编语句的格式要求。4项内容之间例如用2个空格作为符号间距。假如上述指令被保存在内存的2000h(h代表前面的2000是十六进制)单元中,则反汇编的结果和格式是:2000 0029 ADD R2, R9 (单字指令,无指令字2)如果把对上述特例的处理过程更加一般化来展开讨论,结论是:每条机器指令8位的操作码,直接对应一个汇编语句名称(最多4个字母),可以保存在一张表格中,用于从指令操作码查出汇编语句名(反汇编过程使

13、用),或从汇编语句名查出指令操作码(汇编过程使用)。每条机器指令第1个字的低8位和第2个指令字(如果有的话),是指令的操作数地址字段,指令字1的低8位可以是1或者2个4位的寄存器编码,可能是一个8位的IO端口地址,或相对转移指令的变址偏移量offset,第2个指令字可以是一个立即数,一个直接地址,或者长转移指令的变址偏移量offset,它们的有无和到底代表的是什么,取决于指令的操作码,换句话说,知道了指令的操作码,就清楚了怎样去看待与处理操作数地址字段的内容。这里有个寄存器编码和寄存器名称的对应问题,例如4位二进制0000代表R0,也需要建立一张对应表,用于从4位编码查出寄存器名(反汇编过程使

14、用),或转换寄存器名为4位编码(汇编过程使用)。其他情况下的操作数地址字段内容,通常被理解为8位或者16位的整数数值使用,不存在类型变换问题。唯一例外的一点是,相对转移指令与对应的汇编语句之间,有一个地址计算过程,例如,在2005(16进制,下同)内存单元有一条编码值为010*的指令,反汇编操作时,查得该指令是无条件相对转移,汇编语句名为JR,低8位的11111100是offset,是补码形式的负4,按计算公式(当前指令地址+1+offset是转移的目标地址),则转移地址为2002,最终的反汇编结果是JR 2002。注意,8位的补码与16位的正的数值(同补码表示)相加时,8位补码的符号位要扩展

15、到高8位上的每一位上去。、A命令: 单条指令汇编A命令若跟地址参数,则该地址己在R15中,否则将A命令用的默认地址从AADR单元读入R15。A命令的执行流程如图8.4所示。A命令把用户从键盘输入到教学计算机中的一个汇编语句翻译成对应的机器指令编码,这里说的单条指令汇编,是指对每一个汇编语句可以直接完成汇编操作,与其他汇编语句不存在彼此之间的制约或者协调关系,因此,在这种方式下的汇编不能支持汇编伪指令和语句标号,是属于实用的汇编程序的一个最基本功能的子集,实现的只是在汇编语句与机器指令之间的翻译功能。实现单条指令汇编的原理简介如下:如果对 ADD R2, R9语句执行汇编,得到的第1个符号(标示

16、符)是ADD,查汇编语句名和指令操作码的表格,ADD对应的指令操作码为十六进制的00,接下来跳过空格后得到的第2个符号(标示符)为R2,是目的操作寄存器名称,查寄存器名称和寄存器编码的表格,R2的编码是十六进制的2,在跳过逗号后得到的第3个符号(标示符)为R9,是源操作寄存器名称,得到的寄存器编码为十六进制的9,最后遇到的是回车符,表明对该语句的汇编翻译工作已经结束,故得到的最终机器指令码为十六进制的0029,即二进制的0000000000101001,接着还要把该机器指令写到一个内存单元中去,对一个汇编语句的汇编操作全部完成。同理,如果遇到的是汇编语句 JR 2002,并需要把汇编结果(机器

17、指令)保存到内存的2005单元,则查得指令的操作码为16进制41,指令中的offset是通过转移目标地址(2002)减本指令地址(2005)再减1得到,是负4,即8位的补码FC,故汇编的最终结果(指令码)为16进制41FC。在教学计算机系统中,交叉汇编程序支持某些伪指令的功能,也支持使用语句标号给出一条指令的地址,这对设计较长的程序是非常必要的功能,此时需要通过两遍扫描整个用户汇编源程序的方式来完成汇编操作的全过程,产生由机器指令码组成的目标程序,还可以按照用户的要求,产生汇编清单文件和汇编符号表。图9图10(四)GAL器件的逻辑设计与编程操作使用特定软件工具和能对GAL器件编程的编程器设备,

18、可以向GAL20V8器件内写入所需要的逻辑功能。其设计和操作过程如下:(1)编辑源文件,该文件用于描述在GAL20V8内部实现的逻辑功能。此为文本文件,但格式应符合相应编译软件的要求。若使用FM编译工具,则源文件扩展名应为 “.PLD”;也可以用ABEL语言编辑扩展名为“.ABL”的源文件,ABL源文件可以使用MACH线路实验中所介绍的ispDesignEXPERT软件进行编译。(2)用相应的软件对已设计的源文件进行编译,以生成GAL20V8的熔丝图文件,扩展名为“.JED”。(3)用编程设备向GAL20V8写入熔丝图文件所规定的内容,即对GAL20V8进行编程操作。由于不同厂商提供的编程软件

19、和编程设计有所不同,具体操作细节请阅读有关技术与使用手册。这里仅就目前我们使用的编程软件和编程器的具体操作过程作简要的说明。1、编写源程序文件FM是GAL逻辑设计软件FAST-MAP的缩写。该软件可以完成对GAL20V8和GAL16V8的逻辑设计。FM要求GAL逻辑设计源程序的扩展名应为“.PLD”,可以使用任何文字编辑软件建立或修改这个源程序。源程序文件应符合下列规定:(1)GAL器件型号说明GAL器件类型,必须起始于第1行第1列,用大写字母书写。(2)标题行这一部分设计信息,对编程无本质影响,占用第2-4行。其中第2行为标题,第3行为设计者姓名、日期等,第4行为电子标签。第3、4行可不写,

20、但不能有空行。(3)引脚列表第4行后是器件管脚定义,可占用多行。从1号管脚开始至最后一个管脚,其中,无用管脚命名为NC,电源命名为VCC,地线命名为GND,其余引脚可以自行命名,但长度不应超过8个字符,引脚名之间用空格分隔,一行写不下可延长至下一行。(4)输出逻辑表达式在这一部分可为每个输出管脚定义逻辑表达式,可占用多行。表达式后,须用大写关键字DESCRIPTION结束逻辑描述。逻辑表达式中可含有下列三种逻辑运算符:与“*”、或“+”、非“/”。逻辑表达式必须采用与-或形式。由于GAL硬件结构的限制,表达式中的或运算符不应多于8个(有三态控制的应小于8个),参加与运算的引脚不应多于16个(对

21、GAL16V8),或20个(对GAL20V8)。表达式中不能有任何括号,FM不对表达式进行任何化简。每一个输出引脚可通过下列两种赋值语句连接到相应的逻辑表达式上去:输出引脚=表达式 或 输出引脚:=表达式。第一种形式由等式右边的表达式直接决定输出的状态,是组合逻辑功能。第二种形式是触发器功能,说明了仅在时钟脉冲的上升沿到来时,这个引脚的电路接收并记忆等式右边所给出的逻辑值。如果用户需要按某一种逻辑关系对输出引脚进行三态控制,可使用下面形式的语句:输出引脚.OE=表达式,当表达式的结果为真时,由符号名指定的输出引脚才输出有效电平,否则就保持高阻态。这里的表达式只允许包含一个乘积项,这是由GAL器

22、件的结构决定的。如果对某个输出引脚进行了三态控制,那么全部引脚的输出表达式中最多只能有七个或项,并且必须列出全部输出引脚的三态控制逻辑,无需三态控制的引脚可用VCC作为控制逻辑。如果对输出进行负逻辑设计,可在输出引脚前面加非运算符。(5)说明部分这一部分写在大写的关键字DESCRIPTION的下一行,可以写任何文字信息,最后以END结束。FM将这一部分理解为注释,对逻辑设计无本质的影响。此部分可省略。源程序中要注意下列几点: 每一语句行均可加以注释,注释必须以一个分号开始。 一份GAL设计说明书最多可有200行,说明书的最后一行必须用回车结束。 FM对大小写字母区别对待,如字符“A”不同于字符

23、“a”。2、用FM编译源程序文件用任何文本编辑程序编辑准备好GAL设计说明书(以PLD为扩展名的一个输入文件)均可以启动FM编译程序。在DOS提示符下键入FM,屏幕上将出现键入输入文件名的提示。当键入已准备好的GAL设计说明书文件名(可省略PLD后缀)并按回车键后,FM将自动检查源文件中逻辑表达式的合法性,检查通过后,屏幕上将出现FM菜单,并提示键入相应的选择项(数字键15)。第1项,建立列表文件操作,将产生后缀为LST的列表文件。第2项,建立熔丝图文件操作,将产生后缀为PLT的熔丝图文件。第3项,建立JEDEC文件操作,将产生后缀为JED的JEDEC文件。第4项,读入一个新源文件操作。第5项

24、,退出FM操作。列表文件和熔丝图文件可供核对参考,JED文件用来完成编程。如果源程序中含有语法错误或存在结构冲突等问题,FM将指出来。出错时可用Ctrl+Break退出。3、向器件内写入编程内容用FM软件对扩展名为“.PLD“的文件编译,产生“.JED”文件后,就需要用编程器将JED文件固化(编程)到GAL中,以SuperPro编程器为例介绍编程器的使用。SuperPro编程器不仅能对GAL编程,还能对EPROM、EEPROM等器件进行编程。SuperPro编程器软件在Windows环境下使用,操作非常便捷。(1)启动SuperPro编程器开机前,将SuperPro编程器与计算机的打印机接口相

25、连,打开编程器电源开关。开机启动Windows,然后依次单击开始、程序、SuperPro L for windows就能打开SuperPro。(2)选择编程器件假如编程的芯片为GAL20V8B,运行 SuperPro后,在DEVICE TYPE框内单击PLD的单选按钮。在主界面的工具栏上,单击通过器件选厂家的按钮,给出相应的器件型号,最后单击“OK”,就可以对器件编程了。(3)插上芯片检查芯片的型号是否正确,引脚是否整齐正直(不齐要校正),在编程器上按芯片的正确方向插入需要编程的芯片(不能插反,否则会烧毁芯片)。(4)对芯片编程在工具栏上选择打开文件的按钮,找到并调入编译好的JED文件,然后按

26、一下工具栏上的编程按钮,就能在对话框中看到编程器对芯片的编程过程。(5)结束编程当对话框中显示“Verify OK”,表示编程成功。这时可以取下芯片,关闭SuperPro。五、实验方法与步骤1、 与微程序控制器、运算器的配套电路GAL芯片的逻辑实现(1)根据要设计的功能,写出SCC GAL、FLAG GAL、SHIFT GAL等外围电路的逻辑表达式;FLAGGAL.pldGAL20V8FLAG2006.11 2 3 4 5 6 7 8 9 10 11 12 CLK SST2 SST1 SST0 IB7 IB6 IB5 IB4 CY Zr OV GNDOE F3 NC C0 C Z V S Q0

27、 RAM0 RAM3 VCCC0 := CYC := /SST2*/SST1*/SST0* C + /SST2*/SST1* SST0* CY + /SST2* SST1*/SST0* IB7 + SST2*/SST1*/SST0 + SST2*/SST1* SST0* RAM0 + SST2* SST1*/SST0* RAM3 + SST2* SST1* SST0* Q0Z := /SST2*/SST1*/SST0* Z + /SST2*/SST1* SST0* Zr + /SST2* SST1*/SST0* IB6 + /SST2* SST1* SST0* Z + SST2* Z V :=

28、 /SST2*/SST1*/SST0* V + /SST2*/SST1* SST0* OV + /SST2* SST1*/SST0* IB5 + /SST2* SST1* SST0* V + SST2* VS := /SST2*/SST1*/SST0* S + /SST2*/SST1* SST0* F3 + /SST2* SST1*/SST0* IB4 + /SST2* SST1* SST0* S + SST2* SDESCRIPTIONSHIFTGAL.pldSHIFTC0 MI7 SCI0 SSH0 SSH1 SCI1 MI5 MI4 MI3 CN OVR GNDNC C OV CY RA

29、M3 Q3 RAM0 Q0 NC CIN F3 VCCCIN = /SCI1*SCI0+SCI1*/SCI0*C+SCI1*SCI0*C0OV = /MI5*/MI4*/MI3*OVR+/MI5*/MI4*MI3*OVR+/MI5*MI4*/MI3*OVRCY =CNRAM3 = /SSH1* SSH0* C + SSH1*/SSH0* CN + SSH1* SSH0* /F3*OVR + SSH1* SSH0* F3*/OVRRAM0 = /SSH1 * SSH0* C + SSH1 */SSH0* Q3Q3 = SSH1*/SSH0* RAM0+SSH1*SSH0*RAM0Q0 = SSH1*/SSH0*/F3CIN.OE = VC

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1