简易计算机系统(CPU)综合设计
AC-NEWBIE
得之淡然 失之坦然
展开
-
简易计算机系统综合设计--前言
前言: 楼主是计算机系大二的一名学生,这次的CPU设计是课程《逻辑与计算机基础》的一个课题任务,由于之前没有学习使用过Quartus ||,故实验的过程中还是遇到了相当多的困难的。并且当去查阅相关资料时(百度),得到的资料也不多,故在此总结、记录我在这一次的学习的经历以及过程中得到的经验,也希望日后对各学弟妹有一定的帮助,少走一点弯路。在此过程中存在的问题也期望各位的批评指正。原创 2018-01-07 17:12:52 · 807 阅读 · 2 评论 -
简易计算机系统综合设计--CPU综合
当完成了各个部件之后,接着要做的就是把各个部件组装起来,配合运作,要使所有部件能够协调地运作,首先得要有一个比较明朗的思路,我们先来分析一下CPU的运行流程: 上图为简易计算机系统的整体构架,现对其运行整体流程进行说明:(1)取址阶段:Ⅰ)不受时钟控制的输入(由SM=0确定)有:①MADD=“00”(选择器选择从PC传输来的地址);②LDPC=‘1’,INPC=‘1...原创 2018-01-27 17:54:44 · 3809 阅读 · 12 评论 -
简易计算机系统综合设计--时钟节拍
根据部件各个的控制信号,我们知道有些部件需要时钟有些不需要时钟,这些需要时钟信号的部件有些可以同时运作,不如PC计数器的加一操作和指令寄存器的存指令操作,但是有些部件就一定需要一个先后顺序,比如说加法,肯定是要等运算完以后才给通用寄存器时钟信号去吧运算结果存进指定的寄存器。所有这里的多个时钟信号的周期必然有区别,处理的方法这里说两种思路:设置多个时钟信号,可以同时进行部件公用一个时钟信原创 2018-01-27 01:04:23 · 851 阅读 · 0 评论 -
简易计算机系统综合设计--C,Z寄存器
看过了控制器的设计以后,你可能会注意到控制器有两个输入C和Z不是来源于译码器的输出,这里对C和Z进行说明。 C和Z的值分别是跳转指令JC和JZ是否有效的一个判断条件:当C=1时,JC有效;Z=1时,JZ有效。C是逻辑运算的进位输出,包括加法的进位、减法的借位以及移位时被移出去的那一位(注意是移出去的那一位,不是最高位)。Z的值由加法和减法控制,当运算结果为0时,Z=1。 既然只有当执行原创 2018-01-26 23:14:39 · 1524 阅读 · 0 评论 -
简易计算机系统综合设计--控制器
控制器,看名字就可以大概知道这个部件的作用了--根据指令产生各个部件的控制信号。也就是我们所有的部件控制信号都是通过这个控制器发出来的,而这些信号的产生是根据具体的指令来控制的,这个过程都由控制器完成。 实现这个部件有两个基本的思路:对于每一条指令(共16条):根据判断给来输出对应的信号。这样有什么好处呢,显然,通过每一条指令我们很容易给出所有控制信号应该被赋予的值,那么我们也很原创 2018-01-26 22:57:59 · 1219 阅读 · 0 评论 -
简易计算机系统综合设计--移位逻辑
这个部件需要实现的功能也特别简单,只需要根据操作类型来对输入进行相应输出即可,不过这里需要注意的一点是,根据总的数据通路的图可知,最终该部件的输出与RAM的输出是连到同一条总线上的,为避免数据冲突,这里的输出应该设置三态输出(实际上不设置三态会错报),即当移位逻辑在执行阶段不需要传输数据时让其输出高阻态。因为正常情况下,移位逻辑的F(直传),FL(左移),FR(右移)有且只有一个为高电平,所以当不原创 2018-01-26 18:41:01 · 775 阅读 · 0 评论 -
简易计算机系统综合设计--RAM存储器
前面已有粗略地提了一下该部件的作用--储存指令,这里对具体过程进行说明。我这里没用VHDL代码写RAM存储器(不会QWQ),用的是库里面的lmp_ram_io. 首先我们看一下库里面的RAM:(1)开始显然看不懂各个端口具体的作用,所以我们可以去看一下lpm_ram_io的端口说明,操作步骤为:input Ports可以查看各个输入端口的作用,Trut原创 2018-01-26 14:11:20 · 2803 阅读 · 1 评论 -
简易计算机系统综合设计--选择器
这个部件的功能比较简单,一个选择输入端口,三个数据输入端口,根据选择输入将对应端口的数据输出即可,不需要时钟信号控制。 (1)VHDL代码:library ieee;use ieee.std_logic_1164.all;entity XZQ isport(MADD:in std_logic_vector(1 downto 0); F1:in std_logic_vect原创 2018-01-26 12:58:24 · 907 阅读 · 0 评论 -
简易计算机系统综合设计--PC计数器
PC计数器的作用是提供一个取指令的地址,需要支持自加一(顺序计数)和加载总线上数据(跳转)这两个功能。接着分析PC计数器的计数周期(频率),不能想到只有在需要取址或者跳转的时候才需要计数,所以这个是需要一个时钟控制的,并且可能有两个时刻需要计数:一个是在取址阶段需要将地址加一,另一个是在执行阶段中如果可以跳转的话需要计数,所以需要在这两个地方给PC计数器一个时钟信号。值得注意的是在取址阶段,这里取原创 2018-01-26 12:48:50 · 1954 阅读 · 1 评论 -
简易计算机系统综合设计--概述
概述: 我们的计算机在运行的过程中,操作流程可以大致看成一个:“取指令”->"执行指令"的过程。这次的设计便是基于这一思想进行简易计算机系统的设计。本次设计中的指令是一个8为的二进制串,通过不同的指令来实现不同的具体操作。 我们分析一下需要干什么? 首先考虑取指令: 我们首先需要储存指令,这样计算机才能去读取指令,故我们需要设计一个储存指令的东西--RAM存储器。R原创 2018-01-26 12:14:56 · 3693 阅读 · 4 评论 -
计算机系统结构实验-模型机的组成
前言:这次的模型机实验和上学期做的CPU本质上可以说是一样的,但是这一学期做的更加精致、完美,并且在实验板上的验证结果也完全正确。也学到了许多的新的东西,算是收获不小了。今年的模型机是以小组为单位做的,在此也感谢我们组各组员的付出。(多些人力量还是大些哈哈),此文也是在实验报告的基础上半修半该而成的。总线数据传输一、实验题目 总线数据传输二、基本知识点1...原创 2018-04-26 23:52:33 · 10526 阅读 · 13 评论