微程序控制器设计与调试实验报告

济宁医学院 信息工程学院

微程序控制器模型计算机的设计与调试

09级计本2班 [1**********]1

李秋生

一台模型计算机的设计

一、教学目的、任务与实验设备

1.教学目的

(1)融会贯通本课程各章节的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,加深计算机工作中“时间—空间”概念的理解,从而清晰地建立计算机的整机概念。

(2)学习设计和调试计算机的基本步骤和方法,提高使用软件仿真工具和集成电路的基本技能。

(3)培养科学研究的独立工作能力,取得工程设计与组装调试的实践和经验。

2.设计与调试任务

(1)按给定的数据格式和指令系统,在所提供的器件范围内,设计一台微程序控制的模型计算机。

(2)根据设计图纸,在MAX+PLUS 平台上进行仿真,并下载到EL教学实验箱上进行调试成功。

(3)在调试成功的基础上,整理出设计图纸和其他文件。包括:①总框图(数据通路图);②微程序控制器逻辑图;②微程序流程图;④微程序代码表;⑤元件排列图(或VHD程序清单);⑥设计说明书;⑦调试小结。

2.实验设备

(1) PC机一台 (2) EL教学实验箱

(3) MAX+PLUS Ⅱ配套软件

二、数据格式和指令系统

本模型机是一个8位定点二进制计算机,具有四个通用寄存器:R0~R3,能执行11条指令,主存容量为256KB。

1.数据格式

数据按规定采用定点补码表示法,字长为8位,其中最高位(第7位)为符

数值相对于十进制数的表示范围为:

-1≤X≤1―2―7 三、总体设计

总体设计的主要任务是

(1) 选定CPU中所使用的产要器件;

(2) 根据指令系统、选用的器件和设计指标,设计指令流的数据通路; (3) 根据指令系统、选用的器件和设计指标,设计数据流的数据通路。 计算机的工作过程,实质上是不同的数据流在控制信号作用下在限定的数据通路中进行传送。数据通路不同,指令所经过的操作过程也不同,机器的结构也

就不—样,因此数据通路的设计是至关重要的。所谓数据通路的设计,也就是确定机器各逻辑部件相对位置的总框图。

数据远路的设计,目前还没有非常标准的方法。主要是依据设计者的经验,并参考现有机器的三种典型形式(单总线、双总线或三总线结构),根据指令系统的要求,可采用试探方法来完成。其主要步骤如下:

(1) 对指令系统中的各条指令进行分析,得出所需要的指令周期与操作序列,以便决定各器件的类型和数量。

(2) 构成一个总框图草图,进行各逻辑部件之间的互相连接,即初步确定数据通路,使得由指令系统所包涵的数据通路都能实现,并满足技术指标的要求。

(3) 检验全部指令周期的操作序列,确定所需要的控制点和控制信号。 (4) 检查所设计的数据通路,尽可能降低成本,简化线路。 以上过程可以反复进行,以便得到一个较好的方案。

图1给出了一个没有考虑乘法除法指令操作的总框图参考方案,注意,在此方案确定之后,应该检查所选用的各个器件是否满足数据通路的要求。实际上,数据通路的设计与器件的选择应同时进行而不能分离地工作。其次,接入总线的器件都要有三态输出,以便与总线连接。另外,在信息传送过程中应当注意器件原码和反码输出的配合关系。

图1所示的方案采用单总线结构,使用的许多器件都是三态输出,这种方案便于总线的连接和扩展,但缺点是指令和数据的传送都要经过总线,因此对总线的使用权就要分配得当。另外,执行算术逻辑指令时,先将第一个操作数由通用寄存器Ri送至缓冲寄存器DR1,然后再由通用寄存器Rj取第二个操作数送至缓冲寄存器DR2,之后送往ALU进行运算。显然,执行—条算术逻辑指令的时间相应要长一些。

图1 模型机数据通路框图

四、微程序控制器

数据通路框图—旦确定,指令流与数据流的通路也就随之最后确定,因而运算器和控制器的大部分结构也就确定下来了。

图1中各功能器件上还标注了控制点及其控制信号.这些控制信号就是微程序控制器进行设计的依据。

1.微指令格式

微指令格式建议采用水平型微指令,微命令编码采用直接表示法和分段直接译码法相结合的混合表示法,以缩短微指令长度。后继地址采用断定方式。微指令格式如下:

同学们应根据本模型的具体情况来确定各字段的长度。 2.微程序控制器

根据微指令和微程序的长度,确定控制存储器需选用几片EPROM(2716)用位扩展方式组成。

3.微程序设计

