基于FPGA的简易的ALU设计_图文

更新时间:2023-06-11 20:51:41 阅读: 评论:0

本科毕业设计开题报告
题目:基于FPGA的简易的ALU设计
英语口语班成都院(系):
班级:
姓名:
学号:
指导教师:
教师职称:讲师
xxxxx学院本科毕业设计开题报告
题目基于FPGA的简易ALU设计来源工程实际
1、研究目的和意义
工业会计做账流程从20 世纪中叶的无线电时代,到21 世纪以计算机技术为中心的智能化加信息化的现代电子时代,电子系统发生了巨大的变化。现代电子系统愈发庞大和复杂,很多应用要求能够在现场进行实时的高速运算,并对系统进行有效地控制。作为这一需求的解决方案,嵌入式计算机应用系统已成为现代电子系统的核心技术。
早期的嵌入式系统是将通用计算机经改装后嵌入到被测控对象去,实现数据采集、分析处理、状态显示、输出控制等功能。随着大规模集成电路技术的发展,中央处理器CPU、随机存取存储器RAM、只读存储器ROM、输入/输出端口I/O等主要的计算机功能部件可以集成在一块集成电路芯片上,这颗芯片就被称为单片机。与改装普通计算机相比,单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用广泛、通用性强等突出优点,因此迅速成为最普及的嵌入式应用系统方案。
通常,我们要实现一些功能可以用单片机来完成,但是,用可编程逻辑FPGA同样可以实现。在计算机中,算术逻辑单元(ALU)是专门执行算术和逻辑运算的数字电路。ALU是计算机中央处理器的最重要组成部分,甚至连最小的微处理器也包含ALU作计数功能。此次我要完成的设计是基于FPGA的四位ALU算数逻辑单元设计。通过对ALU功能的拓展,来实现更快更好的运算功能,相信这一功能的实现将使运算功能更加简单、快捷、准确,从而提高我们今后的学习工作效率。
2、发展情况(文献综述)
算术逻辑单元(arithmetic logic unit,缩写ALU)是进行整数运算的结构。现阶段是用电路来实现,应用在电脑芯片中。
在计算机中,算术逻辑单元(ALU)是专门执行算术和逻辑运算的数字电路。ALU是计算机中央处理器的最重要组成部分,甚至连最小的微处理器也包含ALU作计数功能。在现代CPU和GPU处理器中已含有功能强大和复杂的ALU;一个单一元件也可能含有ALU。
1945年数学家冯诺伊曼在一篇介绍被称为EDV AC的一种新型电脑的基础构成的报告中提出ALU的概念。
早期发展:1946年,冯诺伊曼与同事合作为普林斯顿高等学习学院(IAS)设计计算机。随后IAS计算机成为后来计算机的原形。在论文中,冯诺伊曼提出他相信计算机中所需的部件,其中包括ALU。冯诺伊曼写到,ALU是计算机的必备组成部分,因为已确定计算机一定要完成基本的数学运算,包括加减乘除。于是他相信计算机应该含有专门完成此类运算的部件。
①数字系统
ALU必须使用与数字电路其他部分使用同样的格式进行数字处理。对现代处理器而言,几乎全都使用二进制补码表示方式。早期的计算机曾使用过很多种数字系统,包括反码、符号数值码,甚至是十进
制码,每一位用十个管子。以上这每一种数字系统所对应的ALU都有不同的设计,而这也影响了当前对二进制补码的优先选择,因为二进制补码能简化ALU加法和减法的运算。
杭州英语翻译
②可行性分析
绝大部分计算机指令都是由ALU执行的。ALU从寄存器中取出数据,数据经过处理将运算结果存入ALU输出寄存器中。其他部件负责在寄存器与内存间传送数据,控制单元控制着ALU,通过控制电路来告诉ALU该执行什么操作。
③简单运算少儿英语读物
大部分ALU都可以完成以下运算∶整数算术运算(加、减,有时还包括乘和除,不过成本
较高)
位逻辑运算(与、或、非、异或)
移位运算(将一个字向左或向右移位或浮动特定位,而无符号延伸),移位可被认为是乘以2或除以2。
④复杂运算
工程师可设计能完成任何运算的ALU,不论运算有多复杂。问题在于运算越复杂,ALU成本越高,在处理器中占用的空间越大,消耗的电能越多。于是,工程师们经常计算一个折中的方案,提供给处理器(或其他电路)一个能使其运算高速的ALU,但同时又避免ALU设计的太复杂而价格昂贵。设想你需要计算一个数的平方根,数字工程师将评估以下的选项来完成此操作∶设计一个极度复杂的ALU,它能够一步完成对任意数字的平方根运算。这被称为单时钟脉冲计算。
设计一个非常复杂的ALU,它能够分几步完成一个数字的平方根运算。不过,这里有个诀窍,中间结果经过一连串电路,就像是工厂里的生产线。这甚至使得ALU能够在完成前一次运算前就接受新的数字。这使得ALU能够以与单时钟脉冲同样的速度产生数字,虽然从ALU输出的结果有一个初始延迟。这被称为计算流水线。
设计一个复杂的ALU,它能够计算分几步计算一个数字的平方根。这被称为互动计算,经常依赖于带有嵌入式微码的复杂控制单元。
在处理器中设计一个简单的ALU,去掉一个昂贵的专门用于此运算的处理器,再选择以上三个选项之一。这被称为协处理器。
告诉编成人员没有协处理器和仿真设备,于是他们必须自己写出算法来用软件计算平方根。这是由软件图书馆完成的。
对协处理器进行仿真,也就是说,只要一个程序想要进行平方根的计算,就让处理器检查当前有没有协处理器。如果有的话就使用其进行计算,如果没有的话,中断程序进程并调用操作系统通过软件算法来完成平方根的计算。这被称为软件仿真。
以上给出的选项按最快和最贵到最慢和最经济排列。于是,虽然甚至是最简单的计算机也能计算最复杂的公式,但是最简单的计算机经常需要耗费大量时间,通过若干步才能完成。强大的处理器,比如英特尔酷睿和AMD64系列对一些简单的运算采用1号选项,对最常见的复杂运算采用2号选项,对极为复杂的运算采用3号选项。这是具有在处理器中构造非常复杂的ALU的能力为前提的。
⑤输入和输出dropin
ALU的输入是要进行操作的数据(称为操作数)以及来自控制单元的指令代码,用来指示进行哪种运算。它的输出即为运算结果。在许多设计中ALU也接收或发出输入或输出条件代码到(或来自)状态寄存器。这些代码用来指示一些情况,比如进位或借位、溢出、除数为零等。
dinner什么意思
⑥ALU与FPU
浮点单元也对两个数值进行算术运算,但是这种运算已浮点数表示,比在ALU中一般使用的补码表示方式复杂的多。为了完成此类运算,FPU里嵌入了多个复杂电路,包括一些内部ALU。工程师一般认
为ALU是处理整数型(比如补码和BCD码)算术运算的的电路,而对更为复杂的格式(比如浮点型、复数型)进行计算的电路则拥有一个更加匹配的称谓。
3、研究/设计的目标:
设计内容与要求:
一、功能实现
设计4位ALU,可实现8种算术逻辑运算。
a.进行两个四位二进制数的运算。
b.算术运算:A+B,A-B,A+1,A-1,A*B
c.逻辑运算:A and B,A or B,A nor B
4位输入A3—A0、B3---B0用开关设置输入。
8种算术逻辑运算通过3位功能选择开关选择某一种功能。
一款速度性能较好的ALU
二、将生成的模块封装IP,进行sopc验证
验证的环境与方法:对电路进行模拟仿真,验证其功能以及模拟性能时采用的是NiosII软件,对电路进行模拟仿真。
ALU功能验证:逻辑运算功能验证:A and B,A or B,A nor B
加法器功能验证:A+B,A-B,A+1,A-1,A*B
三、ALU速度性能分析
ALU的速度分析由于ALU最重要的部件就是核心加法器,且关键延时也来自加法器的关键路径延时,则分析加法器的延时为重点,任何电路的最大延时主要取决于其关键路径延时,因此要确定本设计的加法器的关键路径。使用NiosII,对加法器的多条路径进行瞬态分析。
四、硬件验证
通过Quartus II进行程序编写,经过DE2开发板进行下载验证设计结果。
4、设计方案:
设计分为输入控制模块、输出选择模块、加减运算模块及逻辑运算模块等部分。本实验中ALU运算逻辑单元由4个一位的ALU运算逻辑单元所组成。每一位的ALU电路由全加器和函数发生器所组成。事实上,ALU的设计是在全加器的基础上,对全加器功能的扩展来实现符合要求的多种算术/逻辑运算的功能。为了实验多种功能的运算,An、Bn数据是不能直接与全加器相连接的,它们受到功能变量F3-F1的制约,因此,可由An、Bn数据和功能变量F3-F1组合成新的函数Xn、Yn,然后,再将Xn 、Yn和下一位进位Cn-1通过全加器进行全加运算以实现所需的运算功能。ALU中C0为最低位的进位输入端,C4为最高位的进位输入端,Sn为运算结果。
一位算/逻辑运算单元的逻辑表达式(n=1、2、3、4)如下:
Sn = Xn⊕Yn⊕Cn-1
Cn = XnYn + (Xn+Yn)Cn-1
令Pn = Xn+Yn
Gn = XnYn
则Cn = Gn+PnCn-1
实验要求进位位采用超前(先行、并行)进位实现。超前进位电路同时形成各位进位,因此实现快速进位,达到快速加法的目的。这种加法器称为超前进位加法器。
各超前(先行)进位位的形成根据表达式Cn = XnYn + (Xn+Yn)Cn-1来确定,其中n = 1、2、3、4。后产生的进位与前进位有关,最终每个进位也只和Xn、Yn、C0有关,而Xn、Yn又是An、Bn的函数。如,
C1 = G1+P1C0 = X1Y1 + (X1+Y1)C0
C2 = G2+P2C1 = G2+P2G1+P2P1C0 = X2Y2 + (X2+Y2) X1Y1 + (X2+Y2)(X1+Y1)C0
C3、C4依此类推。
一些控制信号如F3~F1为功能控制信号,控制着4位ALU运算逻辑单元的八种功能操作;A4~A1和B4~B1为ALU的两组数据输入端;S4~S1位4位ALU的4个输入端,S表示为S = S4S3S2S1;
no offen
C4为4位ALU的最高位进位输出端,依次还有C3、C2、C1。考虑级联关系时,如有必要可增加级联控制端G。依照ALU的原理与逻辑结构原理图,用超前进位的方法设计能实现下面八种功能操作的4位ALU
要求:输入信号:A4-A1、B4-B1、F3-F1、低位进位C0、(级联控制端G);
输出信号:S4-S1、进位C4。
学编程的好处4位ALU 的八种功能操作表
F3  F2  F1
S 功能描述 0  0  0
B’ 求反 0  0  1
B’ + 1* 求补 0  1  0
B 传送B 0  1  1
B + 1* 加1传送 1  0  0
A  + B’ 加反 1  0  1
A  + B’ + 1* 减 1  1  0 A  +
B 加
1  1  1
A  ⊕
bec商务英语教材
B 异或      注:“1*”为加1操作
依照ALU 的原理与逻辑结构原理图,用超前进位的方法设计能实现以上八种功能操作的4位ALU ,为了能实现4位ALU 到8位ALU 、16位ALU 等的扩展需要,设计时必须考虑级联关系,并实现4位ALU 到8位ALU 的扩展电路。
程序流程图如图1:使用NiosII ,对加法器的多条路径进行瞬态分析。图中共标出了3条路径,每条路径代表个方块的最长延时路径。路径1表示Cin 改变而引起的S3和C3改变所经过的路径;路径2表示第0位输入变化后,引起最高位和位S3以及进位C3改变过经过的路径;路径3表示第2位输入变化后,引起最高位和位S3以及进位C3改变过经过的路径。如图2
函数发生器全加器Bn An Xn Yn Sn      BLOCK2
BLOCL1Cin
[1:0]
[3:2]1
2
junkmail
3C1C3S3
图1                      图2 通过改变不同的输入,对着三条路径进行模拟仿真,即可观察到不同路径的延时情况。
5、方案的可行性分析:
FPGA  兼有串、并行工作方式,是高密度现场可编程逻辑芯片,能够将大量的逻辑功能集成于一个单片集成电路中,其集成度已发展到现在的几百万门。 FPGA 编程方式便捷、先进、高速、高可靠性、开发工具和设计语言标准化。开发周期短,功能强大,应用广阔。
本设计采用V erilog HDL 语言,在大规模数字系统设计中,V erilog HDL 语言将逐步取代如逻辑状态表和逻辑电路等级别较低的繁琐的硬件描述方法,而成为主要的硬件描述语言。V erilog HDL 语言的设计功能强、方法灵活、支持广泛、系统硬件描述性强。可以进行与工艺无关编程。V erilog HDL 语言标准、规范,易于共享和复用而且方便移植。
总之,这种设计方法本着简洁、实用、高效等思想进行,使运算方式、运算速度更加方便快捷,使我们的工作更加简单、快捷、准确。
6、设计产品的主要用途和应用领域:
目前许多FPGA 的逻辑资源(LE)都已超过1万门,使得片上可编程系统SOPC 已经成为可能。算术逻辑单元ALU 应用广泛,是片上可编程系统不可或缺的一部分。利用VHDL 语言在FPGA 芯片上设计ALU 的研究较少,它的设计拓宽了这个领域。它能够应用的领域非常多,集成电路领域等等,最主要的就是我们日常使用的计算机,相信以后会越来越清晰的感受到它运算的速度,使我们的工作更加简单、快捷、准确。

本文发布于:2023-06-11 20:51:41,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/78/932226.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

上一篇:CAD命令汇总
标签:运算   设计   进行   功能
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图