硬布线控制器的设计.docx
- 文档编号:994919
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:13
- 大小:22.04KB
硬布线控制器的设计.docx
《硬布线控制器的设计.docx》由会员分享,可在线阅读,更多相关《硬布线控制器的设计.docx(13页珍藏版)》请在冰点文库上搜索。
硬布线控制器的设计
编号:
B04911053
学号:
课程设计
教学院
计算机学院
课程名称
计算机组成原理课程设计
题目
硬布线控制器的设计
专业
计算机科学与技术
班级
二班
姓名
同组人员
指导教师
杨斐
2015
年
1
月
5
日
课程设计任务书
2015~2016学年第1学期
学生姓名:
张祥专业班级:
计科二班
指导教师:
杨斐工作部门:
计算机学院
一、课程设计题目硬布线控制器的设计
二、课程设计内容(含技术指标)
1.利用QUARTUS软件设计一个小型CPU中的硬布线控制器。
总体框图参考下图:
图2.1.1总体框图
操作控制信号格式:
WR
RD
IOM
S3
S2
S1
S0
LDA
LDB
LDR0
LDIR
ALU_B
R0_B
P
(1)
表2.1.1操作控制信号格式表
执行单元总体框图如下:
(不必设计)
图2.1.2执行单元总体框图
该CPU的指令系统包含8条机器指令,分别为ADD、SUB、INC、AND、OR、IN、OUT、HLT,指令代码如下:
助记符
机器码
说明
ADD
00000000
R0+R0->R0
SUB
00010000
R0-R0->R0
IN
00100000
IN->R0
OUT
00110000
R0->OUT
INC
01000000
R0+1->R0
HLT
01010000
停机
AND
01100000
R0与R0->R0
OR
01110000
R0或R0->R0
表2.1.2机器指令表
2.写出每一个操作控制信号的逻辑代数表达式,化简并设计电路。
3.每输入一条机器指令代码打入IR中,由硬布线控制器得到14位操作控制信号,在发光二极管上显示每一位的值。
三、进度安排
1.2015年12月14日,课题讲解,布置任务
2.2015年12月15-17日,分析、讨论、进行各子模块的设计设计
3.2015年12月18-24日,完成各模块联调,进行测试
4.2015年12月25日,成果验收,进行答辩
四、基本要求
1.能够熟练掌握计算机中硬布线控制器的工作原理及特点;
2.掌握硬件描述语言VHDL及原理图设计方法;
3.熟练掌握QuartusII软件平台;
4.各小组按模块分工,每人独立完成自己负责的模块;
5.合作完成最终的硬件下载及调试;
6.独立撰写符合要求的课程设计报告。
一、概述
1.1课程设计的目的
1.培养综合运用所学知识独立完成课题的能力;
2.培养勇于探索、严谨推理、实事求是、有错必改,用实践来检验理论,全方位考虑问题等科学技术人员应具有的素质;
3.理解和掌握该课程中的有关基本概念,程序设计思想和方法;
4.掌握从资料文献、科学实验中获得知识的能力,提高学生从别人经验中找到解决问题的新途径的悟性,初步培养工程意识和创新能力;
5.同学们需完整学习相关理论课中的有关内容,学会阅读相关的参考资料和利用网络查找自己需求的资料。
1.2课程设计的要求
1.掌握硬件描述语言VHDL及原理图设计方法;
2.熟练掌握QuartusII软件平台;
3.各小组按模块分工,每人独立完成自己负责的模块;
4.合作完成最终的硬件下载及调试;
5.能够熟练掌握计算机中硬布线控制器的工作原理及特点;
6.独立撰写符合要求的课程设计报告。
二、总体方案设计
2.1小组分工
吴进主负责对指令寄存器R_8的设计;
张常勋主负者对指令译码器ID的设计;
张祥主负者对树形逻辑网络LOGIC的设计;
谢石林主负机器指令函数以及流程图的编写。
逻辑网络N的输入信号就是为操控控制信号,它用来对执行部件进行控制。
另有一些信号则根据条件变量来改变时序发生器的计数顺序,以便跳过某些状态。
所谓微程序控制方式是指微命令不是由组合逻辑电路产生的,而是由微指令译码产生。
一条机器指令往往分成几步执行,将每一步操作所需的若干位命令以代码形式编写在一条微指令中,若干条微指令组成一端微程序,对应一条及其指令。
我所负者的关键根据八条指令函数在QuartusⅡ设计出电路图。
2.2硬连线控制器部件描述
硬连线控制器由指令寄存器IR,程序计数器PC,时序控制信号产生部件,脉冲源、起停控制逻辑和节拍发生器组成。
1.指令寄存器
存放当前从主存储器读出的正在执行的一条指令。
当执行一条指令时,先把它从内存取到数据寄存器中,然后再传送至IR。
指令划分为操作码和地址码字段,由二进制数字组成。
为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。
指令译码器就是做这项工作的。
指令寄存器中操作码字段的输出就是指令译码器的输入。
操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
在本模型中,用的是8位。
2.程序计数器
程序计数器是用于存放下一条指令所在单元的地址的地方。
当执行一条指令时,首先需要根据PC中存放的指令地址,将指令由内存取到指令寄存器中,此过程称为“取指令”。
与此同时,PC中的地址或自动加1或由转移指针给出下一条指令的地址。
此后经过分析指令,执行指令。
完成第一条指令的执行,而后根据PC取出第二条指令的地址,如此循环,执行每一条指令。
3.节拍发生器
节拍发生器是多位触发器的输出信号的不同组合状态,来标志每条指令的不同执行步骤。
4.时序信号产生部件
它依据指令的操作码,指令执行步骤作为输入,使用大量组合逻辑门电路来形成并提供出计算机各部件当前时刻要用到的控制信号。
设计过程中要列出每个控制信号的逻辑表达式,再对全部的控制信号的逻辑表达式进行综合化简,得到最尽量可能简单的逻辑实现,有利于提高机器的运算速度和降低成本。
2.3介绍EDA技术及QUARTUSII软件
EDA是ElectronicDesignAutomation(电子设计自动化)的缩写。
EDA技术就是依靠功能强大的电子计算机,在EDA工具软件平台上,对以硬件描述语言为逻辑描述手段完成的设计文件,自动地完成逻辑编译、化简、分割、综合、优化和仿真,直至下载到可编程逻辑器件CPLD/FPGA芯片中,实现特定的电子电路设计功能。
QuartusII是Altera公司推出的新一代、功能强大的可编程逻辑器件PLD设计环境。
Quartus II软件提供了EDA设计的综合开发环境,是EDA设计的基础。
QuartusII集成环境支持设计输入、编译、综合、布局、布线、时序分析、仿真、编程下载等EDA设计过程。
Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:
可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。
三、详细设计
3.1设计指令寄存器R_8
在QuartusⅡ根据老师给的代码
LIBRARYIEEE;
USEIEEE.STD_LOGIC_1164.ALL;
USEIEEE.STD_LOGIC_UNSIGNED.ALL;
ENTITYR_8IS
PORT(D:
INSTD_LOGIC_VECTOR(7DOWNTO0);
CLK:
INSTD_LOGIC;
EN:
INSTD_LOGIC;
Q:
OUTSTD_LOGIC_VECTOR(7DOWNTO0));
END;
ARCHITECTUREART1OFR_8IS
BEGIN
PROCESS(CLK,D)
BEGIN
IFCLK'EVENTANDCLK='1'
THENIFEN='1'THENQ<=D;
ENDIF;
ENDIF;
ENDPROCESS;
ENDART1;
打包出指令寄存器R_8
图3.1.1指令寄存器
然后在R-8的基础上设计出指令寄存器连线R-8OUT。
图3.1.2指令寄存器路线图
3.2设计
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
图3.1.2指令寄存器路线图
指令译码器ID
在老师的帮助下完成译码器代码的编写,代码如下。
LIBRARYieee;
USEieee.std_logic_1164.all;
entityIDis
port(IR:
instd_logic_vector(7downto0);--8位指令代码输入
EN:
instd_logic;--工作使能端
I0,I1,I2,I3,I4,I5,I6,I7:
outstd_logic);--8条机器指令译码输出,对应关系I0:
ADD,I1:
SUB,I2:
IN,I3:
OUT,I4:
INC,I5:
HLT,I6:
AND,I7:
OR
endID;
architecturebehaveOFIDis
signals:
std_logic_vector(3downto0);
begin
s<=IR(7)&IR(6)&IR(5)&IR(4);--IR中高四位取出送给S
process(S,IR,EN)
begin
ifEN='1'then
caseSis
when"0000"=>I0<='1';I1<='0';I2<='0';I3<='0';I4<='0';I5<='0';I6<='0';I7<='0';
when"0001"=>I0<='0';I1<='1';I2<='0';I3<='0';I4<='0';I5<='0';I6<='0';I7<='0';
when"0010"=>I0<='0';I1<='0';I2<='1';I3<='0';I4<='0';I5<='0';I6<='0';I7<='0';
when"0011"=>I0<='0';I1<='0';I2<='0';I3<='1';I4<='0';I5<='0';I6<='0';I7<='0';
when"0100"=>I0<='0';I1<='0';I2<='0';I3<='0';I4<='1';I5<='0';I6<='0';I7<='0';
when"0101"=>I0<='0';I1<='0';I2<='0';I3<='0';I4<='0';I5<='1';I6<='0';I7<='0';
when"0110"=>I0<='0';I1<='0';I2<='0';I3<='0';I4<='0';I5<='0';I6<='1';I7<='0';
when"0111"=>I0<='0';I1<='0';I2<='0';I3<='0';I4<='0';I5<='0';I6<='0';I7<='1';
whenothers=>NULL;
endcase;
else
I0<='0';I1<='0';I2<='0';I3<='0';I4<='0';I5<='0';I6<='0';I7<='0';
endif;
endprocess;
endbehave;
在QuartusⅡ种设计出仿真电路
图3.2指令译码器
3.3编写指令逻辑函数表达式
1.机器指令的运算流程图
2.逻辑运算表达式:
WR=0
RD=(I1+I2+I3+I4+I4+I5+I6+I7+I8)*T1
IOM=(I2+I3)*T2
S3=(I0+I1)*T2
S2=I3*I4
S1=I1*I4+I6*T3
S0=(I0+I1)*T4
LDA=(I0+I1+I7)*T2
LDB=(I1+I0+I6+I7)*T3
LDR0=(I0+I1+I6+I7)*T4+I2*T2+I4*T3
LDIR=(I1+I2+I3+I4+I4+I5+I6+I7+I8)*T1
ALU_B=(I0+I1+I6+I7)*T4
R0_B=((I0+I1+I6+I7)*T2+((I0+I1+I6+I7)*T3
P
(1)=(I1+I2+I3+I4+I4+I5+I6+I7+I8)*T1
3.机器指令:
(1)I0:
T1:
取指MEM→IRIOM=0LDIR=1P
(1)=1RD=1
T2:
R0→ALODA=1R0_B=1
T3:
R0→BLUB=1R0_B=1
T4:
A+B→R0ALU_B=1LDR0=1S3~S0=0000
(2)I1:
T1:
:
取指MEM→IRIOM=0LDIR=1P
(1)=1RD=1
T2:
R0→ALODA=1R0_B=1
T3:
R0→BLUB=1R0_B=1
T4:
A-B→R0ALU_B=1LDR0=1S3~S0=0001
(3)I2:
T1:
取指MEM→IRIOM=0LDIR=1P
(1)=1RD=1
T2:
IN→R0IOM=1LDRO=1S3~S0=0010
(4)I3:
T1:
取指MEM→IRIOM=0LDIR=1P
(1)=1RD=1
T2:
OUT→R0IOM=1LDRO=1S3~S0=0011
(5)I4:
T1:
取指MEM→IRIOM=0LDIR=1P
(1)=1RD=1
T2:
R0→ALODA=1
T3:
R0→BLUB=1LODRO=1S3~S0=0100
(6)I5:
T1:
取指MEM→IRIOM=0LDIR=1P
(1)=1RD=1
T2:
R0_ALODA=1R0_B=1S3~S0=0101
(7)I6:
T1:
取指MEM→IRIOM=0LDIR=1P
(1)=1RD=1
T2:
R0→ALODA=1R0_B=1
T3:
R0→BLUB=1R0_B=1
T4:
AandB→R0LDR0=1LDIR=1S3~S0=0011
(8)I7:
T1:
取指MEM→IRIOM=0LDIR=1P
(1)=1RD=1
T2:
R0→ALODA=1R0_B=1
T3:
R0→BLUB=1R0_B=1
T4:
AorB→R0ALU_B=1LDR0=1S3~S0=0111
3.4设计树形逻辑图LOGIC
通过上面任务3的逻辑表达式通过QuartusⅡ设计出如下的电路图
图3.4树形逻辑网络连线图
3.5整合设计
图3.5硬布线控制器连线图
四、程序的调试与运行结果说明
4.1我设计的版块三的仿真波形图
图4.1树形逻辑网络仿真图
上图I0~T7,T1~T4都处于拨开状态(由于大小的原因I1,I2并未显示),就I1(ADD)做说明,在T1时刻,LDIR、P1、RD处于开启状态,T2时刻进行R0->A赋值运算LAD、R0-B处于开启状态,T3时刻进行R0->B赋值运算LDB,R0-B处于开启状态,T4时刻进行A+B->R0运算逻辑运算函数S0、S3、LDR0、ALU-B处于开启状态,并与微指令代码逐一核对,设想与事实成立,故ADD运算成功,即仿真成功。
4.2最终模块的仿真波形
图4.2硬布线控制器仿真图
输入运算的机器码,例如:
00000000代表ADD,00010000代表SUB。
输入机器码00000000,拨开EN、EN0、T1~T4如上述一样根据图状态与微指令代码核对。
在T1时刻,LDIR、P1、RD处于开启状态,T2时刻进行R0->A赋值运算LAD、R0-B处于开启状态,T3时刻进行R0->B赋值运算LDB,R0-B处于开启状态,T4时刻进行A+B->R0运算逻辑运算函数S0、S3、LDR0、ALU-B处于开启状态,并与微指令代码逐一核对,设想与事实成立,故ADD运算成功,即仿真成功。
五、课程设计总结
这是我们计算机专业做的第一个硬件和软件结合的课程设计,掌握硬件描述语言VHDL及原理图设计方法,并熟练掌握QuartusII软件平台。
硬布线控制器是依赖于组合逻辑而实现的,老师在课堂上对微程序控制器讲解得比较多,所以在微程序控制器方面掌握的知识对我们研究硬布线控制器是很有帮助的。
当然,前提是这个组合逻辑译码表是完全正确的。
其实,数据通路是非常重要的,每个方框里的每个信号都是不可缺少的部分。
我们必须能知道每一步要做什么操作,而且要知道各个操作在哪个节拍电位里执行。
硬布线控制器在课本上没有详细讲解,但却是以前的CPU使用的布线方式,想要深入学习硬件知识,了解这些东西是很有必要的。
微程序控制器的出现是为了代替硬布线控制器,如果没有对微程序控制器的工作方式和原理的理解,不可能设计出硬布线控制器的控制逻辑。
数据通路是基础,组合逻辑译码表是关键。
只要这两个任务能完美地完成,代码就能自然而然地编写出来了。
同时,一个小组里组员之间的合作也是非常重要的,所谓集思广益,只有大家相互配合,各司其能,这个课程设计才能获得成功个人认为,这是最好的一个课程设计安排,将学习道德东西用起来,才是最好的结果,锻炼了我们的动手能力、思考能力和合作精神。
所以这次课程设计,我们对计算机的工作原理有了更进一步的了解,尤其是指令系统的工作原理,各个部件的工作之间的协调和配合等。
这样才能让我们体会到了思考与创造的乐趣。
参考文献
[1]白中英,计算机组成原理(第四版立体化教材),北京,科学出版社,2008年3月。
[2]白中英,计算机组成原理(第四版),北京,科学出版社,2008年9月。
[3]白中英,杨春武.计算机硬件基础实验教程(第二版),北京,清华大学出版社
[4]白中英,计算机系统结构(第三版。
网络版),北京,科学出版社,20106月。
[5]王恩东等,MIC高性能计算编程指南,北京,中国水利水电出版社,2012年8月。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 布线 控制器 设计