将机器的全部指令系统采用微指令序列实现的过程,叫做微程序设计。一条机器指令对应一个微程序,11条机器指令应当对应11个微程序。

微指令格式确定后,微程序的横向设计在于正确地选择数据通路,纵向设计在于确定后继微指令地址.事实上,微程序设计的关键在于纵向设计,即如何确定下一条微指令的地址。通常的做法是先确定微程序分支处的微地址,因为微程序分支处需要进行判别测试。这些微地址确定以后,就可以在一个“微地址表”中把相应的微地址单元填进去,以免后面的设计中重复使用而未发现,以致造成设计错误。

五、输入输出

输入输出是人机联系的重要手段,输入可采用开关、键盘等方式,输出可采用字符显示或打印输出等方式。考虑到成本与设备因素,本模型机采用最简单的二进制开关输入和发光二极管显示的方法,换句话说,本模型机中只使用两种“外部设备”:一种是二进制代码开关,它作为输入设备;另一种是发光二极管,它作为输出设备。

本设计为了节省器件,输入输出时可以不设置专门的数据缓冲寄存器。例如输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也就不变。输出时,将输出数据送到数据总线BUS上,驱动发光二极管进行显示。

如果采用正规的输入输出方法,可采用相应的器件构成接口电路。

六、组装与调试

1.元器件的布局与连接

由图1看出,数据通路一旦确定之后,在调试过程中将会很少有变化。因此从组装和调试的角度来看,模型机总框图可划分为如下三个相对独立的功能模块:

(1)运算器、存储器和系统总线

(2)时序产生器 (3)微程序控制器

本模型机所使用的器件较多,布线的工作量相当大,希望同学们认真、细致地工作。

元器件布局的一般原则是尽心能地按功能电路相对集中,这样做的好处是各器件之间的连线较短,同时也便于组装和调试.

为了安装和调试检查方便,集成电路应当以相同方向排列。通常总是把集成电路片的定位缺口向左,此时它的电源脚在左上角,接地脚在右下角。这种排列有利于设置电源线与地线。规整的布线不仅对调试维修带来方便,也可以保证线路可靠地工作,任何马马虎虎的接线将会给调试带来难以想象的后果,因此在布线前必须对布线质量给予高度重视。

2.分调试

按功能模块进行分调是实现总调的前提和基础,因为只有各功能模块工作正常后,才能保证全机的正确运行。为此必须—步一个脚印、精心做好分调试,切不可赶急图快,以免在未做好分调的情况下进入总调,而最后又不得不返回头来重新分调。分调的重点放在时序产生器和微程序控制器上。

3.总调

当各模块分调正常后,可将控制器发出的控制信号线接到相应的功能部件中去,转入全机总调试。

总调的第一步,事实上是检查全部微程序流程图。方法是用单步方式读出并执行微指令。进行的顺序是:先执行控制台指令的微程序流程图,然后执行机器指令的微程序流程图。当全部微程序流程图检查完毕后,如果存储器和运算器功能执行正确,就算总调第一步完成。

第二步是在内存中装入包括有全部指令系统的一段程序和有关数据,进一步可采用单指令方式或连续方式执行,以验证机器执行指令的正确性。

第三步是编写一段表演程序,令机器运行。

实习经验

首先因设计出ALU计算器模块、R4~R0零时寄存器选择模块、数据通路模块、存储器模块、计数器模块,最后在根据之前设计所需的信号与结果设计安排cpu控制模块,这样的设计思路清晰,省时省力。而我在实验室采取了完全相反的步骤,先设计了cpu控制模块,最后根据控制模块设计其他模块,使得其他模块无法正常匹配cpu模块,不断地修正cpu模块,前后重写代码4次之多严重影响了试验进程。此经验教训应当谨记。

试验步骤:

实验步骤会按照正确的顺序进行,即将cpu控制模块的设计放在最后,先说明其他模块的设计。 ALU计算模块: 设计思想:

数据通路模块:

数据通路模块的作用是控制数据在总线上的传输,包括个寄存器的载入、释放,ALU运算器操作数输入、结果的输出等部分 R4~R1选择模块:

选择模块的功能在这个实验中很重要,其可以大量减少cpu控制模块的状态设置,选择器最基础的功能有根据指令的要求确定特定的临时寄存器的释放和载入。同时根据设计的需要,还要有存储备选数据的能力,避免被总线的上的数据影响最终的选择结果。

设计思路:

有四个临时寄存器,可以由两位决定二进制值决定各个寄存起的编号,可由2—4译码器实现此功能。选择器要能起到选择正确顺序是临时寄存器工作的作用,所以要有控制端控制第一顺序操作的临时寄存器和第二时间操作的临时寄存器(该cpu对寄存器的操作最多只有两个操作步)。最后要决定对所选的临时寄存器是载入还是释放,或者既不载入也不释放。根据这一思路设计的选择模块如下:

