中断请求串行判优先电路的设计.docx
《中断请求串行判优先电路的设计.docx》由会员分享,可在线阅读,更多相关《中断请求串行判优先电路的设计.docx(23页珍藏版)》请在冰豆网上搜索。
![中断请求串行判优先电路的设计.docx](https://file1.bdocx.com/fileroot1/2023-4/21/c23296d8-c86e-458e-b3e0-ddb5661c63ff/c23296d8-c86e-458e-b3e0-ddb5661c63ff1.gif)
中断请求串行判优先电路的设计
课程设计报告
课程设计名称:
计算机组成原理课程设计
课程设计题目:
中断请求串行判优先电路的设计
院(系):
专业:
班级:
学号:
姓名:
指导教师:
完成日期:
目录
第1章总体设计方案1
1.1设计原理1
1.2设计思路2
1.3设计环境2
第2章详细设计方案5
2.1顶层方案图的设计与实现5
2.1.1创建顶层图形设计文件5
2.1.2器件的选择与引脚锁定5
2.1.3编译、综合、适配7
2.2功能模块的设计与实现7
2.2.18_3CODER的设计与实现7
2.2.28AND的设计与实现9
2.2.3CELL的设计与实现11
2.2.4INTC完整原理图12
2.3仿真调试13
第3章编程下载与硬件测试15
3.1编程下载15
3.2硬件测试及结果分析15
参考文献19
附录(电路原理图)20
第1章总体设计方案
1.1设计原理
主机与外部设备的信息交换方式主要有:
程序查询方式,程序中断方式,DMA方式等。
程序中断方式的主要特点是:
程序切换(程序转移)和随机性。
对于小数据量交换的场合,用程序中断方式是很方便和高效的。
程序中断方式是指:
CPU在执行程序的过程中,如果因出现某种随机事件而收到中断请求,则暂时停止现行程序的执行,转去执行一段中断服务程序,以处理该事件,并在处理完毕后自动恢复程序的执行。
中断请求串行优先电路,即菊花链优先排队电路,是一种优先级管理的简单硬件方案。
它为每个设备接口都设置一个简单的逻辑电路,以便根据优先级来传递或截取CPU发出的中断响应信号INTA(低电平有效),以实现响应中断的优先顺序(如图1.1所示)。
图1.1
菊花链排队电路原理图
由于需要产生中断向量,所以在菊花链排队电路的基础上,再加入中断向量产生逻辑。
实用的中断控制器都可以实现对特定中断的屏蔽,所以在上述电路的基础上再加入中断屏蔽电路。
1.2设计思路
题目要求设计的电路由中断请求触发器、中断向量寄存器和门电路等逻辑部件组成。
所以电路主要由菊花链排队部分(用于中断响应信号INTA的传递或截取)和中断向量产生部分(用于生成当前中断请求中优先级最高的中断请求的中断向量)。
菊花链排队部分应包括菊花链电路和中断汇总电路。
中断向量产生部分需要挑选出当前中断请求中优先级别最高的请求,所以一种简单的方案是采用优先编码器生成相应的中断向量。
中断源数目为8,所以只需要使用8-3优先编码器即可完成。
中断设备码用8位二进制数表示,但真正有用的设备码只包含在其低3位,高5位置0即可。
实现特定中断屏蔽功能,只需在上述基础上加入一个中断屏蔽寄存器,输入的中断请求在经过中断屏蔽寄存器过滤后再送菊花链排队部分和中断向量产生部分。
其设计框图如图1.2所示。
图1.2中断请求串行优先电路设计框图
1.3设计环境
(1)硬件环境
•伟福COP2000型计算机组成原理实验仪
COP2000计算机组成原理实验系统实验箱及其配套软件组成。
其软硬件对用户的实验设计具有完全的开放特性。
它的各模块的数据线、地址线与系统之间的挂接是通过三态门,而不是其它实验设备所采用的扁平连线方法,而数据线、地址线是否要与系统连通,则由用户连线控制。
COP2000系统的运算器采用EDA技术设计,随机出厂时,已提供一套已装载方案,能进行加、减、与、或、带进位加、取反、直通八种运算方式,若用户不满意该套方案,也可自行重新设计并通过JTAG口下载。
控制器微指令格式及定义可通过键盘和PC机进行重新设计,从而产生与众不同的指令系统。
系统和数据线、地址线、控制线均在产品线插孔区引出,并设计了40芯锁进插座,供用户进行RAM、8251、8255、8259等接口器件的扩展实验。
(2)EDA环境
•XilinxFoundationF3.1设计软件
XilinxFoundationF3.1是Xilinx公司主要的可编程器件开发工具,它可用来开发Xilinx公司的Spar-tanVirtexXC3000XC4000XC5200系列的FPGA芯片和XC9500系列的CPLD芯片。
该平台功能强大,主要用于百万逻辑门级的设计和1Gb/s的高速通信内核的设计。
利用该系统可完成从设计构想到比特流下载的全部过程。
该平台以工程管理器为主界面,同时集成了Xilinx公司以及其他公司的一些优秀软件。
用XilinxFoundationF3.1进行FPGA设计流程图的步骤如图1.3所示。
图1.3FPGA设计流程图
•COP2000集成开发环境
COP2000集成开发环境是COP2000计算机组成原理实验仪的配套软件环境,在这个软件环境下可完成汇编程序的调试、指令系统的设计、实时仿真与调试等功能,其界面如图1.4。
图1.3COP2000计算机组成原理集成调试软件
第2章详细设计方案
2.1顶层方案图的设计与实现
顶层方案图实现中断请求串行优先电路,中断控制器封装在名为INTC的自定义符号中。
INTC中又用到了多个自定义符号,包括8_3CODER(8-3优先编码器,用于中断向量生成电路中)、8AND(内含8个二输入与门,用于中断屏蔽电路)、CELL(菊花链节点,用于组建菊花链电路)。
2.1.1创建顶层图形设计文件
顶层图形文件由输入输出端口和INTC组成(如图2.1)。
左上角为8个中断请求输入端,左下角为8个中断屏蔽信号输入端,右上角为8个中断响应信号输出端,右下角为8个中断向量输出端。
__INTA为CPU中断响应信号输入端(低电平有效,其他输入信号均为高电平有效),INT为中断请求输出端(接CPU的INT引脚)。
图2.1中断请求串行判优先电路顶层设计图
2.1.2器件的选择与引脚锁定
(1)器件的选择
硬件设计环境是基于伟福COP2000型计算机组成原理实验仪和XCV200实验板,采用的目标芯片为XilinxXCV200可编程逻辑芯片。
(2)引脚锁定
顶层图形文件中的芯片引脚与XilinxXCV200芯片引脚对应关系如表2.1所示。
表2.1信号和芯片引脚对应关系
INTC的输入/输出信号
XCV200芯片引脚
IR0
P103
IR1
P102
IR2
P101
IR3
P100
IR4
P97
IR5
P96
IR6
P95
IR7
P94
M0
P87
M1
P86
M2
P85
M3
P84
M4
P82
M5
P81
M6
P80
M7
P79
INTA0
P125
INTA1
P124
INTA2
P109
INTA3
P108
INTA4
P107
INTA5
P99
INTA6
P93
INTA7
P78
V0
P223
V1
P222
V2
P221
V3
P220
V4
P218
V5
P217
V6
P216
V7
P215
_INTA
P73
INT
P110
2.1.3编译、综合、适配
利用Xilinxfoundationf3.1的原理图编辑器对顶层图形文件进行编辑,并利用仿真器对其进行,分析信号波形是否与功能相符。
仿真成功后对工程进行编译,生成相应的*.bit文件后下载到芯片中,通过实验箱观察实际运行效果。
2.2功能模块的设计与实现
中断控制器符号INTC包含中断请求串行优先电路的全部电路,其中主要包含8_3CODER、8AND、CELL等自定义符号和其他辅助电路。
2.2.18_3CODER的设计与实现
该模块包含9个输入端,4个输出端。
输入8个中断请求信号,Y0~Y2三个输出端输出中断请求信号中优先级最高的信号所对应的中断向量。
输出端INT用于标识当前的输出信号是否有效(1:
有效,0:
无效)。
(1)创建8_3CODER原理图。
8_3CODER的结构如图2.2所示:
图2.28_3CODER原理图
(2)创建元件图形符号
8_3CODER的元件图形符号如图2.3所示。
I0~I7为中断请求信号输入端(低电平有效),CS为芯片使能信号。
Y0~Y2为中断向量输出,INT为中断向量有效信号。
图2.38_3CODER元件图形符号
(3)功能仿真
用XilinxFoundationf3.1的Simulator对此模块进行仿真。
仿真结果如图2.4所示:
图2.48_3CODER仿真结果
由图可知,当I7,I6,I5同时发出中断请求时,响应I7(Y0~Y2输出为111)。
当I5,I4,I3同时发出中断请求时,响应I5(Y0~Y2输出为101),其他信号与此相同。
其真值表同优先编码器。
2.2.28AND的设计与实现
该模块由八个二输入与门组成,A0~A7为第一组信号输入端,B0~B7为第二组信号输入端,C0~C7为输出端。
在使用中,A0~A7接中断请求信号,B0~B7接中断屏蔽信号,输出为屏蔽后可用的中断请求信号。
(1)创建8AND原理图。
8AND的结构如图2.5所示:
图2.58AND原理图
(2)创建元件图形符号
8AND的元件图形符号如图2.6所示。
图2.68AND图形符号
(3)功能仿真
用XilinxFoundationf3.1的Simulator对此模块进行仿真。
仿真结果如图2.7所示:
图2.78AND仿真结果
由图可知,当且仅当Ai与Bi同时为电平,其输出Ci为高电平。
即当某中断未被屏蔽时,它可以通过8AND。
2.2.3CELL的设计与实现
CELL用于构造菊花链。
INT为中断请求信号输入端,INR为中断响应信号输入端,IOK为中断响应信号输出端,NEXT用于连接下一个节点的INR引脚,INTO为中断请求信号输出端。
(1)CELL设计原理图。
CELL的结构如图2.8所示:
图2.8CELL原理图
(2)创建元件图形符号
CELL的元件图形符号如图2.9所示。
左边为输入端INT和INR,右边为输出端IOK、INTO和级联端NEXT。
图2.9CELL图形符号
(3)功能仿真
用XilinxFoundationf3.1的Simulator对此模块进行仿真。
其仿真电路如图2.10所示。
电路中使用三个CELL模块串联,组成一条菊花链。
INTA端为中断响应输入端,IR0~IR2为中断请求信号输入端,IOK0~IOK2为中断响应信号输出端。
图2.10CELL仿真电路
仿真结果如图2.11。
当IR0和IR1同时产生中断时,中断响应信号INTA到达后,IOK1变为低电平,即IR1得到响应,与预期的结果相符。
其他的情况下也得到了正确的结果。
图2.11CELL电路仿真结果
2.2.4INTC完整原理图
INTC包含对上述模块进行综合,最终实现中断控制器。
INTC包含一个3_8CODER模块,一个8AND模块,八个CELL模块及其他辅助电路。
(1)创建INTC原理图。
INTC的原理图如附录所示。
中断请求信号首先通过与中断屏蔽信号相与后,发送至3_8CODER产生相应的中断向量,及发送到菊花链电路,经过或门OR8综合后产生中断信号INT。
在CPU收到中断请求信号后,发回INTA信号(低电平有效),经过菊花链的传递,找到当前中断请求中优先级最高的请求,向对应的设备发送INTAi信号(低电平有效)。
对应的设备撤去中断请求信号,完成一次中断请求过程。
(2)创建元件图形符号
INTC的元件图形符号如图2.12所示。
图2.12INTC图形符号
(3)功能仿真
见2.3节,仿真调试。
2.3仿真调试
仿真调试将对整个设计的电路逻辑功能、时序的正确性进行验证。
(1)仿真信号选择
打开仿真器后,选择需要观察的仿真信号,对选定的输入信号设置参数。
初始IR0~IR7全置为低电平,即处于无中断状态。
__INTA置高电平,即无中断响应信号。
中断屏蔽信号输入端M0~M7全置为高电平,即打开所有中断。
(2)功能仿真结果与分析
功能仿真波形结果如图2.13所示。
当IR5,IR6同时发出中断请求时,INT端置高电平,表示有未屏蔽的中断请求产生。
CPU收到中断请求信号后,置__INTA为低电平作为响应。
中断控制器送出中断向量6(V2:
V1:
V0=110b,V7~V3≡0,初始态时V0~V7为高阻态)。
__INTA通过菊花链传递到达INTA6,INTA6置低电平,表示响应6号中断。
CPU获得中断向量后撤去__INTA信号,V0~V7又回到高阻态。
当第二次响应中断时,INT5得到响应。
然后,屏蔽IR6和IR7两个中断(置M6和M7为0)。
当IR0,IR1,IR7同时发出中断请求时,由于IR7被屏蔽,所以响应IR1。
下一次则响应IR0。
输出波形与设计相符。
图2.13功能仿真波形结果
第3章编程下载与硬件测试
3.1编程下载
利用COP2000仿真软件的编程下载功能,将得到*.bit文件下载到XCV200实验板的XCV200可编程逻辑芯片中。
3.2硬件测试及结果分析
利用XCV200实验板进行硬件功能测试。
中断请求信号,中断屏蔽掩码及来自CPU的中断响应信号的输入通过XCV200实验板的输入开关实现,中断响应信号通过XCV200实验板的LED指示灯实现,向CPU回送的中断向量通过数码管显示,其对应关系如表3.1所示。
表3.1中断控制器与XCV200实验板引脚对应关系
中断控制器引脚
XCV200芯片引脚
XCV200实验板
IR7
P94
K0:
7
IR6
P95
K0:
6
IR5
P96
K0:
5
IR4
P97
K0:
4
IR3
P100
K0:
3
IR2
P101
K0:
2
IR1
P102
K0:
1
IR0
P103
K0:
0
M7
P79
K1:
7
M6
P80
K1:
6
M5
P81
K1:
5
M4
P82
K1:
4
M3
P84
K1:
3
M2
P85
K1:
2
M1
P86
K1:
1
M0
P87
K1:
0
__INTA
P73
K2:
0
INTA7
P78
B7
INTA6
P93
B6
INTA5
P99
B5
INTA4
P107
B4
INTA3
P108
B3
INTA2
P19
B2
INTA1
P124
B1
INTA0
P125
B0
V7
P215
S0:
7
V6
P216
S0:
6
V5
P217
S0:
5
V4
P218
S0:
4
V3
P220
S0:
3
V2
P221
S0:
2
V1
P222
S0:
1
V0
P223
S0:
0
INT
P110
A0
初始化状态时仿真如图3.1所示。
所有中断均已打开,未发生中断,中断响应信号__INTA为高电平。
图3.1仿真初始状态
多个中断同时发生时的仿真结果如图3.2所示。
当5,6,7号中断同时发生时,CPU收到中断请求信号,灯A0点亮。
CPU发出中断响应信号__INTA,由于当前中断中7号中断优先级最高,中断控制器送出中断向量7(S0显示结果为7),7号设备收到中断响应信号,灯B7灭。
图3.2多个中断同时发生
中断屏蔽有效时的仿真结果如图3.3所示。
5,6,7号中断均被屏蔽,当有被屏蔽的中断产生时,不参与优先级的比较。
所以在4,5,6,7号中断源同时发出中断请求时,响应4号中断。
图3.3中断屏蔽有效
参考文献
[1]俸远祯.计算机组成原理与汇编语言程序设计[M].北京:
中央广播电视大学出版社,2002
[2]李芷,杨文显,卜艳萍.微机原理与接口技术[M].北京:
电子工业出版社,2005
[3]李平.电子设计自动化快速入门教程[M].北京:
高等教育出版社,2003
[4]百中英.计算机组成原理(第三版)[M].北京:
科学出版社,2005
[5]史士英.计算机组成原理与系统结构[M].北京:
国防工业出版社,2006
[6]易小琳,朱文军,鲁鹏程.计算机组成原理与汇编语言[M].北京:
清华大学出版社,2009.03
[7]颜志英.微机系统与接口技术[M].北京:
清华大学出版社,2009
附录(电路原理图)
课程设计总结:
通过这次课程设计,我对计算机有了更深刻的认识,也再次感受到硬件技术对计算机发展的决定性作用。
作为一名计算机科学与技术的学生,不仅要学好软件课程,更应该明白硬件是怎样实现的。
这样才能做到知其然,也知其所以然。
这次课程设计,我做的这个题目并不难,但由于开始对实验的软硬件环境不熟悉,所以在学习工具方面花的时间比真正画原理图的时间还多。
这也暗示我们在平时应该学习更多的东西,而不仅仅是把考试课过了就完事。
当然,在做一件事前,我们不可能有万全的准备,在遇到问题后多思考、多实践、多学习,才能不断进步。
选择了计算机专业,也就选择了终生学习。
不管做什么事,充满好奇心总是好的。
当然,态度决定一切。
用好的心态去做一件事,我想做起来一定会更轻松。
其实很多事,只需要认真就可以做好的。
指导教师评语:
指导教师(签字):
年月日
课程设计成绩