基于EDA的ALU设计.docx

上传人:b****8 文档编号:10693419 上传时间:2023-02-22 格式:DOCX 页数:13 大小:225.52KB
下载 相关 举报
基于EDA的ALU设计.docx_第1页
第1页 / 共13页
基于EDA的ALU设计.docx_第2页
第2页 / 共13页
基于EDA的ALU设计.docx_第3页
第3页 / 共13页
基于EDA的ALU设计.docx_第4页
第4页 / 共13页
基于EDA的ALU设计.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于EDA的ALU设计.docx

《基于EDA的ALU设计.docx》由会员分享,可在线阅读,更多相关《基于EDA的ALU设计.docx(13页珍藏版)》请在冰豆网上搜索。

基于EDA的ALU设计.docx

基于EDA的ALU设计

课程设计说明书

课程名称:

EDA课程技术设计

题目:

ALU设计

学院:

电气信息学院

专业:

测控技术与仪器

年级:

学生:

学号:

指导教师:

完成日期:

2010年6月20日

EDA技术课程设计

摘要:

本次设计采用的是EDA技术设计一个算术逻辑单元ALU。

本设计主要完成ALU整体设计,设计分为两个模块:

算术运算模块和逻辑运算模块。

算术运算模块包括带进位的八位数的加减和四位数的乘除法运算,逻辑运算模块包括左移与右移。

本设计使用VerilogHDL语言编写,并可以在FPGA上实现。

QuartusII来进行仿真和调试。

关键词:

EDA技术,ALU,VerilogHDL语言,FPGA

Abstract:

ThisdesignisadoptedtodesignaEDAarithmeticlogicunit(ALU).Thedesignofthemaindesign,thedesignoftheALUisdividedintotwomodules:

arithmeticandlogicaloperationsmodule.Withbinaryarithmeticmodulesincludingeightdigitdeductionsandfourdigits,themethodofcomputing,logicoperationmodulesincludingleftandright.ThisdesignUSESVerilogHDLlanguage,andcanberealizedonFPGA.SimulationandQuartusIItodebug

Keywords:

EDAtechnology,ALU,VerilogHDLlanguage,FPGA

1.EDA技术和设计题目简介

1.1EDA技术简介

EDA是电子设计自动化(ElectronDesignAutomation)的缩写,是在20世纪90年代初,从CAD(计算机辅助设计)、CAM(计算机辅助制造)、CAT(计算机辅助测试)和CAE(计算机辅助工程)的概念发展起来的。

EDA技术是在电子CAD技术基础上发展起来的计算机软件系统,是指以计算机为工作平台,融合了应用电子技术、计算机技术、信息处理及智能化技术的最新成果,进行电子产品的自动设计。

利用EDA工具,电子设计师可以从概念、算法、协议等开始设计电子系统,大量工作可以通过计算机完成,并可以将电子产品从电路设计、性能分析到设计出IC版图或PCB版图的整个过程的计算机上自动处理完成。

 现在对EDA的概念或范畴用得很宽。

包括在机械、电子、通信、航空航天、化工、矿产、生物、医学、军事等各个领域,都有EDA的应用。

目前EDA技术已在各大公司、企事业单位和科研教学部门广泛使用。

例如在飞机制造过程中,从设计、性能测试及特性分析直到飞行模拟,都可能涉及到EDA技术。

本文所指的EDA技术,主要针对电子电路设计、PCB设计和IC设计。

  EDA设计可分为系统级、电路级和物理实现级。

1.2设计题目简介

算术逻辑单元(ArithmeticLogicUnit,ALU)是中央处理器(CPU)的执行单元,是所有中央处理器的核心组成部分,由"AndGate"和"OrGate"构成的算术逻辑单元,主要功能是进行二进制的算术运算,如加减乘(不包括整数除法)。

基本上,在所有现代CPU体系结构中,二进制都以补数的形式来表示。

此算术逻辑单元能构完成带进位的八位数的加减运算和四位数的乘法和除法的运算。

本文介绍带进位的ALU设计,用VerilogHDL语言编写,并可以在FPGA上实现。

 

2.总体方案设计与实现工具

通过查阅大量相关技术资料,并结合自己的实际知识,我主要提出了使用FPGA的方案来实现系统功能。

下面我将首先对这这种方案的组成框图和实现原理分别进行说明,然后阐述我最终选择方案的原因。

2

2.1ALU原理分析

根据本实验的设计要求ALU具有以下功能:

(1)带进位的加、减、乘、除四则运算。

(2)数据传送、移位、判断和程序转移等功能。

