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

0 引言

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

1 微型计算机结构及原理

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

129942223095661950_new.jpg

图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模块发出信号及控制字,开始取出和执行每条指令。如控制字顺序为ErLrS3S2S1S0EuLm LbEaLaEi LiCpEpLp,这里Lr可用于存储器为RAM时做写使能信号。由于采用的是数据总线与地址总线合一的总线结构,一条指令的执行需要6个机器节拍,即前3节拍取指周期与后3节拍执行周期。如执行ADD 0AH,机器码为1AH(0001 1001)。第1节拍将PC内容送入MAR,控制字为“0000 0001 0000 0010”,即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选择为加法运算。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/443495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

django 返回ajax html,Django 前台通过json 取出后台数据

前台通过json 取出后台数据步骤1:后台数据通过 JSON 序列化成字符串注意:1、json是1个字符串2、通过json.dumps(xxx) 序列化成 1个字符串的 字典对象views.pydef ajax(request):if request.methodPOST:print(request.POST)data{status:0,msg:请求成功,data:[11,22,3…

长春金桥计算机学校,金桥学校2017年招生简章

原标题:金桥学校2017年招生简章金桥学校创建于2000年5月,现有45个教学班,在校学生2700余人。近年来,学校以“培养高素质的现代中国人”为办学目标,坚持“德育为首、做人第一”的办学理念,积极改革创新&…

Oracle中通过substr和instr实现截取指定字符之间的字符串:

摘要:在开发项目的过程中遇到了这样的一个问题,就是从远程服务器取到的数据中是由一段规则的字符串组成的,但是你想要的还不是这段字符串,是其中的一段字符串,那就的使用Oracle强大的函数了,我的问题是这样…

量子计算机模型机,物理科学:量子计算机上实现了量子人工生命模型!

物理科学:量子计算机上实现了量子人工生命模型!UPV / EHU-巴斯克地区大学的一个项目首次在量子计算机上实现了量子人工生命模型。由UPV / EHU物理化学系的Ikerbasque教授Enrique Solano领导的量子信息科学技术(QUTIS)研究小组开发了一种量子仿生协议&…

计算机系统死机,电脑总是突然死机?3 分钟教你轻松恢复 Windows

说到 Windows 系统,你想到的第一个词语是什么?如果是我的话,想到的一个词是「蓝屏」,虽然 Windows 10 经过几年的更新迭代,蓝屏的概率已经少了很多,但出现蓝屏时,总让人感叹:「还是那…

服务器安全证书更新失败怎么回事,手机安全证书更新失败怎么回事

众所周知,手机安全证书如果失效或者过期之后是需要重新下载的,否则很多应用就不能正常的使用,可是手机安全证书更新失败也是存在的,手机安全证书更新失败怎么回事呢?了解网络安全常识,首先就要了解佰佰安全网小编就带…

wif检测到DNS服务器未响应,hiwifi(极路由)恢复出厂的设置方法

摘 要极路由(hiwifi)怎么恢复出厂设置?想把极路由恢复出厂设置,但是不知道怎么设置。极路由恢复出厂设置的操作其实非常简单,有下面2种方式可以把极路由恢复出厂设置 1、按复位按钮恢复出厂设置 2、登录到极路由(hiwifi)怎么恢复出厂设置?想把…

命运2服务器维护时间2019,《命运2》今晚将停机维护 为多平台共用存档做准备...

原标题:《命运2》今晚将停机维护 为多平台共用存档做准备《命运2(Destiny 2)》将于今晚(6月27日)10点,开始12个小时的停机维护,这次维护是为支持跨平台共享存档做准备。如果你是今天晚上想玩会《命运2》的玩家最好来看看&#xff…

e4a服务器文件,e4a链接网站服务器

e4a链接网站服务器 内容精选换一换当您想在Internet上通过域名访问您的网站时,可以通过华为云的云解析服务为域名添加解析记录。例如,搭建一个网站服务器,采用IPv4格式的弹性IP地址。如果想要实现通过域名“example.com”及其子域名“www.exa…

Oracle中通过存储过程,Function,触发器实现解析时间类型的字段并插入的对应的数据表中...

摘要:之前在项目中解决了插入字符串类型的数据,今天试着写了一个插入date类型的字段,成功了,现在记录一下,以便以后查看: 一:首先建立一个根据xml节点名称获取对应的xml值的Function.sql: CREA…

Maven 3.0.5 安装和配置:

摘要:现在的Web项目越来越多的都用maven管理了,所以我也抽时间学习学习,为了赶上时代! 一:首先到maven官网:http://maven.apache.org/,然后选择相应的版本下载,我这里下载的是maven…

使用INNER JOIN ON 多表关联查询,获取指定用户下指定权限的资源SQL:

摘要:最近在看一个开源框架,其中用户,角色,资源,这块我感觉比较重要,所以就自己也模仿着写了下,其中在获取指定用户下的权限资源的时候遇到问题了,开始时,我首先想到的方…

Oracle中通过游标执行带参数的存储过程实现解析CLOB字段内的xml字符串:

摘要:近来之前的项目数据出现了问题,原因是由于之前在设计数据库的时候把时间字段设置成了字符串格式,所以给后期的数据操作带来了很大的麻烦,这里提醒一下各位程序猿,以后在开发项目的时候时间字段一定要是时间字段&a…

Linux 下安装 jdk-7u75-linux-x64.gz,jdk1.7.0_75,jdk1.7步骤:

摘要:近来又用到了Linux系统,所以就又新装了一个虚拟机和CentOS 6.4来用,搞开发的程序猿们可能都知道,在现在的很多企业中,生产环境大多都是Linux服务器,并且用的比较多的大都是CentOS,Red hat系…

Linux下配置OpenLDAP服务记录

摘要:最近部门需要整合所有的系统,所以领导说要通过OpenLdap数据库来实现对所有系统的统一管理,所以需要在服务器上配置一下LDAP服务,我们这里选择的是OpenLdap服务,我在网上搜索了很多,开始都没有配置成功…

Maven配置nexus

摘要:近来一直在搭建maven结构的开发框架,其中这个过程中用到了nexus私服,这里我把我经过查询总结的最终的方式记录一下,以便后面忘记了: 一:nexus私服的安装(略) 二:仓库的讲解如下图: 1、ho…

Maven项目发布的配置

摘要:要想发布maven结构的项目到nexus私服上,可以通过两种方式来,一种是在项目的pom.xml文件里面配置,另一种是通过命令的方式发布到nexus私服上,但是这种方式的前提也得在settings.xml文件配置用户: 一:M…

MariaDB通过命令行的方式导出指定数据库和还原指定数据库

摘要:今天由于需要需要从本地导出一份VP系统的数据库脚本,以前我都是通过工具直接导出,现在有同事说可以通过mysql的命令方式导出,我试了一下,可以,现在记录一下! 一:在MariaDB的安装…

Maven中maven-source-plugin,maven-javadoc-plugin插件的使用:

摘要:今天领导说要把项目通过maven生产源码包和文档包并发布到自己的私服上,经过查看mavne官网发现有两个maven插件可以做到这些工作,一个是maven-source-plugin,另一个是maven-javadoc-plugin,现在记录一下&#xff0…

Maven之生成测试覆盖度的插件cobertura-maven-plugin的使用

摘要:Maven中可以通过使用插件检查一个项目的测试代码的覆盖度,这个插件就是cobertura-maven-plugin,这个插件如何使用我做了测试,现在记录一下! 一:首先在你的项目的pom.xml文件中增加该插件的配置&#x…