EDA课程设计T111齐利刚.docx

上传人:b****5 文档编号:27841072 上传时间:2023-07-05 格式:DOCX 页数:23 大小:843.21KB
下载 相关 举报
EDA课程设计T111齐利刚.docx_第1页
第1页 / 共23页
EDA课程设计T111齐利刚.docx_第2页
第2页 / 共23页
EDA课程设计T111齐利刚.docx_第3页
第3页 / 共23页
EDA课程设计T111齐利刚.docx_第4页
第4页 / 共23页
EDA课程设计T111齐利刚.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

EDA课程设计T111齐利刚.docx

《EDA课程设计T111齐利刚.docx》由会员分享,可在线阅读,更多相关《EDA课程设计T111齐利刚.docx(23页珍藏版)》请在冰豆网上搜索。

EDA课程设计T111齐利刚.docx

EDA课程设计T111齐利刚

 

EDA设计小报告

 

项目名称数值比较排序器

专业班级通信111

学生姓名齐利刚

指导教师李丽

 

2014年6月25日

摘要

伴随着计算机、集成电路和电子设计技术的发展,EDA技术在过去的几十年里取得了巨大的进步。

EDA技术使得设计者的工作仅限于利用软件的方式,即利用硬件描述语言和EDA软件QuartusⅡ等即可完成对系统硬件功能的实现。

EDA技术研究的对象是电子设计的全过程,有上到下依次包括了系统级、电路级和物理级三个层次。

本设计是通过QuartusⅡ软件、VerilogHDL语言编程来设计实现两个八位二进制数值的比较,并且按大小顺序输出功能的数值比较排序器。

关键词:

QuartusⅡ;VerilogHDL;数值比较排序器

 

Abstract

Withthedevelopmentofcomputers,integratedcircuitsandelectronicdesigntechnology,EDAtechnologyinthepastfewdecadeshasmadetremendousprogress.EDAtechnologyallowsdesignerstoworkislimitedtotheuseofthesoftwareapproach,namelytheuseofahardwaredescriptionlanguageandEDAsoftwareQuartusⅡ,etc.tocompletethehardwarecapabilitiesofthesystemimplementation.EDAtechnologyresearchobjectisthewholeprocessofelectronicdesign,thereisaturntothenext,includingthesystemlevel,circuitlevelandphysicallevelthreelevels.

ThedesignisbyQuartusⅡsoftware,VerilogHDLprogramminglanguagedesignandimplementationcomparetwoeightbinaryvalues,andoutputfunctionsinorderofsizenumericcomparisonsequencer.

Keywords:

QuartusⅡ;VerilogHDL;NumericalcomparisonSequencers

 

目录

摘要I

AbstractII

第1章绪论1

1.1EDA技术的简介1

1.1.1EDA的工具软件1

1.1.2EDA的应用1

1.1.3EDA的设计方法2

1.2VerilogHDL简介2

1.2.1VerilogHDL的用途2

1.2.2VerilogHDL与VHDL的比较3

第2章设计内容及要求4

2.1设计目的及主要任务4

2.1.1设计目的4

2.1.2设计任务及要求4

2.2设计思想4

第3章数值比较排序器的设计5

3.1设计原理与方法5

3.1.1数值比较器5

3.1.2排序7

3.2系统电路的设计及原理说明7

3.2.1系统框图及说明7

3.2.2电路设计说明7

第4章电路仿真9

4.1软件介绍和使用9

4.1.1软件介绍9

4.1.2软件使用方法9

4.2电路仿真13

4.3生成电路逻辑图15

结论16

参考文献17

附录118

附录219

致谢20

第1章绪论

1.1EDA技术的简介

20世纪90年代,国际上电子和计算机技术较为先进的国家,一直在积极探索新的电子电路设计方法,并在设计方法、工具等方面进行了彻底的变革,取得了巨大成功。

在电子技术设计领域,可编程逻辑器件(如CPLD、FPGA)的应用,已得到广泛的普及,这些器件为数字系统的设计带来了极大的灵活性。

这些器件可以通过软件编程而对其硬件结构和工作方式进行重构,从而使得硬件的设计可以如同软件设计那样方便快捷。

这一切极大地改变了传统的数字系统设计方法、设计过程和设计观念,促进了EDA技术的迅速发展。

EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言VHDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。

EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。

1.1.1EDA的工具软件

EDA工具软件可大致可分为芯片设计辅助软件、可编程芯片辅助设计软件、系统设计辅助软件等三类。

目前进入我国并具有广泛影响的EDA软件是系统设计软件辅助类和可编程芯片辅助设计软件:

Protel、AltiumDesigner、PSPICE、multisim12(原EWB的最新版本)、OrCAD、PCAD、LSIIogic、MicroSim、ISE、modelsim、Matlab等等。

这些工具都有较强的功能,一般可用于几个方面,例如很多软件都可以进行电路设计与仿真,同时还可以进行PCB自动布局布线,可输出多种网表文件与第三方软件接口。

1.1.2EDA的应用

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

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

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

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

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

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

1.1.3EDA的设计方法

(1)前端设计(系统建模RTL级描述)后端设计(FPGAASIC)系统建模。

(2)IP复用。

(3)前端设计。

(4)系统描述:

建立系统的数学模型。

(5)功能描述:

描述系统的行为或各子模块之间的数据流图。

(6)逻辑设计:

将系统功能结构化,通常以文本、原理图、逻辑图、布尔表达式来表示设计结果。

(7)仿真:

包括功能仿真和时序仿真,主要验证系统功能正确性及时序特性。

1.2VerilogHDL简介

VerilogHDL是一种硬件描述语言,用于从算法级、门级到开关级的多种抽象设计层次的数字系统建模。

被建模的数字系统对象的复杂性可以介于简单的门和完整的电子数字系统之间。

数字系统能够按层次描述,并可在相同描述中显式地进行时序建模。

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

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

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

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

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

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

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

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

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

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

1.2.1VerilogHDL的用途

VerilogHDL就是在用途最广泛的C语言的基础上发展起来的一种硬件描述语言,它是由GDA(GatewayDesignAutomation)公司的PhilMoorby在1983年末首创的,最初只设计了一个仿真与验证工具,之后又陆续开发了相关的故障模拟与时序分析工具。

1985年Moorby推出它的第三个商用仿真器Verilog-XL,获得了巨大的成功,从而使得VerilogHDL迅速得到推广应用。

1989年CADENCE公司收购了GDA公司,使得VerilogHDL成为了该公司的独家专利。

1990年CADENCE公司公开发表了VerilogHDL,并成立LVI组织以促进VerilogHDL成为IEEE标准,即IEEEStandard1364-1995.

VerilogHDL的最大特点就是易学易用,如果有C语言的编程经验,可以在一个较短的时间内很快的学习和掌握,因而可以把VerilogHDL内容安排在与ASIC设计等相关课程内部进行讲授,由于HDL语言本身是专门面向硬件与系统设计的,这样的安排可以使学习者同时获得设计实际电路的经验。

与之相比,VHDL的学习要困难一些。

但VerilogHDL较自由的语法,也容易造成初学者犯一些错误,这一点要注意。

1.2.2VerilogHDL与VHDL的比较

(1)VHDL——VHSIC(VeryHighSpeedIntegratedCircuit)HDL,由美国DOD支持开发的HDL,1987年成为IEEE1076-1987标准,后修订为IEEE1076-1993标准。

(2)Verilog来自C语言,易学易用,编程风格灵活、简洁,使用者众多,特别在ASIC领域流行;VHDL来自ADA,语法严谨,比较难学,在欧洲和国内有较多使用者;

(3)两者描述的设计层次有所不同:

VHDL:

系统级、行为级、RTL级、门级;VerilogHDL:

行为级、RTL级、门级、开关级。

 