载入选择:

释放选择:

波形仿真:

CL和CB控制载入/释放次序,0表示第一顺序载入/释放,1表示第二顺序载入/释放。

RL和RB控制是否确认载入/释放,根据指令置1打开确认,置0否认。 波形图显示预算结果得08,为正确值。 数据通路模块:

数据通路模块的作用是将数据正确的在各模块之间传输,要避免各种可能的冲突,例如外部数据和R4~R1之间数据的冲突,R4~R1之间的数据冲突,地址数据的和信息数据的冲突等。同时要保证个数据在能够正确地载入和释放,要求在争取的时间,正确的顺序载入争取的数据寄存器或临时寄存器。这点要求和时序电路的真确配合,还有寄存器选择电路的配合。 设计思路:

根据试验的要求,数据通路需要一个ALU运算模块,两个数据寄存器,其功能是保存操作数并将得到的操作数直接送入ALU预算模块进行预算。4个零时寄存器R4~R1,一个数据选择模块,控制外部数据输入的计数器。 设计图下:

数据传输模块仿真的程序为分别载入数据03和05进行加法运算并显示结果。首先外部数据输入SW_BUS,CL根据IR3..0的指令选择相应临时寄存器,由RL确认载入后,数据由SW_BUS依次先后载入R3、R2

关闭SW_BUS,CB根据IR3..0的指令选择相应临时寄存器,由RB确认释放后,数据由R3、R2依次先后释放,由DR1、DR2先后载入

DR1、DR2载入数据后数据直接送入ALU预算模块中进行预算,之后打开ALU_BUS,在总线上显示运算结果,可以看到运算结果正确,说明之前的操作过程并没有出现任何错误。

存储器模块:

存储器模块的作用即存储程序指令和程序需要的各项数据,以及在恰当的时机读出个指令和数据。包括一个PC计数器(program counter)一个AR寄存器(adress register),一个内存芯片(LPM_RAM_IO)。

设计思路:

CPU要依照指令顺序执行相应程序,在内存中,指令按照顺序配列存储在相应内存单元中,每执行完一条指令,PC自动加一,将地址数据送给AR,RAM取得AR中的地址数据,放出相应地址的指令或操作数。读取指令按此步骤循环。

PC可以用74161计数器完成其功用,由74244控制器数据在争取的时间传给AR,AR可用74273制作,只用于存储RAM中的下一指令或操作数的内存地址。内存由LPM_RAM_IO设置初值后制作完成。

LPM_RAM_IO设置:

LPM_FILE=””

内存数据,可以将程序写进.mif文件,然后在此设置相应

.mif文件的地址则可以在内存中读取该文件 LP,M_NUMWORDS=256

内存容量大小,实验要求256K LPM_WIDTH=8 数据显示位宽 LPM_WIDTHAD=8

地址显示位宽 电路设计图:

PCLD和PCINC同时置1时PC自行加1,此时打开PC_BUS将PC中的数据传入总线,打开LDAR,将数据载入AR地址寄存器,总线和地址显示数据正确,证明存储器模块设计无误。

控制器模块

控制器模块是CPU设计的精髓所在,其功用是控制所有模块能够正确的执行内存中的程序代码。控制器模块要求能够翻译指令码为与之相应的机器码语言。能够在正确的时间放出有效信号,关闭无效信号,协调各模块之间按的工作配合。 设计思路: ROM模块:

首先根据实验要求,与之前设计的各模块对信号控制的要求,画出CPU状态

简化后的设计图共有25个状态,大大缩减了原有的CPU状态,为以后的编码带来很大的方便。需要说明的是由于零食寄存器的特殊设计,需要在每个用到临时寄存器的指令里加入对临时寄存器选择的值,避免错误的出现。

由此状态图得出的指令码不论是水平编码还是垂直编码都需要至少5位代码,因此采用水平编码省去垂直编码所需的译码器的设计。

代码设计:

第一次代码初写:

利用windows的excel软件表明有效信号,有效操作

这是初步的翻译,并没有安排下址,各运算指令没有被化简,只是表明个状态下的有效操作。

跳转条件电路:

跳转条件电路要求在符合跳转条件时,更改下址,改变为操作,完成跳转。

设计思路:

跳转与不调转的下址只有一位不同,只要条件满足,只需更改那一位下址代码即可。首先跳转条件有四种,跟据条件转为信号可以用2—4译码器实现。然后通过逻辑电路实现选择确定跳转。

设计电路:

控制模块总图:

