当前位置:首页 > 嵌入式 > 嵌入式电路图
[导读]1 前言设计研究适用于国防和民用需求的高性能、高精度的微处理器(MPU),已经变得十分重要和迫切。为了处理大量实数数据,并考虑计算精度和实时性,需要将MPU单独分离出来一

1 前言

设计研究适用于国防和民用需求的高性能、高精度的微处理器(MPU),已经变得十分重要和迫切。为了处理大量实数数据,并考虑计算精度和实时性,需要将MPU单独分离出来一部分进行浮点运算,像现在的高档数字信号处理芯片(DSP)都含有一个FPU,所以研制高性能的浮点运算单元IP具有重要意义[1]。

微程序的概念和原理是由剑桥大学数学教研室教授M.V.Wilks在1951年第一次提出的[2],但随后15年,由于控制存储器的问题制约了微程序技术的发展。由于LSI和VLSI 控制存储器的发展,微程序在微型机中已经开始起着重要作用。

微程序控制器的性能是提高处理速度的关键因素之一。本论文关于微程序控制器的研究是基于哈尔滨工业大学(威海)微电子中心32位FPU的设计,其采用了微指令控制的方法,用门级完成相关模块的设计,通过布局布线后的结果看出,该设计规模小、速度高,非常适合嵌入式应用。

2 微程序控制器的结构及设计

在微处理器中产生控制信号一般由微程序和状态机两种方法实现,其中微程序属于固件。微程序控制器输出的微指令用来控制整个FPU工作[3]。一条微程序一般由操作控制和顺序控制两大部分组成。控制部分用来管理和指挥FPU的工作[4]。微程序的顺序控制部分用来决定产生下一条微指令的地址。微程序控制器有其自身的优点,比如:具有规整性、灵活性和可维护性等一系列优点。本设计的微程序控制器的结构如图1所示。

 


微程序控制器主要包括三部分,用于产生下一条微指令的微地址生成模块、用于存储微指令的存储器(此为一块Rom)和用于指挥FPU工作的控制总线,其中主要是前两部分,下面分别给与介绍:

2.1 微地址生成模块介绍

微地址生成模块主要目的就是产生下一条微指令的地址。地址线宽为8bit,下一条微地址由如下几条产生(如图2所示):

1.ExcMiptr信号是用来选择由于一条FPU指令执行过程中产生各种异常(包括结果不精确异常、上溢、下溢和无效异常)对应的异常操作与控制的入口地址。

2.nextMiptr信号是用于选择一条FPU指令执行过程正常情况下,产生下一条微指令的地址。

3. RomEntry信号是用于根据FPU指令选择不同指令的入口地址,本设计把单精度和双精度的加、减、乘、除、乘加等指令设计有不同的控制入口地址。

4.RomMiptr信号是微地址默认的停靠地址,即在复位和FPU空闲时输出的默认地址

5.feedback信号是用于选择用于跳转微指令地址,例如在本设计中用于乘加、乘减指令的跳转控制。

如上这些地址信号的控制都来源于微指令的控制位。其中是否产生分支的控制如图3所示。

 


图3 微指令分支控制信号生成图

2.2微指令存储模块

本微指令控制器的存储模块,有8bit地址输入和64位数据输出用于管理和控制整个FPU工作。64位微指令是控制整个系统所用的控制信号,其功能与状态机相似,在本设计中通过微指令的[15:11]检测到数据处理过程中可能出现的状态,再根据不同的状态进行状态转换。下面把其中主要的几位列表如表1:

 


表1 微指令控制位

3.模块的实现及验证

微程序模块采用了从顶到下的(Top-down)设计方法,所有部件按照模块化思想设计成IP(Intellectual Property),明确模块间的接口信号时序,同时模块里的逻辑控制都是用门级设计,从而优化设计的性能。使用Synopsys公司的Design Compiler作为综合工具,用SMIC0.18微米工艺,综合出来的结果时钟频率266MHz。

系统采用硬件描述语言Verilog作为工作语言,使用Modelsim SE6.2完成整个仿真过程,仿真结果都完全符合IEEE754标准要求[5],能实现单精度和双精度的控制。完成后仿真并通过FPGA验证,这为将来流片打下了坚实的基础。

一般来讲,设计验证方法包括两大类:模拟的方法和形式化的方法。本设计采用模拟的方法。模拟验证环境如图3所示,运用基于断言的验证方法,主要分为三大部分:激励部分、待测模块和验证比较模块。

 


图3 模拟验证环境