由于ALU是中央处理器(CPU)的重要组成部分,所以对ALU的面积、功耗、指令执行时间和稳定性都有很强的要求,这样就对设计ALU器件就有特高的要求。

2.2用FPGA实现ALU的设计

在现代电子系统中,数字系统所占的比例越来越大。

现代电子系统发展的趋势是数字化和集成化,CPLD/FPGA作为可编程ASIC器件,在数字系统设计中发挥着重要的作用。

与传统的可编程器件相比,FPGA采用了类似门阵列的通用结构,规模可以做的较大,可实现的功能更强,设计的灵活性更大。

且FPGA的容量越来越大,它所提供的门数从几百门到上百万门,可以满足不同的需要。

因此用FPGA来实现ALU的功能不会受到FPGA门数的限制。

用FPGA实现的ALU有很多优点:

(1)编程方式简便先进。

(2)高速FPGA的时钟延迟可达纳秒级,结合其并行工作方式在超高速应用领域和实时测控方面有非常广阔的应用前景。

(3)高可靠性表现在几乎可将整个系统下载于同一芯片中从而大大缩小了体积易于管理和屏蔽。

(4)开发工具和设计语言标准化开发周期短。

(5)功能强大应用广阔FPGA可供选择范围很大,可根据不同的应用选用不同容量的芯片。

利用它们可实现几乎任何形式的数字电路或数字系统的设计。

(6)易学易用开发便捷FPGA应用的学习不需太多的预备知识,只要具有通常的数字电路和计算机编程基础知识,就足以在短期内掌握基本的设计方法和开发技巧。

2.3VerilogHDL开发语言简介

VerilogHDL是一种硬件描述语言(HDL:

HardwareDiscriptionLanguage),是一种以文本形式来描述数字系统硬件的结构和行为的语言,用它可以表示逻辑电路图、逻辑表达式,还可以表示数字逻辑系统所完成的逻辑功能。

VerilogHDL语言具有下述描述能力:

设计的行为特性、设计的数据流特性、设计的结构组成以及包含响应监控和设计验证方面的时延和波形产生机制。

所有这些都使用同一种建模语言。

此外,VerilogHDL语言提供了编程语言接口,通过该接口可以在模拟、验证期间从设计外部访问设计,包括模拟的具体控制和运行。

  VerilogHDL语言不仅定义了语法,而且对每个语法结构都定义了清晰的模拟、仿真语义。

因此,用这种语言编写的模型能够使用Verilog进行验证。

语言从C编程语言中继承了多种操作符和结构。

VerilogHDL提供了扩展的建模能力,其中许多扩展最初很难理解。

但是,VerilogHDL语言的核心子集非常易于学习和使用,这对大多数建模应用来说已经足够。

当然,完整的硬件描述语言足以对从最复杂的芯片到完整的电子系统进行描述。

VerilogHDL和VHDL是目前世界上最流行的两种硬件描述语言,都是在20世纪80年代中期开发出来的。

前者由GatewayDesignAutomation公司(该公司于1989年被Cadence公司收购)开发。

两种HDL均为IEEE标准。

3.ALU的各模块的具体设计

ALU模块的功能是按照控制模块给出的指令,对来自数据存储器、程序存储器、累加器ACC和程序状态字的数据进行算术、逻辑或位运算。

ALU模块可以直接或间接的执行很多指令,如加、减、乘、除等算术运算指令,逻辑与、或、异或等逻辑运算指令以及移位操作指令。

ALU模块执行的指令有很多,除去上述的算术运算、逻辑运算和环移指令外,还包括条件转移指令中的比较条件转移指令CJNE和减1条件转移指令DJNZ。

这种设计方法主要考虑比较条件转移指令CJNE设计上的方便与规范性;而减1条件转移指令DJNZ的指令操作需要进行减1操作,正好可以利用ALU模块的相应算术运算来进行,因此可通过ALU模块间接实现的;其余的很多指令则由ALU模块直接实现,这些指令包括算术逻辑运算指令、逻辑运算指令和环移指令。

alu模块共由5个子模块组成,分别是译码与控制分配模块alumux、逻辑运算模块alucore、加减模块addsub、乘法模块mul和除法模块div

3

3.1译码与控制分配模块alumux的实现

alumux模块是alu模块的译码与控制分配模块,用于实现对从control模块传来的操作代码进行译码和把不同的操作代码分配到不同的子模块进行操作,其实体图如图3-1所示。

alumux模块的译码部分采用三个进程(Process)语句来实现,在每个进程中通过CASE

语句来实现对输入信号的译码操作。

由control模块传送给alumux子模块的操作代码共有41条。

其中,每条操作代码都在control模块中用常量来加以定义,如对操作代码

