




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
东华理工大学信息工程学院课程设计报告课程:计算机组成与体系结构课程设计题目:基于VHDL的硬连线控制器设计研究 学生姓名:专 业:计算机科学与技术班 级:10204102指导教师: 2013年 1月 6日目 录一、 摘要-3二、 课程设计目的-4三、 课程设计的内容-4四、 课程设计的分析与步骤-5五、 经验和总结-10六、 参考文献-11七、 程序清单-11151、 摘要控制器是指挥计算机的各个部件按照指令的功能要求协调工作的部件,是计算机的神经中枢和指挥中心,由指令寄存器IR(InstructionRegister)、程序计数器PC(ProgramCounter)和操作控制器0C(OperationController)三个部件组成,对协调整个电脑有序工作极为重要。指令寄存器:用以保存当前执行或即将执行的指令的一种寄存器。程序计数器:指明程序中下一次要执行的指令地址的一种计数器,又称指令计数器。操作控制器:CPU内的每个功能部件都完成一定的特定功能。信息在各部件之间传送及数据的流动控制部件的实现。通常把许多数字部件之间传送信息的通路称为“数据通路”。信息从什么地方开始,中间经过哪个寄存器或多路开关,最后传到哪个寄存器,都要加以控制。在各寄存器之间建立数据通路的任务,是由称为“操作控制器”的部件来完成的。 控制器分组合逻辑控制器和微程序控制器,两种控制器各有长处和短处。 组合逻辑控制器设计麻烦,结构复杂,一旦设计完成,就不能再修改或扩充,但它的速度快。微程序控制器设计方便,结构简单,修改或扩充都方便,修改一条机器指令的功能,只需重编所对应的微程序;要增加一条机器指令,只需在控制存储器中增加一段微程序,但是,它是通过执行一段微程。具体对比如下:组合逻辑控制器又称硬布线控制器,由逻辑电路构成,完全靠硬件来实现指令的功能。 硬连线控制器是由基本逻辑电路组成的,对指令中的操作码进行译码, 并产生相应的时序控制信号的部件,又称组合逻辑控制器。 硬连线控制器由指令部件、地址部件、时序部件、操作控制部件和中断控制部件等组成(参见“中 央处理器”条目中的控制器部分)。其中操作控制部件用来产生各种操作控制命令,它根据指令要求和指令流程,按照一定顺序发出各种控制命令。操作控制部件的输人信号有:指令译码器的输出信号、时序信号和运算结果标志状态信号等。设计时根据指令流程、操作时间表得到各种操作控制命令的逻辑表达式,可采用由基本逻辑电路(与门、或门、与非门等)组成的逻辑网络来实现。也可采用可编程逻辑器件PLD来实现。PLD的“与”阵列及“或”阵列和操作控制命令的“与一或”逻辑表达式相对应,为设计组合逻辑控制器提供了一种理想器件。80年代出现的通用阵列逻辑电路热L与PAL(参见专用逻辑集成电路))具有与可编程逻辑器件PLD类似的结构,它不但可编程并且是可擦除的,为设计提供了更大的灵活性。 组合逻辑控制器的最大优点是速度快。但因其 线路复杂而且不规整,不便于调试、维护、修改,也不便于仿真不同的机器的指令集。组合逻辑控制器的基本组成:(1)指令寄存器用来存放正在执行的指令。指令分成两部分:操作码和地址码。操作码用来指示指令的操作性质,如加法、减法等;地址码给出本条指令的操作数地址或形成操作数地址的有关信息(这时通过地址形成电路来形成操作数地址)。有一种指令称为转移指令,它用来改变指令的正常执行顺序,这种指令的地址码部分给出的是要转去执行的指令的地址。(2)操作码译码器:用来对指令的操作码进行译码,产生相应的控制电平,完成分析指令的功能。(3)时序电路:用来产生时间标志信号。在微型计算机中,时间标志信号一般为三级:指令周期、总线周期和时钟周期。微操作命令产生电路产生完成指令规定操作的各种微操作命令。这些命令产生的主要依据是时间标志和指令的操作性质。该电路实际是各微操作控制信号表达式(如上面的AL表达式)的电路实现,它是组合逻辑控制器中最为复杂的部分。(4)指令计数器:用来形成下一条要执行的指令的地址。通常,指令是顺序执行的,而指令在存储器中是顺序存放的。所以,一般情况下下一条要执行的指令的地址可通过将现行地址加1形成,微操作命令“ 1”就用于这个目的。如果执行的是转移指令,则下一条要执行的指令的地址是要转移到的地址。该地址就在本转移指令的地址码字段,将其直接送往指令计数器。 控制器功能:(1)数据缓冲:由于I/O设备的速率较低而CPU和内存的速率却很高,故在控制器中必须设置一缓冲器。在输出时,用此缓冲器暂存由主机高速传来的数据,然后才以I/O设备所具有的速率将缓冲器中的数据传送给I/O设备;在输入时,缓冲器则用于暂存从I/O设备送来的数据,待接收到一批数据后,再将缓冲器中的数据高速地传送给主机。 (2)差错控制:设备控制器还兼管对由I/O设备传送来的数据进行差错检测。若发现传送中出现了错误,通常是将差错检测码置位,并向 CPU报告,于是CPU将本次传送来的数据作废,并重新进行一次传送。这样便可保证数据输入的正确性。 (3)数据交换:这是指实现CPU与控制器之间、控制器与设备之间的数据交换。对于前者,是通过数据总线,由CPU并行地把数据写入控制器,或从控制器中并行地读出数据;对于后者,是设备将数据输入到控制器,或从控制器传送给设备。为此,在控制器中须设置数据寄存器。 (4)状态说明:标识和报告设备的状态控制器应记下设备的状态供CPU了解。例如,仅当该设备处于发送就绪状态时,CPU才能启动控制器从设备中读出数据。为此,在控制器中应设置一状态寄存器,用其中的每一位来反映设备的某一种状态。当CPU将该寄存器的内容读入后,便可了解该设备的状态。 (5)接收和识别命令:CPU可以向控制器发送多种不同的命令,设备控制器应能接收并识别这些命令。为此,在控制器中应具有相应的控制寄存器,用来存放接收的命令和参数,并对所接收的命令进行译码。例如,磁盘控制器可以接收CPU发来的Read、Write、Format等15条不同的命令,而且有些命令还带有参数;相应地,在磁盘控制器中有多个寄存器和命令译码器等。 (6)地址识别:就像内存中的每一个单元都有一个地址一样,系统中的每一个设备也都有一个地址,而设备控制器又必须能够识别它所控制的每个设备的地址。此外,为使CPU能向(或从)寄存器中写入(或读出)数据,这些寄存器都应具有唯一的地址二、课程设计目的通过硬连线控制器以及其协作工作环境的设计,融会贯通教材上的内容,掌握计算计各功能模块的的工作原理,相互联系和来龙去脉,完整地建立计算机的整机概念。通过具体的动手操作,理论知识运用到具体硬件上,来激发学生的学习热情和主动性,培养学生的独立工作能力,自学查找相关资料的能力,培养学生的相互协作能力;在具体的时间活动中,将所学的知识综合运用,增长才干,并积累经验。通过学习对TEC-2000系统控制器部件相关程序的VHDL语言,学习了解VHDL语言。理解并学习各个部件之间的程序关联信息。培养严谨的科研作风,使学生利用先修课和计算机组成原理课程的理论知识和实验技能。在该课程所涉及的工程技术范围内,创造性地完成部件以及系统的分析、设计、组装和调试,从而加深学生对计算机组成原理课程内容的理解和掌握。三、课程设计的内容(1) 按教材给定的部分代码,编写和完善相关代码。(2) 通过编写运行相关代码,大概学习VHDL语言,了解相关代码的作用。(3) 通过Expert8.3中软件编译并运行相关软件4、 课程设计的分析与设计(整体系统设计概述)(1) 系统指令格式特点本机模型字长为8位,要求系统支持单字长指令和双字长指令,因此指令应是8位。为了简便,此设计选择8条具有代表性的指令,刚好指令的操作码部分只需要3位确定,寻址放式包括立即数寻址方式、寄存器寻址方式、存储器直接读写1 ADD RI,RJ格式7 5 4 3 2 1 0 000不用RIRJ 功能:RI RI+RJ 2SUB RI,RJ格式7 5 4 3 2 1 0 001不用RIRJ功能:RIRI-RJ3 AND RI,RJ格式7 5 4 3 2 1 0 010不用RIRJ功能:RIRIRJ 4LDR Ri,D 格式 7 5 4 3 2 1 0011Ri不 用D 功能:RiM(D)5STR Ri,D格式 7 5 4 3 2 1 0100Ri不 用D 功能:M(D)(Ri) 6JMPD格式 7 5 4 3 2 1 01 01Ri不 用D 功能: 无条件转移 PC D7OUT Ri,Mj格式 7 5 4 3 2 1 01 1 0RiMj 功能: (M j) Ri8 TEST RI,RJ格式 7 5 4 3 2 1 0111RIRJ功能: RIRI OR RJ其中RI,RJ 是4个通用寄存器,有2位决定。D 为立即数。MJ为断口地址 (2)总体设计 硬连线控制器由程序计数器PC(提供指令地址),指令寄存器IR(保存指令内容),控制信号产生电路CU(产生计算机各部件所需要的控制信号),节拍发生器Timing(提供指令执行步骤)组成。下面分别对这些部件的设计做描述1 程序计数器程序计数器保存一条指令在内存中的地址,用于到内存指定单元读取读取指令;它具有自行增值(形成相邻的下一条指令的地址)和接受下一条要执行指令的地址的功能(转移指令)。在硬件中,它就是一个寄存器2 指令寄存器指令寄存器用于暂时保存从内存中读取的指令并提供操作码信息作为控制信号产生的条件到时序信号发生部件。也是用一个寄存器实现这个功能。寄存器位数由指令的位数决定。3 节拍发生器节拍发生器是多位触发器的输出信号的不同组合状态,来标志每条指令的不同执行步骤4 控制信号产生部件它依据指令的操作码,指令执行步骤作为输入,使用大量组合逻辑门电路来形成并提供出计算机各部件当前时刻要用到的控制信号。设计过程中要列出每个控制信号的逻辑表达式,再对全部的控制信号的逻辑表达式进行综合化简,得到最尽量可能简单的逻辑实现,有利于提高机器的运算速度和降低成本。下图所示的方案采用三总线结构,即地址总线,数据总线,控制总线。硬连线控制器就是通过控制总线把控制信号传给系统的各个部件的。内存储器,I/O设备是通过数据总线将操作数传输给通用寄存器,然后再传输给数据缓冲寄存器,经过运算器运算,将结果返回到数据总线。另外,执行算术逻辑指令时,先将第一个操作数由通用寄存器Ri送至缓冲寄存器DR1,然后再由通用寄存器Rj取第二个操作数送至缓冲寄存器DR2,之后送往ALU进行运算。显然,执行条算术逻辑指令的时间相应要长一些。总体数据通路图路 (3)控制流程设计 由于读取指令和检查有无中断请求是2个公操作,所以可以把他们独立的设计成两个执行步骤,对于本模型中的10条指令,(1)加法,减法指令是寄存器寻址方式操作,指令执行步骤是一样的,只是加减的区别(2)LDR指令是写寄存器指令,为寄存器寻址方式(3)STR为读寄存器指令,也为寄存器寻址方式 (4)JMP指令是立即数寻址方式指令,跳转指令(5)与或运算指令:寄存器寻址方式,执行两个数的与或运算,将结果保存在某个寄存器中 为了简化节拍发生器的逻辑实现,首先应划分基本指令的执行步骤和安排每个步骤所执行的处理功能的设计,得到的设计结果。本模型机指令执行流程图如下 (4)硬连线控制器设计 1.相关代码解释(部分) 本程序主要是给出的控制器模块Controller的相关代码,在Entity部分通过 Port语句说明了控制器部件的输入输出信号。在Architecture部分,首先说明了在控制器 部件内使用的一批信号,包括程序计数器pc和指令寄存器ir。在begin之后的执行语句,包括描述多路数据选择的with语句。描述寄存器接收控制的process语句。 节拍发生器timing是非常典型的时序电路,以有限状态自动机的方式运行,可以用状态转换图表示状态的转换关系,这里需要用process语句,并把系统总清reset信号和时钟脉冲clock信号用作为它的敏感信号。Reset信号使计算机进入启动之前的准备状态,使timing取“100”编码的初始状态。Clock信号的状态变化将processs内部的case语句描述。但在执行周期则需要依据指令类型来决定是转回取值周期还是转到内存读写周期,内存读写周期结束后必定转回取值周期。 控制信号产生先开路contrl_signals是组合逻辑电路,用一个process语句描述。这个线路的功能是产生并向各个部件提供他们运行所需要的控制信号,这是控制器设计的重点部分。控制器产生控制信号的基本依据是当前的指令和指令执行所处的步骤,为此在设计中,使用两层的case语句来识别并处理这两部分内容,用外层的case语句来识别指令执行步骤,再在每一步骤内用内层的case语句来识别当前执行的是那一条指令,则CU控制单元可以给出每个被控制对象此时此刻需要用到的控制信号。选用这种处理方案的优点是的条理清晰,概念准确,易于理解。这里用到process内部语句顺序执行的特性,在process语句开始时首先向大部分的控制信号附一个初值,之后再给出一条指令的一个执行步骤的控制信号时,只需要写出那些与其初值不同的控制信号的当前值即可。 以下是部分代码详解: library ieee; -程序中用到的库文件 entity controller is; -工程文件的实体部分,说明其输入输出信号的属性和类型 port(clock:in std_logic; -时钟脉冲 reset :in std_logic; -系统总清信号 ir :out std_logic_vector(15 downto 0); -输出的指令内容,用于显示 dr,sr是用来送运运算器的寄存器编号dr和sr flag_c,flag_z是来自标志位寄存器的c和z Ib为双向如初的内部总线 architecture behavioral of controller is -工程文件的结构体部分,描述部件的组成与行为 signal pc_src :std_logic_vector(1 downto 0); -控制器内部使用的逻辑电路和控制信号 signal timing :std_logic_vector(2 downto 0); -节拍发生器 signal adder_output :std_logic_vector(15 downto 0); -程序计数器 icode =ir_inter(15 downto 8); -指令操作码 dr =ir_inter(7 downto 4); -目的寄存器编号 sr =ir_inter(3 downto 0); -源寄存器编号 之后begin进入if判断语句,判断系统总清操作 下一个begin语句开始提供各个部件所需要的控制信号 在下一个begin为子程序调用指令暂存返回地址到NPC寄存器 ir=ir_inter; -把指令寄存器的内容输出,用于显示 time_cyc=timing; -把节拍发生器的内容输出,用于显示 2.结构框图 MACH4器件用来产生由设计者自己实现的已有指令所使用的全部时序控制信号,而7片GAL器件用来产生由实验者扩展的新的指令所使用的全部时序控制信号。MACH4和GAL器件的内部都由“与-或”两级组合逻辑门电路组成,并且运行于组合逻辑方式,它们的输入主要是指令寄存器的的操作码,节拍发生器的状态编码,输出的全部时序控制信号。3.硬连线控制器逻辑模块五、经验与总结通过本次课程设计,让我对TEC-2000系统的相关硬连线控制器有了更加深入的了解,并通过相关的程序代码的阅读和学习,对VHDL语言有了基本的了解,虽然本次课程设计主要是运行了教材上的相关代码,但是也有中间补充的相关代码,并在老师的辅导下完成了本次的课程设计。更主要的是通过本次的课程设计,使我对计算机相关部件又有了更深入的了解。本次课程设计最大的遗憾是没有成功运行程序,因为对VHDL语句初次接触,但通过Expert8.3程序解决了好几个错误,并学会的如何使用Expert8.3以及对软件有了更深入的了解。六、参考文献1 王诚、宋佳兴,计算机组成与体系结构(第二版),北京:清华大学出版社,2011年2 7、 程序清单library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity controller is; port(clock:in std_logic;reset :in std_logic;ir :out std_logic_vector(15 downto 0);dr :out std_logic_vector(3 downto 0);sr :out std_logic_vector(3 downto 0);flag_c :in std_logic;flag_z :in std_logic;ib :inout std_logic_vector(15 downto 0);a_sel :out std_logic;b_sel :out std_logic_vector(1 downto 0);reg_src :out std_logic_vector(1 downto 0);reg_wt :out std_logic;r_sel :out std_logic_vector(1 downto 0);s_sel :out std_logic_vector(1 downto 0);alu_func :out std_logic_vector(2 downto 0);flag_func :out std_logic_vector(2 downto 0);y_sel :out std_logic;ar_wt :out std_logic;y_ib :out std_logic;gate_en :out std_logic;gate_dir :out std_logic;mio :out std_logic;req :out std_logic;we :out std_logic;time_cyc :out std_logic_vector(2 downto 0);pc_out :out std_logic_vector(15 downto 0);addr_sel :out std_logic_vector(1 downto 0);end controoler;architecture behavioral of controller is signal pc_src :std_logic_vector(1 downto 0); signal timing :std_logic_vector(2 downto 0); signal adder_output :std_logic_vector(15 downto 0); signal pc :std_logic_vector(15 downto 0); signal npc :std_logic_vector(15 downto 0); signal ir_inter :std_logic_vector(15 downto 0); signal offset :std_logic_vector(15 downto 0); signal pc_input :std_logic_vector(15 downto 0); signal icode :std_logic_vector(15 downto 0); signal add_src :std_logic; signal pc_wt :std_logic; signal ir_wt :std_logic; signal npc_ib :std_logic; signal npc_wt :std_logic; begin icode =ir_inter(15 downto 8); dr =ir_inter(7 downto 4); sr =ir_inter(3 downto 0); time_keeper:process(clock,reset) begin if(reset=1) then timingtimingif (ir_inter(15)=1) and (ir_inter(8)=1) or (ir_inter (11 downto 8)=1110) or (ir_inter (14 downto 8)= 1100000) then timing =011; else timingtimingtiming=000; end case; end if; end process time_keeper; produce_ctlsig:process(timing)begin a_sel=0;b_sel=00;reg_wt=0;flag_func=000;y_ib=0; s_sel=00;ar_wt=0;alu_func=000;npc_ib=0; y_sel=0;r_sel=00;add_src=0;mio=0; reg_src=00;gate_en=0;gate_id=0;pc_src=00;pc_wt=0;npc_wt=0; we pc_wt=1; ir_wt case icode is when X00= flag_func=001;reg_wtalu_func=100;flag_func=001;reg_wtalu_func=001;flag_funcalu_func=001;flag_func=001;reg_wt=1;r_selreg_src=01;flag_func=100;reg_wt=1;r_selb_sel=10;y_ib=1;r_sel=01;we=1; gate_dir=1;gate_en=1;mio=1;reg=1; if(ir_inter(7 downto 4)=1000) then io_csadd_src=1;if flag_c=1;then pc_wtpc_src=01; pc_wtb_sel=01;r_sel=11; alu_func=001;reg_wt=1; ar_wt=1;pc_src=01;pc_wtsel=01;ar_wtnull;end case;when 001=gate_en=1;mio=1;req=0;wenpc_ib=1; gate_dir=1;wes_sel=01; r_sel=10; reg_wtnell; end case; when others=null; end case; end process produce_ct
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 健康教育培训知识题课件
- 俱乐部饮水安全培训计划课件
- 集团档案组管理办法
- 建行岗位考试题库及答案
- 2025年病理学乳腺癌组织病理学特征分析答案及解析
- 税务违法检举管理办法
- 企业安全管理培训目的课件
- 食品安全风险评估模型-洞察及研究
- 出行安全课件
- 出行安全培训课件
- 儿童智能玩具调研报告
- 广州知识产权法院民事判决书
- 尿道损伤的分类与治疗
- 供配电技术基本知识课件
- 应急信息报送制度
- 铁道车辆构造与检修高职PPT完整全套教学课件
- 浙人美2011版四年级美术上册《水资源》教案及教学反思
- 《机电设备组装与调试》课程标准
- 电力市场交易体系规则培训PPT
- 350吨汽车吊地基承载力验算
- 2023年高等教育文学类自考-03297企业文化考试参考题库(含答案)
评论
0/150
提交评论