16位浮点数编码器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、实验名称:16位浮点数编码器 二、实验要求:
1) 将一个16位的二进制数转化为含有4位有效数、4为指数的浮点数。 2) 输入为16为的二进制数,输出为4位尾数部和4位指数,暂时不考虑截断误
差。
三、实验原理: 1) 浮点数理论
浮点数的表示由两部分组成,第一部分为尾数部,第二部分为指数部。例如,0.0031207表示为浮点数就是323.12100.31210--⨯⨯或者,其中,前者中的3.12和后者中的0.312为尾数部,前者中的-3和后者中的-2为指数部。但是由于忽略了后面的部分,所以会产生截断误差。
同理,二级制数转化为浮点数,就是把尾数部和指数部都表示为二进制形式,而且指数的底数也是2,例如:
1101011010001000=1101×2∧1100+011010001000 0010010111100000=1001×2∧1010+0111100000 0000000001010000=1010×2∧0011+0
其中,1101、1001、1010为尾数部,1100、1010、0011为指数部。统一表示为
E B M 2+T =⨯。
3) 设计思路
a) 如何确定第一个“1”的位置?
解答:使用16-4优先编码器, 16-4编码可以使用两个74X148优先编码器构成。如右图1所示
b) 如何确定4位指数?
解答:优先编码器的输出可以实现指数部的输出。为此,定点数最高位B15应该接在优先编码器的I12,而优先编码器的I0接定点数的B3。从B15到B3依次只有到B3还没有出现1时,浮点数的指数才为0。
c) 如何从第一个“1”开始依次选出4位M3M2M1M0?
解答:通常M3=1,只有当B15-B3全为0时,M3=0,因此M3可由GS 端获得。正常输出为正逻辑1。使用16选1多路复用器,分别改变16-4优先编码器的数据输入端连接可以得到M2M1M0。16选1多路复用器可以由两个72X151来实现。如图2所示
图1. 16-4优先编码器的实现
图2. 16选1多路复用器的实现
四、设计平台:MAX+plusII
五、设计实现
1)电路图
图3. 16位浮点数编码器的实现电路图
2)仿真波形
a)激励为自然码计数式输入
b)激励为格雷码计数式输入
c)指数为0000某时间段
d)指数为0010某时间段
e)指数为1001某时间段
六、结果分析
1)从功能上来看,该电路实现了16位浮点数编码器。
2)当使用自然编码计数式输入作为激励时,在某些输入跳变过程中,输出会发生冒险。使用格雷码计数式输入时,由于每次跳变只有一位发生变化,可以有效地避免冒险。
报告评分:
指导教师签字: