用VHDL 语言在FPGA 上实现浮点运算.pdf

用VHDL 语言在FPGA 上实现浮点运算.pdf

ID:52931285

大小:214.63 KB

页数:6页

时间:2020-04-02

用VHDL 语言在FPGA 上实现浮点运算.pdf_第1页
用VHDL 语言在FPGA 上实现浮点运算.pdf_第2页
用VHDL 语言在FPGA 上实现浮点运算.pdf_第3页
用VHDL 语言在FPGA 上实现浮点运算.pdf_第4页
用VHDL 语言在FPGA 上实现浮点运算.pdf_第5页
资源描述:

《用VHDL 语言在FPGA 上实现浮点运算.pdf》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第23卷第5期暨南大学学报(自然科学版)Vol.23No.52002年10月   JournalofJinanUniversity(NaturalScience)Oct.2002用VHDL语言在CPLD/FPGA上实现浮点运算沈明发, 易清明, 黄伟英, 周伟贤(暨南大学电子工程系,广东广州510632)[摘 要]介绍了用VHDL语言在硬件芯片上实现浮点加/减法、浮点乘法运算的方法,并以Altera公司的FLEX10K系列产品为硬件平台,以MaxplusII为软件工具,实现了6点实序列浮点加/减法运算和浮点乘法运算.[关键词]超高速集成电路硬件描述语言VH

2、DL; 浮点运算; 复杂可编程逻辑器件CPLD/FPGA现场可编程门阵列[中图分类号]TN911.72[文献标识码]A[文章编号]1000-9965(2002)05-0019-06  随着CPLD和FPGA的出现以及EDA技术的成熟,采用CPLD/FPGA实现数字信号处理的方法已经显示出巨大的潜力.由于CPLD/FPGA器件具备在线可编程能力,克服了专用处理器灵活性方面的不足,同时兼备了高速和低成本的优点,使CPLD/FPGA在数字信号处理领域得[1,2]到广泛应用.近年来,高密度可编程器件CPLD/FPGA的集成度、速度不断提高,设计手段更加完善.Xil

3、inx公司的XC4000系列和Altera公司的FLEX10K系列都提供了5万门以上,超过100MHz工作频率以及多达500个管脚的FPGA产品,可以按照用户的要求设计出有多附加功[3]能的专用DSP代替品.浮点数的运算是数字信号处理的最基本的运算,浮点数具备动态范围大的特点,但是由于浮点运算器件的电路比较复杂,所以大多数的EDA软件目前尚不支持浮点运算,浮点运算器件只能自行设计,在设计过程还要考虑运算精度、运算速度、资源占用、设计复杂度的折衷.1 浮点数格式简介SE浮点数据通常表示为:N=(-1)×M×R.其中M是浮点数的尾数,R是基数,E是阶[4]码,

4、S是数据的符号位.浮点数通常有8、16、32及64位等,位数越长表示的数据的范围越大,精度也越高,但占用的系统资源也越大.为了减少资源占用量,本文采用如下的8位浮点数格式:□□□□□□□□d7d6d5d4d3d2d1d0阶码E占3位:d0~d2;尾数M占4位:d3~d6;符号位S占1位:d7.用此格式表示十进制数的示例:[收稿日期]2002-03-14[作者简介]沈明发(1955-),男,讲师,研究方向:电子技术的实验教学与研究.©1995-2004TsinghuaTongfangOpticalDiscCo.,Ltd.Allrightsreserved.2

5、0暨南大学学报(自然科学版)2002年 十进制数8位浮点数二进制数000000000或100000001.501100001-3.0111000102 浮点加/减法器的设计和测试浮点数的加法和减法需要经过对阶、尾数运算、规格化、舍入操作和判断结果正确性5个步骤.具体实现时把规格化、舍入操作和判断结果正确性做在同一部分,整个浮点加减法器简化为:对阶、尾数运算、规格化3部分.211 对阶  对阶操作,就是使两个数据的阶码相等,这时才能进行尾数的加减运算.在对阶操作时,总是使小阶向大阶对齐.实现的方法是,将原来阶码小的数的尾数部分右移,并相应地增加其阶码.传统的

6、做法是将原来阶码小的数的尾数部分右移1位,其阶码加1,直至阶码相等.这样比较简单,但是会使一次浮点加减法运算的时间不确定,不利于流水线的流畅运作.现采用可变步长移位器的方法,如图1所示.图1 对阶框图  在进行对阶操作时,首先比较Ea、Eb的大小,产生换路指示位:若Ea>Eb则换路有效,否则换路无效;同时输出大阶E:若Ea>Eb,则E≤Ea,否则E≤Eb;阶差:ΔE=

7、Ea-Eb

8、,用于控制可变步长移位器的移位步长.对于原码表示的尾数,移位时尾数高位补零.可变步长移位器是对阶器的核心部件,用VHDL描述如下:ENTITYMOVEISPORT(INPUT:I

9、NSTD-LOGIC-VECTOR(3DOWNTO0);COUNT:ININTEGERRANGE0TO3;OUTP:OUTSTD-LOGIC-VECTOR(3DOWNTO0));ENDMOVE;ARCHITECTUREMUX-ARCOFMOVEISBEGINOUTPUT:PROCESS(INPUT,COUNT)BEGINCASECOUNTISWHEN0]OUTP(3DOWNTO0)aINPUT(3DOWNTO0);WHEN1]OUTP(3DOWNTO0)a“0”&INPUT(3DOWNTO1);WHEN2]OUTP(3DOWNTO0)a“00”&INPUT

10、(3DOWNTO2);WHEN3]OUTP(3DOWNTO0)a“

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。