




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机组成原理课程设计指导教师: 学生班级: 学生姓名: 学 号: 班内序号: 课设日期:2012/12/172012/12/28目 录1、 设计目的12、 设计要求13、 设计方案14、 较详细的设计过程25、 编程与调试程序方法的介绍146、 结果及分析147、 收获、体会及建议15一、设计目的 1. 主要掌握微程序控制结构计算机的设计方法,通过对机器指令和相对应微程序的设计,加深对微程序控制器的理解,加深对微程序设计特点的了解,加深对计算机各部件的理解以及对整机结构的理解。 2掌握几种寻址方式的控制执行过程。 3了解多累加器计算机的特点。 4熟悉VHDL语言的编程。2、 设计要求1运算器采用单累加器多寄存器结构2指令系统:16条以上指令,有I/O指令,外部设备统一编址。3内存寻址范围1K以上字节寻址方式: 寄存器直接寻址 寄存器间接寻址 直接寻址 立即数寻址4可执行从键盘上输入的十进制两位数与两位数加法程序并打印输入的数据及结果或实现两数相加通过数码管显示结果。三、设计方案1首先设计整机逻辑框图,并分析各主要部件中所使用的关键器件,彻底理解主要芯片的工作原理。根据设计要求,对实验仪硬件模块进行逻辑剪辑组合,便可设计出该实验计算机的整机逻辑框图。为利于调试,应在逻辑框图上表明各器件的控制信号及必要的输出信号。 2指令系统和指令执行流程设计 指令系统需确定实验计算机的指令系统具体由哪里指令组成,包括哪几种类型指令,指令操作数有哪几种寻址方式,以及指令编码等。 指令执行流程 应根据实验计算机整机逻辑图来设计指令系统中每条指令的执行流程。 一条指令从内存取出到执行完,需要若干个机器周期(节拍)。任何指令的第一个机器周期都是“取指令周期”,或称为公操作周期。而一条指令共需几个机器周期取决于指令在机内实现的复杂程度。 3微操作控制信号和微程序设计 微操作控制信号及其实现方法综合实验计算机指令系统各指令执行流程中所涉及到的微操作控制信号,统计总共需要多少个微控制信号,每个信号的有效性,决定这些信号中哪些由软件(微指令)直接产生,哪些需用硬件实现。 设计微指令格式,微指令由32位组成,设计出每位微操作的定义。 确定微程序控制方式设计任务包括设计各微程序入口地址的形成方法和控存的顺序控制(即下地址形成)方法。 编写各指令的微程序,根据指令流程和微指令格式仔细地逐条填写微指令各码位。为减少填写错误,可边把本条微指令用到的微码(微操作控制信号)按预定的有效性填入,检查无误后,再对本条微指令用不到的微码(微操作控制信号)填入与预定的有效性相反的代码,核对无误后,最后将这32位微码缩写成8位十六进制微指令。4设计接线表要仔细设计接线表,因为它是组装计算机的依据。 为了避免遗漏,应按模块逐个归纳整理,明确各模块中器件各控制信号的处理方法。 对于模块中不用的器件,也应有所处理。4、 较详细的设计过程1 先熟悉课程设计任务。2 熟练掌握VHDL语言。3 实现基本门电路。4 用VHDL描述计算机各部件。1 存储器的VHDL描述 a.存储器的硬件描述图 b.存储器实验过程与信号 首先利用开关S0S7设置一个8位的数据,用于写入内存时使用。 第二步,利用开关S8、S9的组合生成一个4个字节的内存,内存地址如下:地址S9S8000101210311第三步,当S10=0 AND S11=1时,发出写内存信号,将开关S0S7设置的8位数据写入由开关S8、S9的组合指定的内存地址单元。第四步,当S10=1 AND S11=0时,发出读内存信号,将由开关S8、S9的组合指定的内存地址单元中的数据读出,由发光二极管L9L12显示。 c.存储器的VHDL描述Library IEEE;use IEEE.std_logic_1164.all;use IEEE.std_logic_unsigned.all;use IEEE.std_logic_arith.all; entity busv1 is Port ( CI: buffer std_logic_vector(19 downto 0); CO: in std_logic_vector(11 downto 0) );end busv1;architecture busv1_behav of busv1 issignal mux:std_logic_vector(1 downto 0);signal WR,RD:std_logic;beginmux = CO(9 downto 8);RD = CO(11);WR = CO(10);CI( 11 downto 0 ) TMP1 := CO(7 downto 0);-写入地址0号 when 01 = TMP2 := CO(7 downto 0);-写入地址1号 when 10 = TMP3 := CO(7 downto 0);-写入地址2号 when others = TMP4 := CO(7 downto 0);-写入地址3号 end case; elsif (WR=1 and RD=0) then -读内存 case mux is when 00 = CI(19 downto 12) CI(19 downto 12) CI(19 downto 12) CI(19 downto 12)= TMP4;-读地址3号 end case;end if;end process; end busv1_behav;2 寄存器的VHDL描述 a.寄存器的硬件描述图 b.计算机部件实验之寄存器的VHDL描述library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following lines to use the declarations that are- provided for instantiating Xilinx primitive components.-library UNISIM;-use UNISIM.VComponents.all;entity jicunqi isport( CI: inout std_logic_vector(12 downto 0); CO: in std_logic_vector(14 downto 0);end jicunqi;architecture Behavioral of jicunqi issignal RS:std_logic_vector(2 downto 0);signal R0,R1,R2,R3,R4,R5,R6,R7:std_logic_vector(7 downto 0);signal WRE,RDE,U244AOE,U244BOE:std_logic;signal U244A,U244B:std_logic_vector(7 downto 0);signal DBB,DBX:std_logic_vector(7 downto 0);constant bz:std_logic_vector:=ZZZZZZZZ;Function sizeIt(a:std_logic;len:integer)return std_logic_vector isvariable rep:std_logic_vector(len-1 downto 0);begin for i in reprange loop rep(i):=a;end loop; return rep;end sizeIt; begin-Define three-state ports U244A = CO(7 downto 0);DBX= (SizeIt(U244AOE,8) and U244A) or (SizeIt(U244BOE,8) and U244B);CI(7 downto 0) = DBX when (U244AOE or U244BOE)=1) else bz; DBB = CI(7 downto 0); RS R0R1R2R3R4R5R6R7 U244B U244B U244B U244B U244B U244B U244B U244B = R7; end case;end if;end process; U244BOE = CO(14);U244AOE = CO(13);WRE = CO(11);RDE = CO(12);CI(12 downto 8) = CO(12 downto 8);end Behavioral;3 运算器的VHDL描述a.运算器的硬件描述图 b.运算器实验过程与信号首先利用开关S0S7设置一个8位的数据,寄存在74LS244A,使开关S13(U244AOE)为低电平,使寄存在74LS244中的数据向总线输出。L13反映S13的状态。在总线上的数据可以通过L0L7看到。第二步,把总线上的数据送入74LS377保存,当S14为低电平(U377EN=0)并且S15有一个脉冲信号时从它输出送ALU的A端。第三步,利用开关S0S7设置一个8位的数据,寄存在74LS244A,使开关S13(U244AOE)为低电平,使寄存在74LS244中的数据向总线输出。L13反映S13的状态。在总线上的数据可以通过L0L7看到。第四步,当S16、S17都为1时,控制74LS373从总线接收数据,寄存。当当S16为1、S17为0时,控制74LS373中的数据送ALU的B端。第五步,利用S8S10的组合在8种计算中选择一个进行计算,选择表如下:(L8L10反映S8S10的状态,CIN由开关S11确定,L11反映S11的值)。FFS10S9S8FA + CIN000FA - CIN001FA or FB010FA and FB011FA + FB + CIN100FA - FB - CIN101FA * FB110FA xor FB111计算结束后,运算结果F送74LS244B,L15反映向高位的进位COUT。第六步,当S12为0时(L12反映S11的值),将74LS244B中的值送总线,一次运算结束。 c.计算机部件实验之运算器的VHDL描述library IEEE;use IEEE.STD_LOGIC_1164.ALL;use IEEE.STD_LOGIC_ARITH.ALL;use IEEE.STD_LOGIC_UNSIGNED.ALL;- Uncomment the following lines to use the declarations that are- provided for instantiating Xilinx primitive components.-library UNISIM;-use UNISIM.VComponents.all;entity yunsuan isport( -DB:inout std_logic_vector(7 downto 0); CI: inout std_logic_vector(15 downto 0); CO: in std_logic_vector(17 downto 0);end yunsuan;architecture Behavioral of yunsuan issignal U377Q:std_logic_vector(7 downto 0);signal U373Q,U244A,U244B:std_logic_vector(7 downto 0);signal DBB,DBX:std_logic_vector(7 downto 0);signal U377CLK,U377EN,U373GT,U373OE,U244AOE,U244BOE: std_logic;signal FA,FB,FF:std_logic_vector(8 downto 0);signal S:std_logic_vector(2 downto 0);signal CIN,COUT:std_logic;constant bz:std_logic_vector:=ZZZZZZZZ; - sizeIt replicates a value to an array of specific length. Function sizeIt(a: std_Logic; len: integer) return std_logic_vector is variable rep: std_logic_vector( len-1 downto 0); begin for i in reprange loop rep(i) := a; end loop; return rep; end sizeIt;begin-Define 74377 process (U377CLK) begin if (U377CLKevent and U377CLK=0) then if (U377EN=0) then U377Q = DBB; end if; end if; end process;-Define 74373 U373Q = DBB when (U373GT=1and U373OE=0) else (11111111 and U373Q); -define the ALU FA= 0&U377Q; FB= 0&U373Q; FF= FA + CIN when S =000 else FA - CIN when S =001 elseFA or FB when S =010 elseFA and FB when S =011 elseFA + FB + CIN when S =100 elseFA - FB - CIN when S =101 else FA * FB when S =110 elseFA xor FB when S =111; COUT=FF(8);U244B = FF(7 downto 0); -Define three-state ports U244A = CO(7 downto 0);DBX= (SizeIt(U244AOE,8) and U244A) or (SizeIt(U244BOE,8) and U244B);CI(7 downto 0) = DBX when (U244AOE or U244BOE)=1) else bz; DBB = CI(7 downto 0);-CI(7 downto 0) is the BUSCIN = CO(11);U244BOE = CO(12);U244AOE = CO(13);U377EN= CO(14);U377CLK= not CO(15) or U377EN;U373OE= CO(16);U373GT= CO(17);S(2 downto 0) = CO(10 downto 8);CI(14 downto 8) = CO(14 downto 8);CI(15) CLKG,O = CLKX);-Define RAM TADR(8)= 0;TADR(7)= 0;TADR(6) = 0;TADR(5 downto 0) = CO(22 downto 17);TCLK= CLKX; logic0 MWR, EN=MEN,RST=logic0,CLK=TCLK, ADDR=TADR,DI=DBB(7 downto 0),DO=DBY(7 downto 0); -Define 74377 process (U377CLK) begin if (U377CLKevent and U377CLK=0) then if (U377EN=0) then U377Q = DBB; end if; end if; end process;-Define 74374 process (U374CLK) begin if (U374CLKevent and U374CLK=0) then U374Q = DBB; end if; end process;-Define 74373 U373Q = DBB when (U373GT=1) else (11111111 and U373Q); -U373Q = (SizeIt(U373GT,8) and DBB) or (SizeIt(not U373GT,8) and U373Q);-Define three-state ports U244B = CO(7 downto 0);DBX= (SizeIt(U374OE,8) and U374Q) or (SizeIt(U373OE,8) and U373Q)or (SizeIt(U244OE,8) and U244B) or (SizeIt(MOE,8) and DBY);CI(7 downto 0) = DBX when (U374OE or U373OE or U244OE or MOE)=1) else bz;DBB = CI(7 downto 0);-CI(7 downto 0) is the BUS-Display 74377CI(15 downto 8) = U377Q;-Control signalsMOE = CO(23); MWR= CO(16);MEN= CO(15);U377EN= CO(14);U244OE= CO(13);U373OE= CO(12);U373GT= CO(11);U374CLK= not CO(10) or CLK;U374OE= CO(9);U377CLK= not CO(8) or U377EN;-Display control signals-CI(24 downto 16) = CO(16 downto 8);CI(23 downto 16) = DBY(7 downto 0);CI(24) = CO(8);-Connect all unused pinsIOR = 1;IOW= 1;CRD= 1;CWR= 1;MCLK =CLK;CTRL2 = 1;CTRL3 = 1;CTRL4 = 1;CTRL1 = 1;AB = DB;CI(31 downto 29) = MUX;CI(28) = RESET;CI(27) = PRIX;CI(26) = KRIX;CI(25) = RUN or CO(31) or CO(30) or CO(29) or CO(28) or CO(27) or CO(26) or CO(25) or CO(24);end busv1_behav;5 电路设计6 程序设计1) 应用程序设计概述1 本次课程设计使用的指令文件(CPU8B.DEF)2 目标代码生成2) 应用程序实现(编辑,汇编)1 找到桌面上的图标,, 启动 。2 加载指令定义文件CPU8B.DEF。3 检查加载的指令定义文件CP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年产880台矿用湿喷机项目可行性研究报告
- 年产52万件采油树主阀项目可行性研究报告
- 木皮项目可行性研究报告
- 教育咨询公司合伙协议书
- 湖南省农村土地承包经营权互换合同6篇
- 虚拟机保护技术-洞察及研究
- 挖挖机买卖合同2篇
- 土地承包合同变更协议4篇
- 天津市西青区中北中学2024-2025学年七年级下学期期中生物学试题(含答案)
- 河南省周口市等2地2025-2026学年高三上学期开学生物试题(含答案)
- 2025年山东高考真题化学试题(原卷版)
- 2025湖南湘潭市市直事业单位招聘(选调)工作人员48人考试参考试题及答案解析
- 第2课 教师节快乐 第2课时(课件)2025-2026学年道德与法治二年级上册统编版
- 2025年福建省福州市辅警考试题库(附答案)
- 2025年国家网络安全宣传周知识竞赛考试练习题库(完整版)含答案
- 绿化项目养护监理方案投标文件(技术方案)
- 科普短视频与新闻传播融合模式的研究
- 2025滨州市劳动合同范本(示范文本)
- 2025年教师资格证中学综合素质+教育知识与能力真题及答案
- 2025秋新部编版一年级上册语文教学计划+教学进度表
- (2025)社区网格员笔试考试题库及答案
评论
0/150
提交评论