基于FPGA的简易微型计算机结构分析与实现

2012-10-17 21:41:23来源: dzsc 关键字:FPGA  简易微型计算机结构
   

引 言

通常,人们对微型计算机的工作原理及硬件结构的了解来源于书本知识,深入理解掌握其功能特点比较困难,要自己亲手去做一个类似功能的微型计算机更是不可能。随着可编程逻辑器件的广泛应用,为数字系统的设计带来了极大的灵活性,用户可以利用FPGA(现场可编程门阵列)来开发出一个精简指令的CPU,同时对微型计算机的原理及结构进行充分研究,便于将来进行相关ASIC(专用集成电路)设计,也可用于计算机原理教学之中。

1 微型计算机结构及原理

以一个简化的微型计算机为例,微型计算机的简化结构。

1.1 微型计算机结构

微型计算机由PC(程序计数器)、IR(指令寄存器)、CON(控制部件)、MAR(存储地址寄存器)、ROM(只读存储器)、A(累加器)、ALU(算术逻辑部件)、B(寄存器)、OUTREG(输出寄存器)、DLEDDIS(数码管动态扫描模块)及DECL7S(显示模块)等组成。这里仅介绍有所改变或不同的模块,其余可见文献[1]。

L为数据载入控制信号,E为三态输出选通信号,clk为时钟信号,clr为清零信号,Cp为控制PC加1信号,S0-S3为控制ALU进行加减或逻辑运算的选择信号。所有的控制、时钟及清零信号由CON模块给出,而CON模块由外部时钟clkin及清零信号rst控制。PC可以置数,即可执行跳转指令。OUTREG可清零,便于多次调试。DLEDDIS及DECL7S用来把地址及结果在数码管上显示出来。

1.2 微型计算机原理

虽然这台微型机可以实现16条指令,但本文对指令不做扩展,仅以5条指令为例。LDA为将数据装入累加器A(操作码0000);ADD为进行加法运算(操作码0001);SUB为进行减法运算(操作码0010);OUT为输出结果(操作码1110);HLT为停机(操作码1111)。

在程序和数据装入后,当外部给出时钟信号及清零信号无效时,由CON模块发出信号及控制字,开始取出和执行每条指令。如控制字顺序为ErLrS3S2S1SOEuLm LbEaLaEi LiCpEpLp,这里Lr可用于存储器为RAM时做写使能信号。由于采用的是数据总线与地址总线合一的总线结构,一条指令的执行需要6个机器节拍,即前3节拍取指周期与后3节拍执行周期。如执行ADD 0AH,机器码为1AH(0001 1001)。第1节拍将PC内容送入MAR,控制字为“0000 0001 00000010”,即Ep与Lm为1;第2节拍将ROM中对应地址单元中的内容送到IR,IR高4位送至CON,控制字为“1000 0000 0000 1000”,即Er与Li为1;第3节拍使PC加1,控制字中Cp为1,其余为0;第4节拍将IR的低4位送至MAR,Ei与Lm为1;第5节拍将ROM中的内容送入累加器A中,Er与La为1;第6节拍为加法运算,Eu与La为1,同时S0-s3选择为加法运算。

2 FPGA实现

2.1 总线方式

总线方式是指严格按图1用FPGA实现相应结构的微型机。本实验采用上海航虹公司的AEDK实验箱,FPGA芯片为Altera公司的EPF10K20TC144-4,软件采用QuartusII4.0、Max+plusII10.0及synplifypr07.5,程序设计采用VHDL语言。

共有11个子模块,最后用元件例化语句构成总模块。以设计程序计数器模块C-PC及控制模块C_CON为例简单做一介绍。

 

 

当三态输出信号es选通时,即es=“1”,PC可输出,否则输出为高阻态。数据或地址与总线相关的子模块都需采用三态门。由于采用了三态门,最好用QuartusⅡ软件来进行编译,Max+plusⅡ有时不一定可以通过。

用synplify pro7.5对C_PC模块进行RTL(寄存器传输级)原理图观察,如图2所示。其综合电路与一个4位二进制计数器类似,只是多了一个三态门。用synplify pro7.5不仅可以观察RTL电路,还可以观察门级电路结,深入了解其内部结构

C_CON模块是最关键的模块,因为所有的控制信号都由它发出。由于指令执行需6个机器节拍,每个节拍对应相应功能,采用状态机是实现此高效率、高可靠逻辑控制的重要途径。如以下程序所示,每个状态对应着不同的控制字,共有6个状态。

 

 

只读存储器模块可使用LPM_ROM的LPM_FILE文件,便于调试不同的程序。

[1] [2]

关键字:FPGA  简易微型计算机结构

编辑:北极风 引用地址:http://www.eeworld.com.cn/FPGA/2012/1017/article_3200.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:基于FPGA的数字电压表的设计
下一篇:基于FPGA的按键弹跳消除模块的研究与应用

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利
推荐阅读
全部
FPGA
简易微型计算机结构

小广播

独家专题更多

TI车载信息娱乐系统的音视频解决方案
TI车载信息娱乐系统的音视频解决方案
汇总了TI汽车信息娱乐系统方案、优质音频解决方案、汽车娱乐系统和仪表盘参考设计相关的文档、视频等资源
迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来

夏宇闻老师专栏

你问我答FPGA设计

北京航空航天大学教授,国内最早从事复杂数字逻辑和嵌入式系统设计的专家。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2017 EEWORLD.com.cn, Inc. All rights reserved