基于MIPS处理器的外围接口应用实验设计

2013-09-06 12:04傅翠娇曹庆华
实验技术与管理 2013年10期
关键词:译码内存处理器

傅翠娇,曹庆华

(北京航空航天大学 计算机学院,北京 100191)

随着计算机技术的飞速发展,EDA设计已经成为硬件设计的主要方式,新型的计算机实验教学模式是利用硬件描述语言和EDA工具[1],先在计算机上进行设计、修改和仿真,通过仿真波形可以直接观察到电路内部的各个信号的变化情况,然后将设计下载到实验台上的FPGA芯片中,进一步验证设计的正确性。通过一系列综合性的实验,不仅可以加深学生对计算机硬件基本知识的理解,而且有助于学生贯通这些知识点。通过在实验台上的验证与调试,锻炼了学生的实际动手能力、分析问题和解决问题能力[2-4]。

计算机组成原理实验是计算机专业重点的专业基础课程之一,通过这门课程的学习和实践,使学生了解计算机各个子系统的工作原理,建立起计算机整机系统的概念。该实验课程起着承上启下的作用,是让学生建立起整机概念的关键,其他的计算机专业的硬件实验课程可以围绕计算机组成原理实验展开,可以通过向下融合和向上扩展的方式使计算机硬件类的实验课程成为一个有机的整体。本文通过一个基于MIPS处理器的实验设计实例进行了详细的说明[5-10]。

1 实验设计的基本原理和设计思路

1.1 实验内容

本实验利用MIPS CPU、并行接口8255A以及定时器/计数器8253设计一个可循环运行的程序,要求对8255A和8253进行初始化后,使用8253进行定时运行CPU中的循环程序,并向8255A输出数据,然后再把运行结果通过数码管上显示出来。

1.2 MIPS处理器

本文使用的MIPS处理器——MIPS-C主要定位于实验教学,是一个仅执行定点指令的功能型处理器,与绝大多数 MIPS处理器不同,MIPS-C采用单发射多周期体系结构。MIPS-C具有中断机制,不支持流水线、Cache、MMU、浮点运算等。MIPS-C的设计主要参考了《计算机组成与设计-软件/硬件接口》一书[11]。

1.3 并行接口8255A的工作原理

8255A是一个可编程的并行输入、输出接口电路,具有24个可编程设置的I/O口,包括3组8位的I/O为PA口、PB口、PC口,又可分为2组12位的I/O口:A组包括A口及C口高4位,B组包括B口及C组的低4位。8255A共有3种工作方式,其中A口可以设置为方式0、方式1、方式2,B口与C口只能设置为方式0或方式1。

1.4 定时器/计数器8253的工作原理

8253是一种可编程定时/计数器,它有2个功能:一是作为计数器,另一是作为定时器。8253具有以下主要特点:(1)具有3个独立的16位减一计数器;(2)可按二进制或十进制(BCD)计数;(3)具有6种不同的工作方式,这些方式可由软件来设定[12]。

1.5 设计思路

为了实现MIPS CPU与外围接口的互连,需要对已设计的MIPS CPU做一些调整,例如原来的内存和CPU混合在一起,不易控制,也不易和外围接口相连,因此需要先把内存移至CPU外;原来CPU与外界交换数据使用的是一条输入数据线和一条输出数据线,而8255等外围接口使用的是即可作输入又可作输出的总线结构,因此需要将数据线修改为总线结构。怎样控制定时器8253,比如门控信号,一种方法是使用8255A的C口输出到8253,另一种方法是直接将其连接到一个输入信号,手动控制门控信号。相比较而言,手动控制的方法比较好控制观察现象,在这里选择第2种方法。8253的输出信号等作中断信号使用,与CPU的外部中断INT信号相连,一旦计时到就开始循环执行程序,程序运行的结果通过8255A的B口输出。

1.6 实验环境

该实验在QuartusⅡ7.2中进行设计和仿真,并在Altera公司的FPGA芯片EP2C35F672C6和DE2教学开发板上进行下载验证。

2 实验设计的详细过程

2.1 MIPS CPU模块

MIPS CPU是一个实现了MIPS指令集的32位精简指令集CPU。原来的内存是与CPU混合在一起的,不易控制,也不易与接口相连,因此需要先将内存移至CPU外部,然后生成CPU的顶层文件,为下一步与接口的连接做好准备,其符号文件如图1所示。

图1 MIPS CPU的符号模块

MIPS CPU文件的时序仿真如图2所示。

图2 MIPS CPU的仿真波形文件

2.2 8255A可编程并行接口模块

在本实验中,8255A芯片工作在0方式,即A口、B口、C口的高低四位可以自行指定作为输入输出端口使用,可以根据自己的约定把一些端口作为控制位使用,8255A的符号模块如图3所示。对8255A可编程并行接口进行时序仿真,其仿真文件如图4所示。

2.3 定时/计数器8253的设计模块

在本次实验中,采用8253的0通道和方式0,其符号模块如图5所示[13]。

图3 8255A的符号模块

图4 8255AA口输入B口输出的仿真波形文件

图5 8253的符号模块图

对8253的0通道和方式0进行仿真,仿真波形文件如图6所示。

2.4 修改数据线为总线结构