第2章设计内容及要求

2.1设计目的及主要任务

2.1.1设计目的

(1)掌握在QuartusⅡ软件的使用方法,并能熟练的在QuartusⅡ环境中运用VerilogHDL语言完成一些简单程序的设计;

(2)掌握数值比较排序器的设计原理。

2.1.2设计任务及要求

根据已知条件,完成基于QuartusⅡ的数值比较排序器的设计、连接与仿真。

该数值比较排序器须符合以下要求:

输入任意两个八位无符号的二进制数,然后通过比较器进行比较,如果两个数值相等,结果显示相等,如果两个数值不相等,则将比较的结果按数值的大小排列顺序并输出。

2.2设计思想

如今已进入电子时代,各种电子产品为了实现某种功能,经常需要对两个位数相同的二进制数进行比较,以判断它们的相对大小或者是否相等,用来实现这一功能的逻辑电路就成为数值比较器。

数值比较器就是对两数A、B进行比较,以判断其大小的逻辑电路。

比较结果有A>B、A

在比较两个多位数的大小时,必须自高而低地逐位比较,而且只有在高位相等时,才需要比较低位。

有时,不仅需要比较大小,而且还需要用到较大或者较小的数值,因此,就需要对数值大小进行排序输出,这就是集数值比较和数值排序输出为一体的数值比较排序器。

第3章数值比较排序器的设计

3.1设计原理与方法

本设计由输入模块、比较模块、排序模块和输出模块组成。

其核心器件就是比较器,在比较两个多位数的大小时,必须自高而低地逐位比较,而且只有在高位相等时,才需要比较低位。

该数值比较排序器可以通过对两个输入的位数相同的八位二进制数进行比较,以判断它们的相对大小或者是否相等,如果两个数值相等,结果显示相等,如果两个数值不相等,则将比较的结果按数值的大小排列顺序并输出。

3.1.1数值比较器

1位数值比较器是多位比较器的基础。

当A和B都是1位数时,它们只能取0或1两种值,由此可写出1位数值比较器的真值表,见表3-1:

表3-1数值比较器的真值表

由真值表得到如下逻辑表达式:

由以上逻辑表达式可画出如下图所示的逻辑电路。

实际应用中,可根据具体情况选用逻辑门。

两位数值比较器 现在分析比较两位数字A1A0和B1B0的情况。

 利用1位比较器结果,可以列出简化的真值表见表3-2:

 

表3-2真值表

为了减少符号的种类,不再使用字母L,而以(Ai>Bi)、(Ai<Bi)、(Ai=Bi)直接表示逻辑函数。

可以由真值表对两位比较器作如下简要概述。

 当高位(A1、B1)不相等时,无需比较低位(A0、B0),两个数的比较结果就是高位比较的结果。

 当高位相等时,两数的比较结果由低位比较的结果决定。

 

由真值表可以写出如下逻辑表达式:

根据表达式画出逻辑图,如图3-1所示:

图3-1逻辑图

电路利用了1位数值比较器的输出作为中间结果。

它所依据的原理是,如果两位数A1A0和B1B0的高位不相等,则高位比较结果就是两数比较结果,与低位无关。

这时,由于中间函数(A1=B1)=0,使与门G1、G2、G3均封锁,而或门都打开,低位比较结果不能影响或门,高位比较结果则从或门直接输出。

如果高位相等,即(A1=B1)=1,使与门G1、G2、G3均打开,同时由(A1>B1)=0和(A1<B1)=0作用,或门也打开,低位的比较结果直接送达输出端,即低位的比较结果决定两数谁大、谁小或者相等。

3.1.2排序

所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作。

计算机硬件的速度和存储空间的有限性,如何提高计算机速度并节省存储空间一直成为软件编制人员努力的方向,在众多措施中,排序操作成为程序设计人员考虑的因素之一,排序方法选择得当与否直接影响程序执行的速度和辅助存储空间的占有量,进而影响整个软件的性能。

