1引言
随着计算机技术的迅速发展,计算机系统中使用的硬件部件基本上都采用大规模和超大规模集成电路,这些电路的设计、验证和测试必须使用先进的工具软件,使硬件设计逐渐趋于软件化,加快硬件设计和调试的速度,计算机硬件作为一个典型的复杂数字系统,其设计方法发生了根本性的变革。EDA(Electronic Design Automation ,电子设计自动化)技术就是一种自动完成将用软件的方式设计的电子系统形成集成电子系统或专用芯片的一门新技术。
TDN-CM++实验装置是计算机组成原理及系统结构课程的专用实验箱,但存在硬件结构基本固定、CPU的各个组成部件全部做好、以验证型的实验为主、学生只需按书中要求拨动相应开关就能完成实验等问题,达不到在整体上把握计算机的基本原理和工作流程的目的,实验效果不尽人意。
根据目前计算机和集成电路技术的发展现状,利用TDN-CM++实验装置上复杂可编程逻辑器件ispLSI1032芯片,设计一个定向型计算机硬件系统,包括运算器、控制器、存储器的设计,以达到弥补实验装置和实验项目不足的目的。
设计一台完整的计算机硬件系统主要经过如下几个阶段:
2.1确定指令系统
该系统的指令系统如表1所示。指令和数据都采用8位表示。源操作数采用存储器直接寻址方式,目的操作数采用隐含寻址。
表1指令系统
2.2总体结构与数据通路
该系统总体结构与数据通路如图1所示。
图1系统总体结构与数据通路图
2.3状态确定
该系统指令周期是6个时钟周期,前是三个时钟周期即状态S0~S2为指令的读取周期,后3个时钟周期即S3~S5为指令的执行周期。
2.4设计指令执行的流程
该系统指令执行流程如表2所示。
表2指令执行流程
2.5编程、调试、运行、仿真
编程、编译、综合所设计的工程文件,建立测试向量进行功能仿真。将生成的JEDEC文件下载至实验仪器的ispLSI芯片中。按设计的线路图进行连线。系统连线图如图2所示。把程序写入内存中。调试运行。
图2系统连线图
3各功能部件的VHDL源程序
3.1内存ROM功能模块的VHDL实现
对于图1中ispLSI芯片功能图中内存ROM 16X8的功能采用VHDL实现代码如下。
rom16x8: process(ce)
begin
if ce=‘0’ then ——使能端ce为逻辑“0”时,才能进行数据的读取命令。
case addrbus is
when“0000”=》
maindata
maindata[outport,led,wr]) [.x.,1]-》[.x.,。x.,。x.];
@REPEAT 100 {[.c.,0]-》[.x.,。x.,。x.];} [.x.,1]-》[.x.,。x.,。x.];
END
3.2 CPU功能模块的VHDL实现
对于图1 中ispLSI 芯片功能图中内CPU 功能模块的VHDL 实现流程如图3 所示,它是整个模型机的核心。
图3 CPU 功能模块VHDL 实现流程
计算机硬件系统的仿真根据ROM的中存放的程序不同,这个模型机完成的操作也就不同,下面将通过建立编写仿真测试向量,来进行逻辑功能仿真,检验设计是否实现了需要完成的功能。 对实现20-6+2运算的工作程序及其在ROM内存映像(起始地址0H)如表3所示:
表3工作程序