原来的CPU与外界交换数据使用的是一个输出数据线和一个输入数据线,而8255A等接口使用的是既可以输入,又可以输出的总线结构,因此需要先将数据线改为总线结构。如图7所示,将输入数据与输出数据合并为一条线,并且在输入输出端加入tri器件作为总线控制器,即可完成总线结构的改造。

图6 82530通道、方式0的时序仿真

图7 系统的总线结构图

图7中标记处为控制CPU输入输出的总线控制器,控制信号为读取信号RW,当读有效时,总线方向为CPU输入方向,当写有效时,总线方向为CPU输出方向。

2.5 地址译码电路

(1)内存译码电路。内存的译码电路比较简单,因为只需要判断A[7]是不是0即可,如图8所示。

图8 内存译码电路

(2)8255A的译码电路。只需要判断 A[7:2]是否是100000,译码电路如图9所示。

图9 8255A的译码电路

(3)8253的译码电路。需要判断A[7:2]是否是100001,译码电路如图10所示。

图10 8253译码电路

2.6 编写MIPS CPU汇编程序

将各个元件连好后,就开始编写MIPS汇编程序,本实验中使用将程序硬编码在内存中的做法。控制过程为:手动开启gate信号,之后内存中的循环程序会一直将一个变量加1,定时器每定时1次,做1次加1运算。

控制逻辑如下所示:

(1)初始化8253:控制字为8’b00010100,计数初值为8’b00010000;

(2)初始化8255A:控制字为8’b10010000;

(3)然后8253每定时一次,程序把内存中的一个数加1,计算结果回送内存,并通过8255输出。

初始化8253和8255A的时序仿真图如图11所示。开始执行循环程序的时序仿真如图12所示。

图11 初始化8253和8255A的时序仿真图

图12 开始执行循环程序的时序仿真图

2.7 CPU与8255A、8253的连接

按照CPU的输入输出引脚定义以及8255A输入输出的引脚定义,把CPU和8255A进行连接。为了不让内存和8255A输出信号相冲突,在tri器件的选择信号上需要加入本器件的CS使能信号,如图13所示。

图13 8255A输出电路

在连接8253时,除了与CPU相对应的各种信号需要连接以外,还有2个信号需要注意,一个是启动8253开始计时的gate信号,还有一个是8253的输出信号。gate信号可直接将其连入一个输入,手动开启gate信号,这样做的目的是比较好控制观察现象。8253的输出可以当做中断信号来使用,与CPU的外部中断INT信号相连,具体的连接方法如图14所示。

2.8 绑定引脚,编译下载

再次对工程进行全编译,然后将生成的目标文件下载到实验箱上,进行在线测试。测试结果验证了系统功能的正确性。

3 结束语

本文设计并实现了一个基于MIPS处理器的并行接口的计数器应用实验,功能仿真和下载测试表明:该系统功能正确,性能稳定。通过增加外围芯片,加深了学生对处理器的理解和认识;通过实现处理器对外围接口的控制,使学生更好地理解了接口的工作过程。该设计综合了多种计算机硬件设计知识,对学生更好地掌握这方面的非常有帮助。

图14 CPU与8255A、8253的连接图

(References)

[1]任春明,刘军.计算机组成原理实验教学的思考与改进[J].实验技术与管理,2006,23(10):110-111.

[2]袁春风,黄宜华,武港山,等.“计算机组成与体系结构”课程群建设实践[J].计算机教育,2010(13):80-83.

[3]王帅,袁春风.美国一流大学计算机组成与系统结构实验课程研究[J].计算机教育,2011(17):115-118.

[4]顾兵,彭文艺,欧阳星明.计算机专业硬件课程实践教学改革思考[J].计算机教育,2011(12):19-21.

[5]董再秀,温卫敏,赵亮.“计算机组成原理”课程教学改革与实践[J].滁州学院学报,2011,13(2):94-96.

[6]袁春风,陈贵海,黄宜华,等.“计算机组织与系统结构”课程的教学现状和改革思路[J].计算机教育,2009(4):153-156.

[7]王诚,宋佳兴.教学计算机系统的设计与实现[J].计算机工程与应用,2005(12):213-216.

[8]陈智勇.计算机组成系统实验的改革与实践[J].电气电子教学学报,2007,29(5):73-78.

[9]李山山,全成斌.计算机组成原理课程实验教学的调查与研究[J].计算机教育,2010(22):127-129.

[10]袁春风,张泽生,杨若瑜,等.“计算机组成与系统结构”课程建设思路与教学实践[J].计算机教育,2012(2):62-66.

[11]David A Patterson,John L.Hennessy.计算机组成与设计硬件/软件接口[M].北京:机械工业出版社,2007.

[12]刘乐善,欧阳星明,刘学清.微型计算机接口技术及应用[M].武汉:华中科技大学出版社,2000.

[13]傅翠娇,曹庆华.计算机接口与通信实验教程[M].北京:清华大学出版社,2011.

猜你喜欢
译码内存处理器
基于校正搜索宽度的极化码译码算法研究
“春夏秋冬”的内存
从霍尔的编码译码理论看弹幕的译码
内存搭配DDR4、DDR3L还是DDR3?
LDPC 码改进高速译码算法
Imagination的ClearCallTM VoIP应用现可支持Cavium的OCTEON® Ⅲ多核处理器
ADI推出新一代SigmaDSP处理器
基于概率裁剪的球形译码算法
基于内存的地理信息访问技术
上网本为什么只有1GB?