关于通过FPGA中VHDL语言实现ALU的功能设计详解.docx

上传人:lao****ou 文档编号:876437 上传时间:2024-07-09 格式:DOCX 页数:3 大小:103.54KB
下载 相关 举报
关于通过FPGA中VHDL语言实现ALU的功能设计详解.docx_第1页
第1页 / 共3页
关于通过FPGA中VHDL语言实现ALU的功能设计详解.docx_第2页
第2页 / 共3页
关于通过FPGA中VHDL语言实现ALU的功能设计详解.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《关于通过FPGA中VHDL语言实现ALU的功能设计详解.docx》由会员分享,可在线阅读,更多相关《关于通过FPGA中VHDL语言实现ALU的功能设计详解.docx(3页珍藏版)》请在第一文库网上搜索。

1、关于通过FPGA中VHD1语言实现A1U的功能设计详解目前许多FPGA的逻辑资源(1E)都已超过1万门,使得片上可编程系统SoPC己经成为可能。算术逻辑单元A1U应用广泛,是片上可编程系统不可或缺的一部分。利用VHD1语言在FPGA皿上设计A1U的研究较少,文中选用FPGA来设计32位算术逻辑单元A1U,通过VHD1语言实现A1U的功能。1电路总体设计思想算术逻辑单元A1U采用模块化设计,可以完成32位有符号数和无符号数的加减乘除,还可以实现9种逻辑运算、6种移位操作以及高低字节内容互换等操作。总体设计图,如图1所示。当y。1WU=I时实现有符号数加减乘除运算,否则为无符号数运算。进行有符号数

2、加底运算时C为符号位,无符号数加减运算时C表示进位或借位。加减法运算和逻辑运算结果存于y1。乘运算时,y1放高32位,y2放低32位。除法运算时y1放商,y2放余数。a,b表示两路32位输入数据。2主要模块功能分析算术逻辑单元A1U包含5个模块:控制模块、逻辑模块、加减法模块、乘法模块和除法模块。控制模块比较简单,即1个2线4线译码器,完成其他模块的控制与选择。当Ctr=OO时完成逻辑运算,Ctr=O1时完成加减法运算,Ctr=Io时完成乘法运算,Ctr=I1时完成除法运算。2.1逻辑运算模块本模块实现与、或、非、与非、或非、异或、同或、逻辑左移、逻辑右移、算术左移、算术右移、逻辑循环左移、逻

3、辑循环右移以及高低半字(16位)分别取反和高低字内容互换等操作。用1个CaSC语句即可实现上述全部功能。2.2加减法模块加减法模块可根据需要完成32位有符号数和无符号数的加减运算,在程序开始时先判断所要进行的运算有无符号数,对于有符号数,用符号位将两组数扩展为33位二进制数,否则用O扩展为33位二进制数,其中减法运算采用补码实现,所以整个程序只有加法运算。程序只占用68个逻辑资源(1E),非常节省资源,而且速度很快,是一种优化设计。仿真图如图2所示。2.3乘法模块比较好的带符号数的乘法是布斯(BOoth)1o但是本模块既要实现有符号数运算,也要实现无符号数运算,用BOoth算法反而复杂。综合考

4、虑逻辑资源的使用和速度两个方面的因素,本设计采用下面的算法:不管是有符号数还是无符号数乘法,都转换成无符号数相乘,最后根据需要对计算结果进行转换。如果是无符号数相乘,乘积不作变化。如果是有符号数相乘,只有两位乘数符号不一样时才对乘的结果做处理,否则结果不变。乘积处理的方法是将乘积取反加1。假设乘数是32位数a,b,乘法主要通过移位和加法组成,设a=a31,a30a0,如果蚕则b向左移i位且右边添i个0,否则b不作变化,a中有多少个1就要进行多少次移位操作,最后将所有移位值相加既得aXb的值。乘法的仿真图如图3所示。仿真结果表示设计完全正确。32位有符号和无符号数乘法模块占用逻辑资源不到8001

5、E,且由于各种移位并发进行,故速度较快。ye匚国332位柬法仿其网2.4除法模块目前运用VHD1进行乘法运算的研究较多,而除法只有少数学者研究。文中综合考虑速度和资源的占用,采取下列算法实现:对于32位无符号被除数a,先将a转换成高32位是O低32位是a的数temp_a0在每个周期开始时temp_a向左移动一位,最后一位补0,然后判断temp_a的高32位是否,除数b,如是则temp_a的高32位减去b并且低32位加1,得到的新值仍赋给temp-ao如不是直接撬入下一步。上面的移位、比较、减法要进行32次,经过32个周期后,运算结束,所得到的temp_a的高32位为余数,低32位为商。对于32位有符号数的除法,采用的算法是将被除数与除数均变成无符号的32位数,紧接着的计算过程与无符号数除法一样,只是需要判断商和余数是正数还是负数。令,如果d=0则被除数与除数同为正数或者负数,最终商为正数。如果d=1说明被除数与除数符号相反,最终商为负数。被除数是负数时余数为负,否则为正。最后根据d的值对商作处理;如果d二0商不需任何处理,如果d=1则将商取反加1才是正确的结果。余数的调整则根据被除数的符号位进行。图432位除法仿A留3结束语文中在FPGA芯片上,利用VHD1语言设计了功能强大的32位A1U。由于A1U是码的重要组成部分,各类系统中都不可避免地需要A1U,因此本设计的应用泛围较广。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 应用文档 > 工作总结

copyright@ 2008-2022 001doc.com网站版权所有   

经营许可证编号:宁ICP备2022001085号

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有,必要时第一文库网拥有上传用户文档的转载和下载权。第一文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知第一文库网,我们立即给予删除!



客服