收藏 分享(赏)

计算机设计与实践-第7讲.ppt

上传人:dreamzhangning 文档编号:3325450 上传时间:2018-10-13 格式:PPT 页数:31 大小:295KB
下载 相关 举报
计算机设计与实践-第7讲.ppt_第1页
第1页 / 共31页
计算机设计与实践-第7讲.ppt_第2页
第2页 / 共31页
计算机设计与实践-第7讲.ppt_第3页
第3页 / 共31页
计算机设计与实践-第7讲.ppt_第4页
第4页 / 共31页
计算机设计与实践-第7讲.ppt_第5页
第5页 / 共31页
点击查看更多>>
资源描述

1、计算机设计与实践,第七讲,第三步: 处理器结构设计,2,CPU 设计方法,CPU设计的基本思想有组合逻辑设计和微程序设计两种: 1.组合逻辑设计根据微操作的节拍安排,列出微操作命令的操作时间表,然后写出每一个微操作命令的逻辑表达式,最后根据逻辑表达式画出相应的组合逻辑电路图; 2.微程序设计思想是将一条机器指令编写成一个微程序,每一个微程序包含若干条微指令,每一条微指令对应一个或几个微操作命令,然后把这些微程序存到一个控制存储器中,用寻找用户程序机器指令的办法来寻找每个微程序中的微指令。微程序设计方法虽然简便,但需要占用较大的空间存放微程序。,CPU 设计方法,在RISC计算机中一般都采用组合

2、逻辑设计方法,这有利于进行流水线的设计,也能大大节省CPU的门数,对于降低CPU的功耗也有好处; 这里介绍的设计方法是组合逻辑设计的一种,但设计中不直接使用逻辑表达式,而是根据信息流的思想进行了模块的划分,给出CPU的基本结构框图。,4,基本的系统组成,根据机器周期的定义,系统划分为四个主要模块: 取指管理模块掌管取指周期 运算管理模块掌管运算周期 存储管理模块掌管访存周期 回写管理模块掌管回写周期 在一个指令周期中,取指、运算、访存、回写四个机器周期依次执行,由时钟管理模块统一进行调度,基本的系统组成,取指管理模块包含寄存器PC和IR,同时IR的内容将由该模块向其他模块提供运算管理模块包含运

3、算器,也就包含了通用寄存器,同时也包含了暂存器A、B、Addr、ALUOUT存储管理模块包含暂存器Rtemp回写模块包含暂存器Rdata、Raddr、PCnew,前两个用于寄存器回写,第三个用于PC的更新,时钟管理,取指管理,运算管理,运算器,存储管理,回写管理,主存储器,CLK,控制器,举例,通过LDA指令的执行过程展示一下各模块的功能: 在第一个机器周期中,取指管理模块根据PC的内容对主存进行访问,向主存发送16位的地址PC,读回数据总线上的16位数据信息存放到IR寄存器中,同时使PC前进,为下一次取指做准备 在第二个机器周期中,运算管理模块根据操作码的意义进行访存地址的准备,从R7寄存器

4、和IR的第二地址码两个部分组合形成实际地址Addr 在第三个机器周期中,存储管理模块根据操作码的意义进行访存,向主存发送16位的地址Addr,读回数据总线上的8位数据信息存放到Rtemp暂存器中 在第四个机器周期中,回写管理模块根据操作码的意义回写寄存器,将暂存器Rtemp的内容写入指定的Ri寄存器中,7,细化的处理器结构,在取指周期,存储器的访问是只读的,存储器的地址来自PC,数据去往IR;在访存周期,存储器的访问可能是读也可能是写;存储器只有一组,而取指周期和访存周期都可能对其进行访问,而且数据、地址的来源和去向均不同。为避免访问冲突、保证空闲时总线不被占用,应该对存储器的访问加以管理。,

5、细化的处理器结构,存储器访问设计 在主存储器与各管理模块之间增加一个访存控制模块 它接收来自取指管理模块的PC地址,访存后将IR内容返回给取指管理模块 它接收来自运算管理模块的ALUOUT,为访存周期的控制作准备 它在数据访问读周期向存储管理模块传送数据总线的16位信息增加了回写管理模块与取指、运算两模块之间的通路,用以支持PC和通用寄存器的更新,输出,输出输入,数据,PC,Addr,OP,ALUOUT,取指模块,存储管理,主存储器,地址总线,数据总线,访存控制,地址,细化的处理器结构,寄存器的回写 PC寄存器的更新由PCupdate信号控制,内容来自回写管理模块中的暂存器PCnew 在回写周

6、期里,PCupdate信号将根据指令操作码OP产生,当该信号发出时,取指管理模块将把暂存器PCnew的内容写入PC寄存器中,当下一条指令的取指周期到来时,PC就把更新后的内容传递到地址总线上,读取全新的指令 通用寄存器的更新由Rupdate信号控制,寄存器的地址来自回写管理模块中的暂存器Raddr,将写入寄存器的内容来自回写管理模块中的暂存器Rdata。在回写周期里,Rupdate信号将根据指令操作码OP产生,当该信号发出时,运算管理模块将把暂存器Rdata的内容写入Raddr所对应的寄存器中,细化的处理器结构,时钟管理,取指管理,运算管理,运算器,存储管理,回写管理,主存储器,CLK,Reg