最终cpu总图:

实验总结

这次CPU设计实验是一台模型机的设计. 此模型机是个八位定点二进制计算机,具有四个通用寄存器:R0~R3,能执行11条指令,主存容量为256B。数据格式是定点补码表示法,字长为八位,其中最高位为符号位,小数点位置定在符号位后面。

目的是综合运用前面所学内容,加深对计算机系统各模块的工作原理及相互联系的认识,取得工和设计与组装调试的实践和经验.

模型机可划分为如下四个相对独立的功能模块:运算器、存储器和系统总线;时序产生器;微程序控制器;显示模块,然后一一设计完成。

这次实验微程序控制部分和数据通路部分有很大改进,设计通路时要用四个寄存器,微程序模块也做了相应的改变.

指令码用了25位,要实现11条指令.这是比较关键的,也比较复杂,需要耐心细致地写好VHDL语言.调试的过程再慢慢修改出错的地方.

实验最难的部分就是调试了,这也是最麻烦的。所以最好的办法就是每一个模块设计好后都进行验证,保证正确性。但很多时候我以为我那样做是对的,其实却是有逻辑错误的,这个错误还好,只要多和同学讨论,请教老师就比较容易发现。有时候,由于这个实验需要很多器件,然后要联很多线,一不小心就可能出现一点点错误,而恰恰是这个小小的错误足以让我郁闷上半天。所以我一直都很细心很小心的在做着。然后当一个模块做好了,编译成功基本上算不上成功,

只有波形仿真正确了,才是比较的成功。但是那只是整体的一个部分,所以也许作为单独是对的,但一综合起来,放到一个整体里面就出现问题了。只有当整体运行正确时,那才叫成功。

然后找错误的最好办法就是波形仿真后,一个一个对照,或者说换一个角度去思考。比如我开始写控制器中的微指令时,那么多1啊0啊,一看就头大,更别说自己一个一个去检查了,但是一波形仿真后,那里错误了很容易就可以看出来,当然这个容易也是相对而言的。

实习总结:

从本次试验中我明白的不仅仅是专业知识,更深刻的体会到,正确的设计步骤与设计理念对一个设计进程的严重影响。不仅仅在设计上,再很多其他的方面也是如此。任何事情都要有一个争取的规划,争取的方向,不可以走任何的捷径,没有不回跑就会飞的奇迹出现 试验已经完成,但在试验中的很多问题仍然不是很清楚。试验中得到很多同学的帮助,大家在一起认真讨论,仔细判断各个信号的作用,分析各个模块的逻辑电路组成。这次对比各自模块的优劣,充分体现了共同学习,共同进步的精神。

从本次实践我还领悟到只有将所学知识真正应用到实际操作中,才能更好地掌握,才能不断发现自已存在的问题,从而不断进步.

济宁医学院 信息工程学院

微程序控制器模型计算机的设计与调试

09级计本2班 [1**********]1

李秋生

一台模型计算机的设计

一、教学目的、任务与实验设备

1.教学目的

(1)融会贯通本课程各章节的内容,通过知识的综合运用,加深对计算机系统各模块的工作原理及相互联系的认识,加深计算机工作中“时间—空间”概念的理解,从而清晰地建立计算机的整机概念。

(2)学习设计和调试计算机的基本步骤和方法,提高使用软件仿真工具和集成电路的基本技能。

(3)培养科学研究的独立工作能力,取得工程设计与组装调试的实践和经验。

2.设计与调试任务

(1)按给定的数据格式和指令系统,在所提供的器件范围内,设计一台微程序控制的模型计算机。

(2)根据设计图纸,在MAX+PLUS 平台上进行仿真,并下载到EL教学实验箱上进行调试成功。

(3)在调试成功的基础上,整理出设计图纸和其他文件。包括:①总框图(数据通路图);②微程序控制器逻辑图;②微程序流程图;④微程序代码表;⑤元件排列图(或VHD程序清单);⑥设计说明书;⑦调试小结。

2.实验设备

(1) PC机一台 (2) EL教学实验箱

(3) MAX+PLUS Ⅱ配套软件

二、数据格式和指令系统

本模型机是一个8位定点二进制计算机,具有四个通用寄存器:R0~R3,能执行11条指令,主存容量为256KB。

1.数据格式

数据按规定采用定点补码表示法,字长为8位,其中最高位(第7位)为符

数值相对于十进制数的表示范围为:

-1≤X≤1―2―7 三、总体设计

总体设计的主要任务是

(1) 选定CPU中所使用的产要器件;

