




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、目录前言2第一章 课程设计内容21.1 实验要求21.2 实验目的2第二章 实验原理及方案22.1 实验原理22.2 实验方案22.2.1 指令系统.52.2.2 模型计算机硬件62.2.3 微指令设计62.2.3.1 微代码定义62.2.3.2 微代码具体设计72.2.4 控制台解释微程序82.2.5 运行指令流程图2第三章 具体设计过程93.1 各个主要基本部件设计23.1.1 算术逻辑部件(alu)23.1.2 程序计数器(pc)23.1.3 寄存器23.1.4 存储器23.2 模型机顶层框图设计2第四章 程序测试和指令调试24.1 波形仿真24.2 实验调试2第五章 设计总结与体会2参
2、考文献2前言计算机诞生以来,计算机还是主要由运算器、控制器组成cpu,用二进制数字表示计算机的操作指令和数据,将其存放在存储器中,通过cpu自动地从存储器提取指令和数据,并按照指定的顺序完成各项任务。这也改变了又来人们的生活。同事随着大规模集成电路技术的开发,计算机组织设计与实现技术也在不断发展。现在,不仅软件可编程,硬件电路也可以编程所以,在这个时候,我们更要注重一台电子计算机的整体模型,而不是一味的强调怎样去追求这个时代的计算机发展速度。这已经成为我们为更新计算机硬件的必备知识。让学生通过动脑和动手解决计算机设计中的实际问题,本次课题设计便是为此应运而生的。在这次课程设计当中,我们需要结合
3、计算机组成原理的基本理论,利用eda技术和fpga技术设计实现一个8位模型计算机。因此,我们需要掌握alu,微程序控制器,时序产生电路,数据通路,存储器,指令系统单元电路的设计方法,并且在此基础上,进一步将单元电路组成系统,构造一台基本模型计算机。本报告便是通过对各关键部位进行单元和集成仿真测试后,下载到目标芯片里,最终形成一个功能较为完善的8位模型计算机系统。第一章 课程设计内容1.1 实验要求在quartus 6.0上完成8位模型机的设计。具体的要求如下:(1)在定义五条机器指令,并编写响应的微程序作为模型计算机的控制器;(2)使用电路框图设计模型计算机电路,并下载编程芯片为定制的简单模型
4、cpu. (3)在实验系统上连接输入按键和输出液晶显示屏为输出的模型计算机系统。1.2 实验目的(1)深入理解基本模型计算机的功能和组成知识;(2)深入学习计算机各类典型指令的执行流程;(3)学习微程序控制器的设计过程和相关技术,掌握lpm_rom的配置方法;(4)掌握微程序的设计方法,学会编写二进制微指令代码表; (5)在掌握部件单元电路实验的基础上,进一步将单元电路组成系统,构造一台基本模型计算机;(6)通过这次的课程设计让学生通过动脑和动手解决计算机设计中的实际问题。综合运用所学计算机组成原理知识,在掌握部件单元电路实验的基础上,进一步将其组成系统构造一台基本的模型计算机,掌握整机概念,
5、并设计机器指令系统,编写程序,在所设计的模型计算机上调试运行。第二章 实验原理及方案2.1 实验原理本实验将能在微过程控制下自动产生各部件单元控制信号,实现特定的功能。实验中,计算机数据通路的控制将由微过程控制器来完成,cpu从内存中取出一条机器指令到指令执行结束的一个指令周期,全部由微指令组成的序列来完成,即一条机器指令对应一个微程序。该模型机的总的数据通路如图2.1.1所示。图2.1.1 模型机的数据通路2.2 实验方案2.2.1 指令系统本实验采用五条机器指令。指令编码如下表:表一 指令编码助记符操作码addr地址码功能描述in00h“input”r0,键盘输入数据add addr10h
6、xxhr0+addr r0sta addr20hxxhr0addrout addr30hxxhbus“output”,显示输出数据jmp addr40hxxhaddrpc指令分单字节和双字节,单字节指令只有in一条,其余都是双字节指令。指令各式如表二和表三。表二 单字节指令格式7 6 5 43 21 0操作码源寄存器目的寄存器表三 双字节指令格式7 6 5 4 3 2 1 07 6 5 4 3 2 1 0操作码操作数(内存地址码)源和目的寄存器可以是三个工作寄存器之一,寄存器标号r0为00,r1为01,r2为10。为了在试验台上用键盘输入程序和数据到内存,以及通过液晶屏显示输出,设计了3个控制
7、台操作命令,通过按键swb 和swa组合实现(括号中是swb,swa的键值): 存储器读krd(00)操作,存储器kwe(01)操作,启动程序执行rp(11)操作。2.2.2 模型计算机硬件在本此设计的模型机硬件主要有以下部分组成:运算器:采用8位运算器alu181,实现算术逻辑运算。该电路的两个操作数输入端设置两个寄存器dr0和dr1。程序计数器pc:用来指示执行指令的地址,以便从内存取得指令。地址寄存器ar:存放并输出访问内存单元的地址。指令寄存器ir:锁存取得的指令,供控制电路解码分析执行。此外,还提供了3个工作寄存器r0,r1和r2。存放可编程程序和数据的存储器ram也在芯片上实现(像
8、单片机一样)。各个功能模块通过总线连接。控制器采用微程序设计。整个模型机各功能部件的工作及通路连接的微操作代码如表3.11和表3.12所示。采用字宽24位的rom存放微程序,3个3-8译码器组成24位输出译码电路。2.2.3 微指令设计 2.2.3.1 微代码定义由于在本次设计的模型机中只设计五条指令,以及它们所实现的任务,可以将每条微指令用24位的微代码来表示,如表四所示表四 24位微代码定义24232221201918171615 14 1312 11 109 8 7654321s3s2s1s0mcnwea9a8a字段b字段c字段ua5ua4ua3ua2ua1ua0操作控制信号译码器下址字
9、段 如表四所示的24位微代码信号的功能解释如下: s3-s0,alu的操作选择信号,控制执行16种算术逻辑操作之一种; m,alu操作方式选择,等于o为算术操作,等于1时执行逻辑操作; cn ,进位标志,等于0时,最低位有进位输入,等于1表示无进位; we,控制ram的读写信号,0值为读,1值为写; a9,a8,经译码产生键盘sw_b,存储器ram,输出显示led通路选择信号; a字段, 经译码产生各部件从总线输入选通信号,参考表五;表五 微指令译码字段说明a字段b字段c字段151413选择121110选择987选择000000000001ldri001rs_b001p(1)010ldr101
10、0rd_b010p(2)011ldr2011rj_b011p(3)100ldir100sft_b100p(4)101load101alu_b101ldar110ldar110pc_b110ldpc b字段, 经译码产生各部件到总线输出选通信号,参考表五; c字段, 经译码产生测试转移p1p4,装入程序计数器ldpc,参考表五; a5a0,微程序地址信号 2.2.3.2 微代码具体设计综上所述,实现模型机指令的解释与执行的微程序代码。这些微代码写入rom 中。注意,表六中的微地址是8进制表示。表六微代码微地址微指令s3 s2 s1 s0 m cn we a9 a8 abca5a000018110
11、0 0 0 0 0 0 0 1 10000001000100000101ed820 0 0 0 0 0 0 1 11101101100000100200c0480 0 0 0 0 0 0 0 11000000010010000300e0040 0 0 0 0 0 0 0 11100000000001000400b0050 0 0 0 0 0 0 0 10110000000001010501a2060 0 0 0 0 0 0 1 101000100000011006919a011 0 0 1 0 0 0 1 10011010000000010700e00d0 0 0 0 0 0 0 0 1110
12、000000001101100010010 0 0 0 0 0 0 0 00010000000000011101ed830 0 0 0 0 0 0 1 11101101100000111201ed870 0 0 0 0 0 0 1 11101101100001111301ed8e0 0 0 0 0 0 0 1 11101101100011101401ed960 0 0 0 0 0 0 1 1110110110010110150382010 0 0 0 0 0 0 1 10000010000000011600e00f0 0 0 0 0 0 0 0 11100000000011111700a015
13、0 0 0 0 0 0 0 0 10100000000101012001ed920 0 0 0 0 0 0 1 11101101100100102101ed940 0 0 0 0 0 0 1 11101101100101002201a0100 0 0 0 0 0 0 1 1010000000010000230180010 0 0 0 0 0 0 1 1000000000000001240620110 0 0 0 0 1 1 0 001000000001000125010a010 0 0 0 0 0 0 1 00001010000000012600d1810 0 0 0 0 0 0 0 1101
14、0001100000012.2.4 控制台解释微程序为了在实验台上用键盘输入程序和数据到内存,以及通过液晶屏显示输出,设计了3个控制台操作命令,通过安检swa和swb组合实现,同时根据微代码的设计可以将控制台设计为如下的解释微程序。控制台键盘译码微程序流程如图2.2.4.1所示。图2.2.4.1 控制台键盘译码微程序流程2.2.5 运行指令流程图根据每条机器指令执行的微操作顺序,微程序流程图如下图:第三章 具体设计过程 3.1 各个主要基本部件设计在设计模型机的主要的顺序是从底层开始设计,逐步向上设计,最后实现顶层的电路图的设计。3.1.1 算术逻辑部件(alu)alu是计算机的核心部件之一,
15、它能执行加法和减法等算术运算,也能执行“与”、“或”等逻辑运算。alu的基本功能根据74ls181的功能用vhdl编辑而成的。本次设计中的运算器功能部件可以对8为数据进行算术/逻辑运算,采用硬件描述语言 vhdl设计。该元件,共有两个数据输入端a70、b70,s30控制执行16种算术/逻辑运算中的一种,m端控制操作方式的选择(算术运算和逻辑运算),cn表示进位标志(进位和无进位)。具体设计如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity alu181 is port ( s :
16、in std_logic_vector(3 downto 0 ); a : in std_logic_vector(7 downto 0); b : in std_logic_vector(7 downto 0); f : out std_logic_vector(7 downto 0); cout : out std_logic_vector(3 downto 0); m : in std_logic; cn : in std_logic; co : out std_logic; fz : out std_logic );end alu181;architecture behav of al
17、u181 issignal a9 : std_logic_vector(8 downto 0);signal b9 : std_logic_vector(8 downto 0);signal f9 : std_logic_vector(8 downto 0);begin a9 = 0 & a ; b9 if m=0 then f9=a9 + cn ; else f9 if m=0 then f9=(a9 or b9) + cn ; else f9 if m=0 then f9=(a9 or (not b9)+ cn ; else f9 if m=0 then f9= 000000000 - c
18、n ; else f9 if m=0 then f9=a9+(a9 and not b9)+ cn ; else f9 if m=0 then f9=(a9 or b9)+(a9 and not b9)+cn ; else f9 if m=0 then f9=a9 -b9 - cn ; else f9 if m=0 then f9=(a9 and (not b9) - cn ; else f9 if m=0 then f9=a9 + (a9 and b9)+cn ; else f9 if m=0 then f9=a9 + b9 + cn ; else f9 if m=0 then f9=(a9
19、 or (not b9)+(a9 and b9)+cn ; else f9 if m=0 then f9=(a9 and b9)- cn ; else f9 if m=0 then f9=a9 + a9 + cn ; else f9 if m=0 then f9=(a9 or b9) + a9 + cn ; else f9 if m=0 then f9=(a9 or(not b9) +a9 + cn ; else f9 if m=0 then f9=a9 -cn ; else f9 f9= 000000000 ; end case; if (a9=b9) then fz = 0 ; else fz = 1; end if; end process; f= f9(7 downto 0) ; co = f9(8) ;cout 读取指令-翻译指令-执行指令。这一过程即是冯诺依曼计算机思想的精髓,也是当代计算机的基本工作原理和工作过程。了解
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 传媒公司协议合同范本
- 制作简易合同范本
- 农户贷款保证合同范本
- 农村住宅设计合同范本
- 上海植物租摆合同范本
- 公积金租房合同范本
- 五人合伙合同范本
- 二手公寓房购买合同范本
- 正规合同范本买卖
- 仓库货品保管合同范本
- GB/T 5534-2008动植物油脂皂化值的测定
- GB/T 3452.2-2007液压气动用O形橡胶密封圈第2部分:外观质量检验规范
- GB/T 30797-2014食品用洗涤剂试验方法总砷的测定
- GB/T 20057-2012滚动轴承圆柱滚子轴承平挡圈和套圈无挡边端倒角尺寸
- GB/T 19808-2005塑料管材和管件公称外径大于或等于90mm的聚乙烯电熔组件的拉伸剥离试验
- GB/T 12771-2019流体输送用不锈钢焊接钢管
- 工程验收及移交管理方案
- 班组建设工作体系课件
- 图片编辑概述课件
- 第章交通调查与数据分析课件
- 2023年岳阳职业技术学院单招职业技能考试笔试题库及答案解析
评论
0/150
提交评论