一般情况下,激励的生成方法有两种:一类是直接激励生成;一类是随机激励生成。本设计两种方法都使用了,对于正常的加减乘除等运算采用了随机生成激励(约束性随机),而对于其他边角情况使用了直接激励,特别各种异常情况。辅助模块包括指数运算模块、尾数运算模块和符号运算模块。比较结果输出模块包括运用设计规范指定的结果与验证模块输出的结果进行比较。

4.结论

32位FPU中微程序控制器的设计经仿真验证证明它的功能是完全能满足IEEE754标准的FPU的控制功能。在设计中采用了多入口地址等提高微程序控制能力的方法。为了提高电路性能,使用门级设计方法。通过布局布线后的结果看出,该设计规模小、速度高,非常适合嵌入式应用。此微程序控制器可以在所有满足IEEE754标准的浮点处理器中使用,提高了设计的效率和可靠性,加快了设计周期。

本文作者的创新点:采用微程序控制的设计方法,同时采用门级设计方法,所以规模小,速度快。通过Modelsim仿真,完全满足符合IEEE754标准的浮点处理器的应用。

参考文献

[1]李六杏,周国祥.一种用于SOC中快速乘法器的设计[J].微计算机信息,2007,23,4-2:155-157.

[2]杨波,高德远. 微程序控制器的设计与实现[J],计算机工程与应用,2001,7:27-29.[!--empirenews.page--]

[3]Intel: intel82C288 Series Reference [M]. 1984.50-61.

[4]David A.Patterson, John L. Hennessy, Computer Organazaiton & Design[M], Morgan KauFMann Publishers, inc,2002 316-324

[5] ANSI/IEEE Standard 754-1985: IEEE Standard for Binary Floating-Point ArithmetIC[M]. Poscataway, NJ: IEEE Press, 1985.

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

物联网控制模块作为连接物理世界与数字世界的桥梁,在现代科技领域扮演着至关重要的角色。本文将详细探讨物联网控制模块的定义、功能、应用领域以及未来发展趋势,旨在为读者提供全面而深入的了解,并展望其在未来物联网产业中的广阔前景...

关键字: 物联网 控制模块 嵌入式系统

今天,小编将在这篇文章中为大家带来智能家居的有关报道,通过阅读这篇文章,大家可以对智能家居集成平台以及智能家居新生态具备清晰的认识,主要内容如下。

关键字: 智能家居 控制模块 智能模块

随着人工智能的发展,语音识别技术在智能家居的应用可谓风生水起。智能音箱、智能摄像头、智能门铃等企业无不将语音识别控制技术作为关键应用技术。可是,在语音识别领域,特别是离线语音识别控制领域,相关的

关键字: 智能家居 语音识别技术 声学 控制模块

(文章来源:轻生活科技) 时光荏苒,如白驹过隙。弹指一挥,2019年就这样结束了。送走2019年,我们迎来了2020年。在过去的一年里,智能语音行业的发展如火如荼。展望2020年,在科技

关键字: 智能语音 控制模块 电器 模块技术

在智能家居领域,一直有人讨论诸如“不稳定的通信协议”,“设备之间的断开连接”,“产品之间的不兼容性”,“安全性”等问题。也正式因为这些问题影响了智能家居的快速普及。 然而,随着国内外智能

关键字: 智能家居 语音识别 控制模块 语音控制

TSI系统(汽轮机状态监视和保护系统)和ETS系统(汽轮机危机跳闸系统)是火力发电厂保证汽轮机和发电机正常运转的重要设备,在火力发电企业运用十分普遍。在当前的大部分应用中,这两套系统是互相独立的

关键字: 芯片 PLC 控制模块 CAN现场总线

控制信号中的模拟量传输正逐步改为数字量传输,各种非数字化设备也必将逐步为数字化智能产品所取代。但是,在实际生产现场依然有大量的数据是模拟量,例如压力、液位、温度

关键字: a/d 多通道 控制模块 电源技术解析

volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳...

关键字: C语言 volatile 单片机制作 修饰符

如果你正为项目的处理器而进行艰难的选择:一方面抱怨16位单片机有限的指令和性能,另一方面又抱怨32位处理器的高成本和高功耗。

关键字: 单片机 单片机制作 嵌入式 数字电路

C忌讳绝对定位。常看见初学者要求使用_at_,这是一种谬误,把C当作ASM看待了。在C中变量的定位是编译器的事情,初学者只要定义变量和变量的作用域,编译器就把一个固定地址给这个变量。怎么取得这个变量的地址?要用指针。比如...

关键字: 单片机 单片机制作 嵌入式 数字电路
关闭
关闭