(2) 根据指令系统、选用的器件和设计指标,设计指令流的数据通路; (3) 根据指令系统、选用的器件和设计指标,设计数据流的数据通路。 计算机的工作过程,实质上是不同的数据流在控制信号作用下在限定的数据通路中进行传送。数据通路不同,指令所经过的操作过程也不同,机器的结构也

就不—样,因此数据通路的设计是至关重要的。所谓数据通路的设计,也就是确定机器各逻辑部件相对位置的总框图。

数据远路的设计,目前还没有非常标准的方法。主要是依据设计者的经验,并参考现有机器的三种典型形式(单总线、双总线或三总线结构),根据指令系统的要求,可采用试探方法来完成。其主要步骤如下:

(1) 对指令系统中的各条指令进行分析,得出所需要的指令周期与操作序列,以便决定各器件的类型和数量。

(2) 构成一个总框图草图,进行各逻辑部件之间的互相连接,即初步确定数据通路,使得由指令系统所包涵的数据通路都能实现,并满足技术指标的要求。

(3) 检验全部指令周期的操作序列,确定所需要的控制点和控制信号。 (4) 检查所设计的数据通路,尽可能降低成本,简化线路。 以上过程可以反复进行,以便得到一个较好的方案。

图1给出了一个没有考虑乘法除法指令操作的总框图参考方案,注意,在此方案确定之后,应该检查所选用的各个器件是否满足数据通路的要求。实际上,数据通路的设计与器件的选择应同时进行而不能分离地工作。其次,接入总线的器件都要有三态输出,以便与总线连接。另外,在信息传送过程中应当注意器件原码和反码输出的配合关系。

图1所示的方案采用单总线结构,使用的许多器件都是三态输出,这种方案便于总线的连接和扩展,但缺点是指令和数据的传送都要经过总线,因此对总线的使用权就要分配得当。另外,执行算术逻辑指令时,先将第一个操作数由通用寄存器Ri送至缓冲寄存器DR1,然后再由通用寄存器Rj取第二个操作数送至缓冲寄存器DR2,之后送往ALU进行运算。显然,执行—条算术逻辑指令的时间相应要长一些。

图1 模型机数据通路框图

四、微程序控制器

数据通路框图—旦确定,指令流与数据流的通路也就随之最后确定,因而运算器和控制器的大部分结构也就确定下来了。

图1中各功能器件上还标注了控制点及其控制信号.这些控制信号就是微程序控制器进行设计的依据。

1.微指令格式

微指令格式建议采用水平型微指令,微命令编码采用直接表示法和分段直接译码法相结合的混合表示法,以缩短微指令长度。后继地址采用断定方式。微指令格式如下:

同学们应根据本模型的具体情况来确定各字段的长度。 2.微程序控制器

根据微指令和微程序的长度,确定控制存储器需选用几片EPROM(2716)用位扩展方式组成。

3.微程序设计

将机器的全部指令系统采用微指令序列实现的过程,叫做微程序设计。一条机器指令对应一个微程序,11条机器指令应当对应11个微程序。

微指令格式确定后,微程序的横向设计在于正确地选择数据通路,纵向设计在于确定后继微指令地址.事实上,微程序设计的关键在于纵向设计,即如何确定下一条微指令的地址。通常的做法是先确定微程序分支处的微地址,因为微程序分支处需要进行判别测试。这些微地址确定以后,就可以在一个“微地址表”中把相应的微地址单元填进去,以免后面的设计中重复使用而未发现,以致造成设计错误。

五、输入输出

输入输出是人机联系的重要手段,输入可采用开关、键盘等方式,输出可采用字符显示或打印输出等方式。考虑到成本与设备因素,本模型机采用最简单的二进制开关输入和发光二极管显示的方法,换句话说,本模型机中只使用两种“外部设备”:一种是二进制代码开关,它作为输入设备;另一种是发光二极管,它作为输出设备。

本设计为了节省器件,输入输出时可以不设置专门的数据缓冲寄存器。例如输入时,二进制开关数据直接经过三态门送到总线上,只要开关状态不变,输入的信息也就不变。输出时,将输出数据送到数据总线BUS上,驱动发光二极管进行显示。

如果采用正规的输入输出方法,可采用相应的器件构成接口电路。

六、组装与调试

1.元器件的布局与连接

由图1看出,数据通路一旦确定之后,在调试过程中将会很少有变化。因此从组装和调试的角度来看,模型机总框图可划分为如下三个相对独立的功能模块:

(1)运算器、存储器和系统总线

(2)时序产生器 (3)微程序控制器

本模型机所使用的器件较多,布线的工作量相当大,希望同学们认真、细致地工作。

元器件布局的一般原则是尽心能地按功能电路相对集中,这样做的好处是各器件之间的连线较短,同时也便于组装和调试.

