基于EDA技术的定向型计算机硬件设计
扫描二维码
随时随地手机看文章
1 引言
随着计算机技术的迅速发展,计算机系统中使用的硬件部件基本上都采用大规模和超大规模集成电路,这些电路的设计、验证和测试必须使用先进的工具软件,使硬件设计逐渐趋于软件化,加快硬件设计和调试的速度[1],计算机硬件作为一个典型的复杂数字系统,其设计方法发生了根本性的变革。EDA(Electronic Design Automation ,电子设计自动化)技术就是一种自动完成将用软件的方式设计的电子系统形成集成电子系统或专用芯片的一门新技术[2].
TDN-CM++实验装置是计算机组成原理及系统结构课程的专用实验箱,但存在硬件结构基本固定、CPU 的各个组成部件全部做好、以验证型的实验为主、学生只需按书中要求拨动相应开关就能完成实验等问题,达不到在整体上把握计算机的基本原理和工作流程的目的,实验效果不尽人意。
根据目前计算机和集成电路技术的发展现状,利用TDN-CM++实验装置上复杂可编程逻辑器件ispLSI1032 芯片,设计一个定向型计算机硬件系统,包括运算器、控制器、存储器的设计,以达到弥补实验装置和实验项目不足的目的。
2 基于EDA 技术的计算机硬件系统设计过程
设计一台完整的计算机硬件系统主要经过如下几个阶段:
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”时,才能进行数据的读取命令。[!--empirenews.page--]
case addrbus is
when “0000”=>
maindata<=“10100000”;
when others=>
maindata<=“00000000”;
end case;
end if; end process rom16x8;
3.2 CPU功能模块的VHDL实现
对于图1 中ispLSI 芯片功能图中内CPU 功能模块的VHDL 实现流程如图3 所示,它是整个模型机的核心。
图3 CPU 功能模块VHDL 实现流程
计算机硬件系统的仿真根据ROM的中存放的程序不同,这个模型机完成的操作也就不同,下面将通过建立编写仿真测试向量,来进行逻辑功能仿真,检验设计是否实现了需要完成的功能。 对实现20-6+2运算的工作程序及其在ROM内存映像(起始地址0H)如表3所示:
表3工作程序
进行功能仿真首先需要用ABEL-HDL语言编写独立的测试向量文件:
MODULE model
clk,reset,outport,led,wr pin;
Test_vectors ([clk,reset]->[outport,led,wr]) [.x.,1]->[.x.,.x.,.x.];
@REPEAT 100 {[.c.,0]->[.x.,.x.,.x.];} [.x.,1]->[.x.,.x.,.x.];
END
利用上面建立的测试向量文件,其仿真结果如图4所示。
由仿真波形可以看到在执行OUT 指令时送出20-6+2的运算结果为1C,同时使输出给OUTPUT DEVICE 的信号led='0',wr也由1->0.在执行HLT指令时run 由1->0,模型机停机。这与理论结果完全相符。
图4 仿真结果
结束语
作者创新点为:提出了在TDN-CM++实验装置中的复杂可编程逻辑器件ispLSI1032芯片上,设计定向型计算机硬件系统(包括运算器、控制器、存储器)的结构、设计方法及具体实现,弥补了TDN-CM++实验装置的不足,为进一步理解计算机原理和组成以及系统结构方面的知识创造了条件,为嵌入式系统等的应用打好基础。