3.2系统电路的设计及原理说明

3.2.1系统框图及说明

本设计由输入模块、比较模块、排序模块和输出模块组成。

其中,核心元件是数值比较器。

就是对两数A、B进行比较,以判断其大小的逻辑电路。

比较结果有A>B、A

以判断它们的相对大小或者是否相等,如果两个数值相等,结果显示相等,如果两个数值不相等,则将比较的结果按数值的大小排列顺序并输出,如图3-2所示。

比较A,B按大小输出

排序

比较器

输入八位二进制数A

A,B大小相同

输入八位二进制数B

图3-2系统框图

3.2.2电路设计说明

数值比较排序器由输入模块、比较模块、排序模块和输出模块组成。

系统设计流程图如图3.3所示。

功能分析

电路构思

组合电路并仿真

关键器件版图设计

组合模块并完成版图设计

 

图3-3系统设计流程

通过功能分析和电路的构思后,设计出电路的组成部分,逻辑图见如图3-4所示。

图3-4逻辑图

通过输入两个八位无符号的二进制数A和B,然后,对两数A、B进行比较,以判断其大小的逻辑电路。

比较结果有A>B、A

以判断它们的相对大小或者是否相等,如果两个数值相等,结果显示相等,如果两个数值不相等,则将比较的结果按数值的大小排列顺序并输出,即大的数值由D输出,小的数值由X输出。

 

 

第4章电路仿真

4.1软件介绍和使用

4.1.1软件介绍

QuartusII是Altera公司的综合性PLD开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(AlteraHardwareDescriptionLanguage)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。

具有运行速度快,界面统一,功能集中,易学易用等特点。

4.1.2软件使用方法

在这里,首先用最简单的实例向读者展示使用QuartusII软件的全过程。

进入WINDOWSXP后,双击QuartusII图标,屏幕如图4-1所示。

图4-1QuartusII管理器

工程建立,使用NewProjectWizard,可以为工程指定工作目录、分配工程名称以及指定最高层设计实体的名称。

还可以指定要在工程中使用的设计文件、其它源文件、用户库和EDA工具,以及目标器件系列和器件(也可以让QuartusII软件自动选择器件)。

建立工程的步骤如下:

选择File菜单下NewProjectWizard,如图4-2所示。

图4-2建立项目的屏幕

输入工作目录和项目名称,如图4-3所示。

可以直接选择Finish,以下的设置过程可以在设计过程中完成。

图4-3项目目录和名称

加入已有的设计文件到项目,可以直接选择Next,设计文件可以在设计过程中加入,如图4-4所示。

图4-4加入设计文件

选择设计器件,如图4-5所示。

图4.-5选择器件

新建verilogHDLFile文件,打开新建,然后选择verilogHDLFile文件即可,详细步骤见下图,如图4-6所示:

图4-6新建verilogHDLFile文件

将编好的程序输入并保存运行,如图4-7所示:

图4-7程序输入

4.2电路仿真

首先建立波形文件:

选择File→New,在New窗中选“Verification/DebuggingFiles”标签。

在出现的屏幕中选择“VectorWaveformFile”项出现一新的操作界面,如图4-8所示。

图4-8新建仿真

在出现的新屏幕中,双击“Name”下方的空白处,弹出“InsertNodorBus”对话框,单击该对话框的“NodeFinder”。

在屏幕中的Filter中选择Pins,单击“List”。

而后,单击“>>”,所有输入/输出都被拷贝到右边的一侧,这些正是我们希望的各个引脚,如图4-9所示。

也可以只选其中的的一部分,根据实际情况决定。

然后单击屏幕右上脚的“OK”。

在出现的小屏幕上单击“OK”,这样我们就可以设置一系列仿真参数了,如图4-10所示。

图4-9选择结点

图4-10设置参数

点击快捷按钮

,开始仿真,完成后得到波形如图4-11。

图4-11波形仿真结果