为了安装和调试检查方便,集成电路应当以相同方向排列。通常总是把集成电路片的定位缺口向左,此时它的电源脚在左上角,接地脚在右下角。这种排列有利于设置电源线与地线。规整的布线不仅对调试维修带来方便,也可以保证线路可靠地工作,任何马马虎虎的接线将会给调试带来难以想象的后果,因此在布线前必须对布线质量给予高度重视。

2.分调试

按功能模块进行分调是实现总调的前提和基础,因为只有各功能模块工作正常后,才能保证全机的正确运行。为此必须—步一个脚印、精心做好分调试,切不可赶急图快,以免在未做好分调的情况下进入总调,而最后又不得不返回头来重新分调。分调的重点放在时序产生器和微程序控制器上。

3.总调

当各模块分调正常后,可将控制器发出的控制信号线接到相应的功能部件中去,转入全机总调试。

总调的第一步,事实上是检查全部微程序流程图。方法是用单步方式读出并执行微指令。进行的顺序是:先执行控制台指令的微程序流程图,然后执行机器指令的微程序流程图。当全部微程序流程图检查完毕后,如果存储器和运算器功能执行正确,就算总调第一步完成。

第二步是在内存中装入包括有全部指令系统的一段程序和有关数据,进一步可采用单指令方式或连续方式执行,以验证机器执行指令的正确性。

第三步是编写一段表演程序,令机器运行。

实习经验

首先因设计出ALU计算器模块、R4~R0零时寄存器选择模块、数据通路模块、存储器模块、计数器模块,最后在根据之前设计所需的信号与结果设计安排cpu控制模块,这样的设计思路清晰,省时省力。而我在实验室采取了完全相反的步骤,先设计了cpu控制模块,最后根据控制模块设计其他模块,使得其他模块无法正常匹配cpu模块,不断地修正cpu模块,前后重写代码4次之多严重影响了试验进程。此经验教训应当谨记。

试验步骤:

实验步骤会按照正确的顺序进行,即将cpu控制模块的设计放在最后,先说明其他模块的设计。 ALU计算模块: 设计思想:

数据通路模块:

数据通路模块的作用是控制数据在总线上的传输,包括个寄存器的载入、释放,ALU运算器操作数输入、结果的输出等部分 R4~R1选择模块:

选择模块的功能在这个实验中很重要,其可以大量减少cpu控制模块的状态设置,选择器最基础的功能有根据指令的要求确定特定的临时寄存器的释放和载入。同时根据设计的需要,还要有存储备选数据的能力,避免被总线的上的数据影响最终的选择结果。

设计思路:

有四个临时寄存器,可以由两位决定二进制值决定各个寄存起的编号,可由2—4译码器实现此功能。选择器要能起到选择正确顺序是临时寄存器工作的作用,所以要有控制端控制第一顺序操作的临时寄存器和第二时间操作的临时寄存器(该cpu对寄存器的操作最多只有两个操作步)。最后要决定对所选的临时寄存器是载入还是释放,或者既不载入也不释放。根据这一思路设计的选择模块如下:

载入选择:

释放选择:

波形仿真:

CL和CB控制载入/释放次序,0表示第一顺序载入/释放,1表示第二顺序载入/释放。

RL和RB控制是否确认载入/释放,根据指令置1打开确认,置0否认。 波形图显示预算结果得08,为正确值。 数据通路模块:

数据通路模块的作用是将数据正确的在各模块之间传输,要避免各种可能的冲突,例如外部数据和R4~R1之间数据的冲突,R4~R1之间的数据冲突,地址数据的和信息数据的冲突等。同时要保证个数据在能够正确地载入和释放,要求在争取的时间,正确的顺序载入争取的数据寄存器或临时寄存器。这点要求和时序电路的真确配合,还有寄存器选择电路的配合。 设计思路:

根据试验的要求,数据通路需要一个ALU运算模块,两个数据寄存器,其功能是保存操作数并将得到的操作数直接送入ALU预算模块进行预算。4个零时寄存器R4~R1,一个数据选择模块,控制外部数据输入的计数器。 设计图下:

数据传输模块仿真的程序为分别载入数据03和05进行加法运算并显示结果。首先外部数据输入SW_BUS,CL根据IR3..0的指令选择相应临时寄存器,由RL确认载入后,数据由SW_BUS依次先后载入R3、R2

关闭SW_BUS,CB根据IR3..0的指令选择相应临时寄存器,由RB确认释放后,数据由R3、R2依次先后释放,由DR1、DR2先后载入