3.2逻辑运算模块alucore的实现

alucore模块主要是实现相应的逻辑运算、移位指令运算及比较指令等相关运算,其实体图如图3-3所示:

当指令代码经alumux模块译码后若选通了alucore模块,并提供相应的操作代码和操作数后,alucore模块开始进行相应的工作。

在VerilogHDL语言中,逻辑运算非常容易实现,可以直接利用相应的与(and)、或(or)、非(not)等语句来实现。

如移位逻辑指令的实现如下:

5'b00011:

begin

{ALU_C,ALU_O}={C_in,AC_in};

end5’5’5’5’5’

1’0’5’1’0’5’

建一个vectorWaveformFiles

2.选择nodesfiles

3.设定每个输入信号的激励信号

4.选择time还是function仿真(function仿真还要先执行功能processing->generalfunctionalsimulationnestlist)

5.时序仿真可以用于分析时间延时,功能仿真只用于验证模块的功能;

完成ALU_C->AC直移仿真波形

完成ALU_C->Gr直移仿真波形

八位数相加的仿真波形

八位数相减的仿真波形

带进位八位数相加的仿真波形

带进位八位数相减的仿真波形

求反指令的仿真波形

左移和右移指令的仿真波形

两个四位数移位相乘的仿真波形

两个八位数的除的仿真波形

4总结与体会

4.1设计的体会

在本次设计中主要是在于EDA工具的使用,通过VerilogHDL语言完成ALU各模块的设计和仿真,成功的完成了此设计。

从此设计中我学到了许多,对于一个系统的开发,最初的模块划分是非常重要的。

随着系统的复杂度的增大,划分对系统的后续开发显示出越来越大的重要性。

随着自顶而下(Top-Down)设计方法的广泛采用,把一个系统划分为几个子模块,然后各个子模块分别设计的方法越来越多的被广大设计者所使用。

一个系统模块划分的好坏,模块间接口设计的是合理,将直接影响到整个的系统开发,甚至会决定系统开发的成功与否。

此设计中体现了VerilogHDL语言的重要性。

VerilogHDL是一种硬件描述语言,它所描述的对象是具体的硬件电路。

这就决定了它与普通的程序设计语言有着很大的不同。

普通的程序设计语言一般是顺序执行的,而VeriolgHDL语言则有较多的并行执行部分。

这是由硬件电路的并行性所决定的。

作为描述硬件电路的一种设计语言,VerilogHDL必然要有相应的语句去描述硬件电路的并行性。

编程时,思路中要有相应的电路概念,然后按照相应的电路编写程序,这样的程序系统易于综合,优化,最后的综合的电路结果也比较理想。

4.2设计的不足和改进措施

对本文所涉及的范围来说我所做的工作还是有欠缺的,本文主要是对ALU的功能进行软件设计和仿真,而没有通过实际的硬件系统来仿真与验证,如果以后条件允许的话,可以在硬件系统上来进行仿真与验证,使其更适合于实际应用。

其次是在仿真波形中还有很的毛刺出现,这是由于在设计的过程中由于竞争冒险导致所致,可以在整个设计的源程序中加入时钟,这样可以消除毛刺带来的影响。

4.3致谢

首先感谢我的导师黄勇老师!

黄老师给了我们全方位的支持,包括课程设计的选题、文献资料的收集、整理和论文写作过程的修改等等,特别是在论文的定稿过程中,更是一丝不苟,提出了许多宝贵意见。

同时黄老师的治学态度、正直的品质和乐于助人的精神,无时不刻在感染着我,鞭策着我,使我在工作和学习上不断取得进步!

其次要深深感谢电气学院的全体老师辛勤培养和教诲!

同时感谢我的同学,他们的帮助和相互支持使我的课程设计顺利地完成。

参考文献

[1]康华光.电子技术基础数字部分(第五版)[M]高等教育出版社

[2]康华光.电子技术基础模拟部分(第五版)[M]高等教育出版社

[3]谢自美.电子线路设计、试验、测试(第三版)[M]华中科技大学出版社

[4]杨志亮.Protel99se电路原理图设计技术[M]西北工业大学出版社

[5]王彩君/杨睿.数字电路实验[M]国防工业出版社

[6]王建新/姜萍.电子线路实践教程[M]科学出版社

[7]顾德仁/万栋义.脉冲与数字电路[M]高等教育出版社

[8]刘建成.电子线路试验教程[M]北京气象出版社2004.01

[9]李银华.电子线路设计指导[M]北京航空航天大学出版社

[10]张宪/何宇斌.电子电路制作指导[M]化学工业出版社

附录:

1、

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

当前位置:首页 > 求职职场 > 职业规划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1