首先,我们令A=10100010,B=00111110,然后将A和B输入到数值比较排序器中,经过数值的大小比较,得出A>B,因此,将A的数值由D输出,B的数值由X输出,T为0值,即D=10100010,X=00111110,T=0。

从而,验证了数值比较排序器的功能。

4.3生成电路逻辑图

首先,在工具栏中点击Tools然后选择NetlistVievers,再点击RTLviever,这样就生成了电路逻辑图,如图4-12所示。

图4-12生成逻辑图操作

首先,我们令A=10100010,B=00111110,然后将A和B输入到数值比较排序器中,经过数值的大小比较,得出A>B,因此,将A的数值由D输出,B的数值由X输出,T为0值,即D=10100010,X=00111110,T=0。

从而,验证了数值比较排序器的功能。

所生成的逻辑图如图4-13所示。

图4-13逻辑图

结论

通过这次课设,我对在QuartusⅡ环境中运用VerilogHDL语言设计方法构建具有一定逻辑功能的模块的应用更加熟练,对QuartusⅡ的应用和对VerilogHDL语言的使用有了进一步的加强。

本次设计的核心内容就是QuartusⅡ环境中,利用VerilogHDL语言设计出基于FPGA的数字钟。

此次EDA课程设计对我们的总体电路的设计的要求更严格,需要通过翻阅复习以前学过的知识确立了实验总体设计方案,然后逐步细化进行各模块的设计;其次,在电路仿真的过程中总会出现一些问题,需要我们细心解决,所以这两周下来,我对电路故障的排查能力有了很大的提高;再次,通过此次课程设计,我对设计所用到的软件有了更加深刻地了解,这对我们以后的工作和学习的帮助都很有用处。

当然,经过了课程设计,我也发现了自己的很多不足。

但是通过自己的动手动脑,既增加了知识,又给了我专业知识以及专业技能上的提升,我也会更加努力,认真学习,争取在以后的课程中做得更好!

 

参考文献

[1]卢毅,赖杰.VHDL与数字电路设计.科学出版社,2009.

[2]北京理工大学ASIC研究所.《VHDL语言100例详解》.清华大学出版社,2001.

[3]杨丽英.《电路EDA技术与应用》.清华大学出版社,2011.

[4]谢自美.《电子线路设计》(第二版).华中科技大学出版社,2000.

[5]赵世强.《电子电路EDA技术》.西安电子科技大学出版社,2006.

 

附录1

moduledxpl(A,B,D,X,T);//定义模块名称为dxpl和用到的参数

inputA,B;//输入参数声明

wire[7:

0]A,B;

outputD,X,T;//输出参数声明

regT;

reg[7:

0]D,X;

always@(A,B,D,X,T)//开始

Begin//顺序执行

if(A==B)//判定A和B是否相等

begin//A和B相等

D=0;//将0值赋给D

X=0;//将0值赋给X

T=1;//将1值赋给T

end

elseif(A>B)//判定A是否大于B

Begin//A大于B

D=A;//将A的值赋给D

X=B;//将B的值赋给X

T=0;//将0值赋给T

end

else//A小于B的情况

Begin//A小于B

D=B;//将B的值赋给D

X=A;//将A的值赋给X

T=0;//将0值赋给T

end

End//结束条件语句

endmodule//结束模块

附录2

 

致谢

在这次课设中,我首先要感谢学校给我们提供的机会,其次我要感谢我的指导教师——李丽老师在课程设计上给予我的指导、提供给我的支持和帮助,这是我能顺利完成这次报告的主要原因,更重要的是老师帮我解决了许多技术上的难题,让我能把设计做得更加完善。

在此期间,我不仅学到了许多新的知识,而且也开阔了视野,提高了自己的设计能力。

最后,我要感谢帮助过我的同学,他们也为我解决了不少我不太明白的设计上的难题。

同时也感谢学院为我提供良好的做课程设计的环境。

最后再一次感谢所有在设计中曾经帮助过我的良师益友和同学。

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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