DR1、DR2载入数据后数据直接送入ALU预算模块中进行预算,之后打开ALU_BUS,在总线上显示运算结果,可以看到运算结果正确,说明之前的操作过程并没有出现任何错误。

存储器模块:

存储器模块的作用即存储程序指令和程序需要的各项数据,以及在恰当的时机读出个指令和数据。包括一个PC计数器(program counter)一个AR寄存器(adress register),一个内存芯片(LPM_RAM_IO)。

设计思路:

CPU要依照指令顺序执行相应程序,在内存中,指令按照顺序配列存储在相应内存单元中,每执行完一条指令,PC自动加一,将地址数据送给AR,RAM取得AR中的地址数据,放出相应地址的指令或操作数。读取指令按此步骤循环。

PC可以用74161计数器完成其功用,由74244控制器数据在争取的时间传给AR,AR可用74273制作,只用于存储RAM中的下一指令或操作数的内存地址。内存由LPM_RAM_IO设置初值后制作完成。

LPM_RAM_IO设置:

LPM_FILE=””

内存数据,可以将程序写进.mif文件,然后在此设置相应

.mif文件的地址则可以在内存中读取该文件 LP,M_NUMWORDS=256

内存容量大小,实验要求256K LPM_WIDTH=8 数据显示位宽 LPM_WIDTHAD=8

地址显示位宽 电路设计图:

PCLD和PCINC同时置1时PC自行加1,此时打开PC_BUS将PC中的数据传入总线,打开LDAR,将数据载入AR地址寄存器,总线和地址显示数据正确,证明存储器模块设计无误。

控制器模块

控制器模块是CPU设计的精髓所在,其功用是控制所有模块能够正确的执行内存中的程序代码。控制器模块要求能够翻译指令码为与之相应的机器码语言。能够在正确的时间放出有效信号,关闭无效信号,协调各模块之间按的工作配合。 设计思路: ROM模块:

首先根据实验要求,与之前设计的各模块对信号控制的要求,画出CPU状态

简化后的设计图共有25个状态,大大缩减了原有的CPU状态,为以后的编码带来很大的方便。需要说明的是由于零食寄存器的特殊设计,需要在每个用到临时寄存器的指令里加入对临时寄存器选择的值,避免错误的出现。

由此状态图得出的指令码不论是水平编码还是垂直编码都需要至少5位代码,因此采用水平编码省去垂直编码所需的译码器的设计。

代码设计:

第一次代码初写:

利用windows的excel软件表明有效信号,有效操作

这是初步的翻译,并没有安排下址,各运算指令没有被化简,只是表明个状态下的有效操作。

跳转条件电路:

跳转条件电路要求在符合跳转条件时,更改下址,改变为操作,完成跳转。

设计思路:

跳转与不调转的下址只有一位不同,只要条件满足,只需更改那一位下址代码即可。首先跳转条件有四种,跟据条件转为信号可以用2—4译码器实现。然后通过逻辑电路实现选择确定跳转。

设计电路:

控制模块总图:

最终cpu总图:

实验总结

这次CPU设计实验是一台模型机的设计. 此模型机是个八位定点二进制计算机,具有四个通用寄存器:R0~R3,能执行11条指令,主存容量为256B。数据格式是定点补码表示法,字长为八位,其中最高位为符号位,小数点位置定在符号位后面。

目的是综合运用前面所学内容,加深对计算机系统各模块的工作原理及相互联系的认识,取得工和设计与组装调试的实践和经验.

模型机可划分为如下四个相对独立的功能模块:运算器、存储器和系统总线;时序产生器;微程序控制器;显示模块,然后一一设计完成。

这次实验微程序控制部分和数据通路部分有很大改进,设计通路时要用四个寄存器,微程序模块也做了相应的改变.

指令码用了25位,要实现11条指令.这是比较关键的,也比较复杂,需要耐心细致地写好VHDL语言.调试的过程再慢慢修改出错的地方.

实验最难的部分就是调试了,这也是最麻烦的。所以最好的办法就是每一个模块设计好后都进行验证,保证正确性。但很多时候我以为我那样做是对的,其实却是有逻辑错误的,这个错误还好,只要多和同学讨论,请教老师就比较容易发现。有时候,由于这个实验需要很多器件,然后要联很多线,一不小心就可能出现一点点错误,而恰恰是这个小小的错误足以让我郁闷上半天。所以我一直都很细心很小心的在做着。然后当一个模块做好了,编译成功基本上算不上成功,

只有波形仿真正确了,才是比较的成功。但是那只是整体的一个部分,所以也许作为单独是对的,但一综合起来,放到一个整体里面就出现问题了。只有当整体运行正确时,那才叫成功。