7、,访存控制,PC,数据总线,地址总线,控制器,11,第四步:各功能模块结构设计框图及功能描述,自行设计 在设计方案中体现,第五步:各模块输入输出接口信号定义(以表格形式给出),自行设计 在设计方案中体现,第六步:用VHDL语言实现处理器的设计,下面是一些温馨提示,时钟模块,参见实验4,四拍循环 每一拍的输出控制哪些模块?,取指管理模块,IR送到哪儿? PC自加何时完成?,运算管理模块,通用寄存器组如何实现? 二维数组 根据操作码译码后,哪些指令需要通过运算器运算? 操作数的准备 地址的准备,存储管理模块,是否需要译码? 访存地址怎么给? 存数操作中,数据从哪来? 取数操作中,取来的数据放到哪?

8、,回写模块,仍然需要译码 包括回写寄存器和回写PC 回写要注意同时给出回写的地址和数据 回写在什么时间完成,访存控制模块,地址线控制 通过取指还是取数区分地址的来源 数据线控制 三态门控制,只在写存储器时将ALUOUT的数据给数据总线,其余时刻均设高阻 CPU的所有访问端口都通过访存控制模块输出,设计中需要思考的问题,一个输出能否直接连接到多个输入上? 多个输入能否直接连接到一个输出上? 8位寄存器和16位数据线的问题 按字寻址还是按字节寻址要和主存控制结合 每一个模块的波形仿真,要按照节拍给出正确输入 每一条指令在每个节拍、每个模块中所要完成的操作,以上设计仅供参考!,祝大家创新性的设计成功

9、自己的CPU!,FPGA设计流程,23,设计流程,第一步:按照“自顶向下”的设计方法进行系统划分 第二步:输入VHDL代码,这是高层次设计中最为普遍的输入方式 第三步:利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网表文件,这是将高层次描述转化为硬件电路的关键步骤 第四步:利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线 第五步:将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPGA或CPLD中,设计流程,设计输入阶段 第一步:按照“自顶向下”的设计方法进行系统划分 第二步:输入VHDL代码,这是高层次

10、设计中最为普遍的输入方式 第三步:利用综合器对VHDL源代码进行综合优化处理,生成门级描述的网表文件,这是将高层次描述转化为硬件电路的关键步骤 适用的综合工具有XST,Synplify,Leonardo Spectrum,FPGA Compiler II,设计流程,Xilinx 综合技术 XST 综合流程是逻辑设计的一个重要环节,综合结果的好坏直接影响着布局布线的最终效果。好的综合工具能够使设计占用芯片的物理面积最小、效率高、工作稳定、工作速度快。因此,综合工具通常与逻辑器件的物理结构有着密切的关系 不同的综合工具内部算法不同,对源程序与模块的分析和推论及最终产生的综合效果可能存在差异 XST

11、综合工具是Xilinx自己设计的综合工具,与自己的逻辑器件能够非常好地融合,设计流程,Xilinx的FPGA实现阶段 第四步:利用适配器将综合后的网表文件针对某一具体的目标器件进行逻辑映射操作,包括底层器件配置、逻辑分割、逻辑优化和布局布线转换:将多个设计文件合并为一个网表 映射:将网表中的逻辑符号(门)整合到物理元件(CLB和IOB)中 布局布线:将元件放到器件中,并将它们连接起来,同时提取出时序数据,并生成各种报告,设计流程,Xilinx的FPGA实现阶段 转换(Translate) 在转换过程中,多个设计文件和约束文件合并后,生成NGD(原始类型数据库)输出文件和BLD文件,其中NGD文

12、件包含了当前设计的全部逻辑描述,BLD文件是转换的运行和结果报告 映射(Map) 在映射过程中,由转换流程生成的NGD文件被映射为目标器件的特定物理逻辑单元,并保存在NCD(展开的物理设计数据库)文件中 布局和布线(Place & Route) 通过读取当前设计的NCD文件,布局布线将映射后生成的物理逻辑单元在目标系统中放置和连线,并提取相应的时间参数,设计流程,设计完成及下载 设计实现并完成后,必须建立一个FPGA可以识别的文件BIT文件(Generate Programming File),可以被直接下载到FPGA中第五步:将适配器产生的器件编程文件通过编程器或下载电缆载入到目标芯片FPG

13、A或CPLD中,常见错误,ERROR:Xst:415 - Synthesis failed WARNING:Xst:528 - Multi-source in Unit on signal ERROR:MapLib:93 - Illegal LOC on IPAD symbol “RST“ or BUFGP symbol “RST_BUFGP“ (output signal = RST_BUFGP), IPAD-IBUFG should only be LOCed to GCLKIOB site. 由于在process中某一个信号的扇出电路复杂,出现在综合中将该信号误认为是时钟 解决办法: 减小每个Process的长度 修改XST逻辑综合属性设置 XST按右键-Properties-Xilinx Specific Options-Number of Clock Buffers,改为0或1,The End,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报