没有合适的资源?快使用搜索试试~ 我知道了~
首页一种基于FPGA的32位ALU设计
一种基于FPGA的32位ALU设计
303 浏览量
更新于2023-05-26
评论
收藏 146KB PDF 举报
随着计算机技术和大规模集成电路技术的发展,在涉及计算机应用、通信、自动化等领域的电子系统设计工作中,现场可编程技术的运用正以惊人的速度上升。特别是随着VHDL等硬件描述语言综合工具功能和性能的提高,计算机中许多重要的元件,包括CPU都可基于FP(认(现场可编程门阵列)用硬件描述语言来设计和表达,如8051单片机、硬核嵌入式系统ARM、软核嵌入式系统Nios、高速缓存设计、数据采集板等,乃至整个计算机系统都可用FPGA来实现。CPU核是SoC和SOPC技术的核心,开发出具有自主知识产权的CPU核对我国在电子技术方面跟上世界先进的步伐,提高信息产业在世界上的核心竞争力有着重大意义。传统的CPU设计
资源详情
资源评论
资源推荐

一种基于一种基于FPGA的的32位位ALU设计设计
随着计算机技术和大规模集成电路技术的发展,在涉及计算机应用、通信、自动化等领域的电子系统设计工作
中,现场可编程技术的运用正以惊人的速度上升。特别是随着VHDL等硬件描述语言综合工具功能和性能的提
高,计算机中许多重要的元件,包括CPU都可基于FP(认(现场可编程门阵列)用硬件描述语言来设计和表达,如
8051单片机、硬核嵌入式系统ARM、软核嵌入式系统Nios、高速缓存设计、数据采集板等,乃至整个计算机系
统都可用FPGA来实现。CPU核是SoC和SOPC技术的核心,开发出具有自主知识产权的CPU核对我国在电子技
术方面跟上世界先进的步伐,提高信息产业在世界上的核心竞争力有着重大意义。传统的CPU设计
随着计算机技术和大规模集成电路技术的发展,在涉及计算机应用、通信、自动化等领域的电子系统设计工作中,现场可
编程技术的运用正以惊人的速度上升。特别是随着VHDL等硬件描述语言综合工具功能和性能的提高,计算机中许多重要的元
件,包括CPU都可基于FP(认(现场可编程门阵列)用硬件描述语言来设计和表达,如8051单片机、硬核嵌入式系统ARM、软核
嵌入式系统Nios、高速缓存设计、数据采集板等,乃至整个计算机系统都可用FPGA来实现。CPU核是SoC和SOPC技术的核
心,开发出具有自主知识产权的CPU核对我国在电子技术方面跟上世界先进的步伐,提高信息产业在世界上的核心竞争力有
着重大意义。传统的CPU设计使用的芯片种类繁多,实验中需要花许多时间进行大量的连线,系统的可靠性低,由于芯片或
连线出现的各种故障排查困难。利用EDA技术在一片芯片上形成CPU,不受硬件条件的控制,可根据实际要求定制合适的
CPU。
1 电路总体设计思想电路总体设计思想
算术逻辑单元ALU采用模块化设计,可以完成32位有符号数和无符号数的加减乘除,还可以实现9种逻辑运算、6种移位
操作以及高低字节内容互换等操作。
总体设计图,如图1所示。当you_wu=1时实现有符号数加减乘除运算,否则为无符号数运算。进行有符号数加减运算时c
为符号位,无符号数加减运算时c表示进位或借位。加减法运算和逻辑运算结果存于y1。乘运算时,y1放高32位,y2放低32
位。除法运算时y1放商,y2放余数。a,b表示两路32位输入数据。
2 主要模块功能分析主要模块功能分析
算术逻辑单元ALU包含5个模块:控制模块、逻辑模块、加减法模块、乘法模块和除法模块。控制模块比较简单,即1个2
线~4线译码器,完成其他模块的控制与选择。当ctr=00时完成逻辑运算,ctr=01时完成加减法运算,ctr=10时完成乘法运
算,ctr=11时完成除法运算。
2..1 逻辑运算模块逻辑运算模块
本模块实现与、或、非、与非、或非、异或、同或、逻辑左移、逻辑右移、算术左移、算术右移、逻辑循环左移、逻辑循
环右移以及高低半字(16位)分别取反和高低字内容互换等操作。用1个case语句即可实现上述全部功能。
2..2 加减法模块加减法模块
加减法模块可根据需要完成32位有符号数和无符号数的加减运算,在程序开始时先判断所要进行的运算有无符号数,对
于有符号数,用符号位将两组数扩展为33位二进制数,否则用0扩展为33位二进制数,其中减法运算采用补码实现,所以整个
程序只有加法运算。程序只占用68个逻辑资源(LE),非常节省资源,而且速度很快,是一种优化设计。仿真图如图2所示。
2..3 乘法模块乘法模块
比较好的带符号数的乘法是布斯(Booth)算法。但是本模块既要实现有符号数运算,也要实现无符号数运算,用Booth算法
反而复杂。综合考虑逻辑资源的使用和速度两个方面的因素,本设计采用下面的算法:不管是有符号数还是无符号数乘法,都
转换成无符号数相乘,最后根据需要对计算结果进行转换。如果是无符号数相乘,乘积不作变化。如果是有符号数相乘,只有
两位乘数符号不一样时才对乘的结果做处理,否则结果不变。乘积处理的方法是将乘积取反加1。假设乘数是32位数a,b,乘


















weixin_38547397
- 粉丝: 1
- 资源: 907
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0