APP下载

基于FPGA的整数开方运算

2012-07-25严淑芹郑先成

微处理机 2012年3期
关键词:开方尾数时序

严淑芹,郑先成

(西北工业大学自动化学院,西安710129)

1 需求分析

使用QuartusII这个开发工具进行FPGA设计时,若要在FPGA上实现某个数的开方运算,QuartusII提供了开方模块altfp_sqrt,但是这个模块有严格的使用要求,要求用户输入的被开方数是IEEE754标准浮点数,altfp_sqrt模块的输出结果也是IEEE754标准浮点数。

例如对整数9进行开方运算,用户必须先将整数9转化为IEEE754标准浮点数(41100000)H,将该十六进制数41100000作为模块altfp_sqrt的输入数据,得到模块altfp_sqrt的输出数据(40400000)H,用户必须自己将此IEEE754标准浮点数(40400000)H转化为3,才能最终得知对9进行开方的结果是3。这对于用户来说就有诸多不便。

本文就是在解决用户不便的目标指引下,用VHDL语言将被开方数转化成IEEE754标准浮点数,作为模块altfp_sqrt的输入,再将altfp_sqrt模块的输出IEEE754标准浮点数转化成整数[2]。

对于用户来说,新的开方模块能进行整数的开方运算,如给新的开方模块输入数据9,直接就能得出所需要的结果数据3。这大大方便了用户。

2 IEEE754浮点数标准

浮点数的表示遵循IEEE754标准[1],它由3部分组成:符号位、尾数以及指数。IEEE754标准规定了单/双精度、扩展单/双精度4种浮点数格式。本设计支持单精度格式。

IEEE754单精度浮点数格式占用32位,包含3个部分:1位符号位、8位带偏移量的指数和23位尾数,如图1所示。

图1 单精度浮点数的表示

其中偏移值(bias)为127,尾数有1位隐藏位。即IEEE754标准定义的单精度浮点数A=(-1)s×1.f×2e-127,s表示有效数的符号,f表示有效数的小数部分,e是加偏移值的指数,1是一个隐藏位。

3 各模块设计

3.1 运算前标准化模块

整数转换为IEEE754标准浮点数的直接方法包括以下步骤:

(2)前零检测:A对应的32位二进制数第一个1前的零的个数i。把小数点前后两部分连起来再去掉头前的1,就是尾数,对于整数而言,小数点后全是0,0的个数要保证尾数是23位,MMM MMMM MMMM MMMM MMMM MMMM

(3)阶码生成。对于单精度数,阶码为:exp=127+(31-i)=158-i。exp对应的8位二进制为EEE EEEE E。

(4)被开方数为正数,符号位s为0。

(5)a对应的IEEE754标准浮点数为SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM

时序仿真波形如图2所示。

图2 整数转化为IEEE754标准浮点数的时序仿真波形

3.2 浮点数转化成整数模块

IEEE754标准浮点数转化为整数的流程图如图3 所示[4]:

时序仿真波形图如图4所示。

3.3 三个模块级联

将运算前标准化模块、altfp_sqrt、浮点数转化成整数模块级联,就得到顶层模块。顶层模块进行整数开方运算的时序仿真波形图如图5所示。

4 在发电机控制中的应用

在本研究课题中,需要对发电机进行控制研究。将从发电机采样过来的a相电压数据Va和b相电压数据Vb进行计算,得到有效值,将此有效值输入到PID控制算法模块,得到PWM波去驱动MOSFET。发电机控制系统框图如图6所示。

图3 IEEE754标准浮点数转化为整数

图4 IEEE754标准浮点数转化为整数时序仿真波形图

图5 基于FPGA的整数开方运算时序仿真波形图

图6 发电机控制系统框图

可知,在FPGA内部应用整数开方模块比应用浮点开方模块altfp_sqrt要方便得多。

5 结束语

实验中,以Cyclone II系列的EP2C8Q208C8为硬件平台,已成功采用整数开方模块进行发电机三相电压有效值计算。

[1] Charles Farnum.Compiler Support for Floating-Point Computation[J].Software Practices and Experience,1988,7(18):9-21.

[2] 应丽娅,张 .基础浮点运算单元VHDL实现的新方法[J].杭州电子科技大学学报,2007,12(6):27.

[3] 何晶,韩月秋.一种新的整数转换为浮点数的方法[J].计算机工程,2003,11(19),29-38.

[4] 姜雪松,刘东升.硬件描述语言VHDL教程(基础篇·提高篇)[M].西安:西安交通大学出版社,2004.

猜你喜欢

开方尾数时序
“改写”与“省略”三不同
清明
数字监管 既能“看病”也能“开方”
连续自然数及乘积的尾数和奇偶性的分析
基于不同建设时序的地铁互联互通方案分析
2019年度下半年《启迪与智慧》上下半月刊、《幽默与笑话》上下半月刊、《拳击与格斗》上半月刊抽大奖中奖结果
学习开方『四注意』
基于FPGA 的时序信号光纤传输系统
基于模体演化的时序链路预测方法
为公立医院“虚胖”把脉开方