IEEE754标准用VHDL语言实现浮点数运算_第1页
IEEE754标准用VHDL语言实现浮点数运算_第2页
IEEE754标准用VHDL语言实现浮点数运算_第3页
IEEE754标准用VHDL语言实现浮点数运算_第4页
IEEE754标准用VHDL语言实现浮点数运算_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、用vhdl语言实现浮点数运算随着cpii)和fpga的出现以及eda技术的成熟,采用cpld / fpga实现数字信号 处理的方法已经显示出巨大的潜力。由于cpld / fpga器件具备在线可编程能力, 克服了专用处理器灵活性方面的不足,同时兼备了高速和低成本的优点,使cpld / fpga在数字信号处理领域得到广泛应用。近年来,高密度可编程器件cpld / fpga的集成度、速度不断提高,设计手段更加完善。1、浮点数加/减法器的设计整个浮点数加减法器简化为:对阶、尾数运算、规格化3部分。(1) 对阶使两个数据的阶码相等,这时才能进行尾数的加减运算.在对阶操作时,总 是使小阶向大阶对齐.实现的

2、方法是,将原來阶码小的数的尾数部分右移,并相 应地壇加其阶码.传统的做法是将原來阶码小的数的尾数部分右移1位,其加1, 直至阶码相等如图1所示禺1 对晞框禺在进行对 阶操作吋,首先比较ea、eb的大小,产生换路指示位:若ea>eb 则换路有效,否则换路无效;同时输出大阶e:若ea>eb,贝ijewea,否则eweb; 阶差:ae=|ea-eb|,用于控制可变步长移位器的移位步长.对于原码表示的尾 数,移位时尾数高位补零可变步长移位器是对阶器的核心部件,用viidl描述如 下:enttty move is port(input: in stdlogic vector(3 downtd

3、 0);count: in integer range 0 to 3;outp: out stdlogic vector (3 downto 0);end move;architecture muxarc of move isbeginoutput: process(input, count)begincase count iswhen 00utp(3 downt 0)"input(3 downto 0);when r outp(3 downto 0) ' “0” &input(3 downto 1);when 2 outp(3 downto 0) “00” &

4、;input(3 downto 2);when 30utp(3 do 0) “000” &tnput(3);end case;end process;end muxarc;(2) 尾数运算完成尾数即完成尾数的加减运算。原码表示的二进制数格式与vhdl语言中的 unsigned数据格式是一样的,因此尾数加减法可以利用vhdl语言提供的unsigned 数的加减完成原码帯符号数减法的规则是:若af的绝对值大于或等于bf的绝 对值,贝i差的绝对值为afbf,差的符号与a同;否则,差的绝对值为bf af,弟的符号与a相反下面列出程序清单。加法 a_f+b_f:entty fadd is por

5、t(a_f, b_f: in unsigned (3 downto 0);s: in stdlogic;fsum: out stdlogicvector (5 downto 0);end fadd ;architecture arc of fadd isbeginfsum (4 downto 0厂 af+bf;fsum(5)s;end arc;其中,fsum多留一位为尾数和的符号位,一位保存加法的进位.af、bf表 示浮点数a、b的尾数,s表示a的符号位,若两数的符号相反,它们相加实质是相 减,相减实质是相加.减法 afb一f:enttty fsub is port(s: in stdlogi

6、c;a_f, b_f: in unsigned (3 downto 0);subout: out unsigne d(4 downto 0);end fsub;architecture arc of fsub issignal a, b: unsigned(3 downto 0);beginact: process(s, a_f, b_f)beginif a_f < b_f thena"b_f; b"a_f;eise aaf; bbf;end if;subout (3 downto 0) "ab;subout(4)"not s;subout (4厂

7、 s;end process;end arc;(3) 规格化对于基数为2的浮点数,规格化数是指尾数绝对值大于或等于0. 5的纯小数, 当用原码表示时,即是尾数的最高为'1'在减法运算时,可能会使结果小于0. 5, 要通过尾数左移以实现规格化(称向左规格化);在加法运算时,可能结杲会大于 1,此时要通过尾数右移以实现规格化(称向右规格化).传统的操作规则是:尾 数移动一位,阶码相应3n/减1,直至数据规格化.和对阶器一样,木文规格化 器同样用可变步长移位器实现,操作规格是:先求出移位步数,用可变步长移位 器对尾数移位,阶码相应加减移位步数.(4) 浮点数加/减法器综合m 2 浮点

8、力城注谿绪枸图2中,s3、sbo浮点数a、b的符号位:mb、mb。浮点数a、b的尾数;eq、rbo浮点数a、b的阶码;、mb':对阶后的浮点数a、b的尾数;2、浮点数乘法器的设计(1) 尾数相乘vhdl支持乘法运算,一个简单的4x4输出8位的乘法器描述如下:entity mult is p0rt(a. b: in unsigned(3 downto 0);mul: out unsigned(7 downto 0);end mult;architecture arc of mult isbeginmui 广 a *b;end arc;(2) 阶码相加阶码是用补码表示的,格式与vhdl屮的signed类型一样,用vhdl的signed类型加 法完成阶码相加比较简单.(3) 规格化尾数相乘,其积的绝对值可能会小于0. 5,所以要进行向左规格化.规则是:若 高位为0,表明绝对值小于0. 5,尾数向左移1位,阶码加1同时为减少资 源占用,舍去尾数低位,使得输出结果也是8位的浮点数.(4) 浮点乘法器的综合用vhdl的component (部件)结构或电路顶层图描述把各个部件组合完成浮点乘法 器的设计,然后用maxplusii编译、下载到硬件芯片中.浮点乘法器结构如图3所示.44尼数相乘阶码相畑1 f*t1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论