然后找错误的最好办法就是波形仿真后,一个一个对照,或者说换一个角度去思考。比如我开始写控制器中的微指令时,那么多1啊0啊,一看就头大,更别说自己一个一个去检查了,但是一波形仿真后,那里错误了很容易就可以看出来,当然这个容易也是相对而言的。

实习总结:

从本次试验中我明白的不仅仅是专业知识,更深刻的体会到,正确的设计步骤与设计理念对一个设计进程的严重影响。不仅仅在设计上,再很多其他的方面也是如此。任何事情都要有一个争取的规划,争取的方向,不可以走任何的捷径,没有不回跑就会飞的奇迹出现 试验已经完成,但在试验中的很多问题仍然不是很清楚。试验中得到很多同学的帮助,大家在一起认真讨论,仔细判断各个信号的作用,分析各个模块的逻辑电路组成。这次对比各自模块的优劣,充分体现了共同学习,共同进步的精神。

从本次实践我还领悟到只有将所学知识真正应用到实际操作中,才能更好地掌握,才能不断发现自已存在的问题,从而不断进步.


相关内容

  • PLC实验指导书
  • PLC 实验指导书 任国梅编 重庆科技学院 前 言 可编程序控制器简称PLC 是一种数字运算的电子操作系统装置,专为工业现场应用而设计的,它采用可编程序的存储器,用来在其内部存储执行逻辑运算.顺序控制.定时/计数和算术运算等操作的指令,并通过数字式或模拟式的输入和输出,控制各种类型的机械或生产过程. ...

  • 步进电机滑台PLC控制课程设计报告
  • 大连民族学院机电信息工程学院 自动化系 PLC 课程设计报告 题 目: 专 业: 班 级: 学生姓名: 卢真伊.谭潏.潘竹馨 指导教师: 张涛 步进电机滑台PLC 控制 自动化 自动化122,123,124 谭今文.周鸿儒.唐海涛. 设计完成日期: 2015年 5月7日 目 录 1任务分析和性能指标 ...

  • LED小灯实验报告
  • led 流水灯的设计报告 课程名称: led流水灯设计 学 院: 大数据与信息工程学院 专 业: 姓 名: 学 号: 年 级: 任课教师: 一. 实验的背景和意义 单片机全称叫单片微型计算机,是一种集成在电路芯片,是采用大规模集成电路技术把 cpu 随机存储器ram .只读存储器rom .多种输入输 ...

  • 四路抢答器设计报告
  • 四路抢答器 专业:物理学班级: 姓名: 设计报告 09物理学2班 xxx学号:[1**********]6 姓名:xxx学号:[1**********]1 姓名:xxx学号:[1**********]5 姓名:xxx学号:[1**********]8 姓名:xxx学号:[1**********]1 ...

  • 实验报告心得体会
  • 高校实验室是培养高层次人才和开展科学研究的重要基地。在西方发达国家,学校对培养学生的动手能力是十分重视的,这一问题近年来也越来越受到我国教育界人士的广泛重视。为了提高学生的动手能力,让学生做相关实训并完成单片机实验报告,在实验的形式上注重培养学生的实验技能和动手能力。从单片机实验心得中学生就可以总结 ...

  • 单片机 交通灯实验报告
  • 2014级电气工程及其自动化单片机原理及应用课程设计 安徽农业大学经济技术学院 模拟电子技术课程设计报告书 课题名称 基于单片机的简易交通灯设计 姓 名 学 号 院.系.部 专 业 指导教师 机械工程系 电气工程及其自动化 邰清清 2016年 12 月 日 摘要 本设计是单片机控制的交通灯控制系统设 ...

  • 机电一体化系统综合实训报告
  • 瑞安电大 机电一体化系统综合 实训报告 年级专业: 学 号: 姓 名: 实习单位: 岁月如流水般,一去不返.作为数控专业的一名学生,通过大学提供的综合型学习平台,整合课堂中相关专业技能知识,从而具备了一名数控专业学生应该具备的基本能力以及素质.尤其通过最后这个阶段的机电一体化系统综合实训,我以理论联 ...

  • 电工电子实训教学大纲
  • <电工电子实训>教学大纲 课程编号:2131105 课程名称:<电工电子实训> 实训学时: 1.2周(根据各系实训教学需要安排学时) 面向对象:机电工程系.电子信息与电气工程系等各相关专业. 一.本实验课的性质与目的 <电工电子实训>课程要求学生掌握焊接技术的基本 ...

  • 微型计算机实验报告
  • 目 录 实验一 A/D与D/A转换 . ............................................ 2 实验二 数字滤波器 ................................................ 5 实验三 离散化方法研究 .......... ...