大二eda课程设计Word格式.docx

上传人:b****6 文档编号:19026300 上传时间:2023-01-03 格式:DOCX 页数:22 大小:177.83KB
下载 相关 举报
大二eda课程设计Word格式.docx_第1页
第1页 / 共22页
大二eda课程设计Word格式.docx_第2页
第2页 / 共22页
大二eda课程设计Word格式.docx_第3页
第3页 / 共22页
大二eda课程设计Word格式.docx_第4页
第4页 / 共22页
大二eda课程设计Word格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

大二eda课程设计Word格式.docx

《大二eda课程设计Word格式.docx》由会员分享,可在线阅读,更多相关《大二eda课程设计Word格式.docx(22页珍藏版)》请在冰豆网上搜索。

大二eda课程设计Word格式.docx

学号09702303

系 主 任张红兵

教研室主任苏品刚

指导教师邢亚从

目录

第一章绪论1

1.1EDA技术的概述1

1.1.1EDA的基本概念1

1.1.2EDA的发展历程1

1.1.3EDA的发展趋势1

1.2EDA技术的设计方法2

第二章设计要求3

2.1课程设计要求3

2.2设计原理图3

第三章系统的设计4

3.1设计模块图4

3.2设计思路4

3.3设计程序5

3.3.1分频5

3.3.2正弦波5

3.3.3特殊波6

3.3.4方波8

3.3.5三角波8

3.3.6时钟输入9

3.3.7输出波形选择10

3.4设计模块10

3.5管脚定义11

3.6实验结果11

第四章心得体会13

参考文献14

第一章绪论

1.1EDA技术的概述

EDA技术简介电子设计自动化(EDA,ElectronicsDesignAutomation)是一种以计算机为基本工作平台,利用计算机图形学、拓扑逻辑学、计算数学、人工智能学等多种计算机应用学科的最新成果开发出来的一整套软件工具,是用于帮助电子设计工程师从事电子元件、产品和系统设计的综合技术。

电子设计技术的核心就是EDA技术。

EDA技术主要能辅助进行三方面的设计工作,即集成电路(1C,IntegrateCircuit)设计、电子电路设计和印刷电路板(PCB,PrintedCircuitBoard)设计。

1.1.1EDA的基本概念

电子设计自动化技术(EDA)以计算机为基础工作平台,以微电子技术为物理基础,以现代电子技术设计技术为灵魂,采用计算机软件工具,最终实现电子系统或专用集成电路的设计。

它可简单概括为以大规模可编程逻辑器件为设计载体,通过硬件描述语言或将逻辑图输入给相应EDA开发软件,经过编译和仿真,最终将所设计的电路下载到设计载体中,从而完成系统设计任务的一门新技术。

1.1.2EDA的发展历程

伴随着计算机、集成电路、电子系统设计的发展,EDA技术经历了计算机辅助设计、计算机辅助工程设计和电子设计自动化三个发展阶段。

1.1.3EDA的发展趋势

从目前的EDA技术来看,起发展趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大。

随着微电子技术与工具软件的发展,EDA技术的硬件载体、软件开发工具与设计输入方式等都发生了很大的变化。

1.2EDA技术的设计方法

数字系统的设计可以采用不同的方法,具体选择哪一种设计方法有多方面的考虑,如设计者的设计经验、设计的规模和复杂程度、设计采用的工艺及选定的IC生产厂家或选用的可编程器件等。

在今天复杂的IC设计环境下,概括起来只有两种设计方法供数字系统设计人员选择:

一种为由底向上的设计方法,也称为传统的设计方法;

另一种为自顶向下的设计的设计方法,也称为现代的设计方法。

由底向上的设计方法其主要步骤是:

根据系统对硬件的要求详细编制技术规格书,画出系统控制流程图,对系统的功能进行细化,合理地划分功能模块,并画出系统的功能模块设计、调试完成后,将各功能模块的硬件电路连接起来再进行系统的调试,最后完成整个系统的硬件设计。

自顶向下设计方法可分为三个主要阶段:

系统设计、系统的综合优化和系统实现,各个阶段之间并没有绝对的界限。

1.3VHDL硬件描述语

VHDL基础硬件描述语言HDL是为了解决复杂系统的输入设计而出现的,有其历史必然性。

其中符合IE2.2VHDL基础硬件描述语言HDL是为了解决复杂系统的输入设计而出现的,有其历史必然性。

其中符合IEEE-1076标准的硬件描述语言(VHDl,VHSICHardwareDescriptionLanguage)的应用成为新一代EDA解决方案中的首选。

VHDL的应用必将成为当前以及未来EDA解决方案的核心,更是整个电子逻辑系统设计的核心。

严格地讲,VHDL是一种用来描述数字逻辑系统的“编程语言”,它源于美国政府于1980年开始启动的超高速集成电路(viiSIC,VeryHi曲SpeedlnntegratedCircuit)计划。

在这一计划的执行过程中,专家们认识到需要有一种标准的语言来描述集成电路的结构和功能,由此,VHSIC的硬件描述语言即VHDL便诞生了,并很快被美国电气和电子工程师协会(1EEE)所承认。

第二章设计要求

2.1课程设计要求

电路要求可以产生方波、正弦波、三角波,特殊波形的频率可调,通过控制开关控制产生的波形,并通过控制按键控制设计信号的频率,改变频率的方法可以采用分频和DDS的原理进行控制信号频率。

并进行D/A转换电路与滤波电路的设计,通过采用施密特触发器对波形进行整形,设计一频率测量电路对所产生的频率进行测量,通过数码管显示出来,并在数码管上显示当前的波形代码。

2.2设计原理图

第三章系统的设计

3.1设计模块图

输出选择

3.2设计思路

1.提出设计说明书,即用自然语言表达系统项目的功能特点和技术参数等。

2.建立VHDL行为模型,这一步是将设计说明书转化为VHDL行为模型。

3.VHDL行为仿真。

这一阶段可以利用VHDL仿真器(如ModelSim)对顶层系统的行为模型进行仿真测试,检查模拟结果,继而进行修改和完善。

4.VHDL-RTL级建模。

如上所述,VHDL只有部分语句集合可用于硬件功能行为的建模,因此在这一阶段,必须将VHDL的行为模型表达为VHDL行为代码。

5.测试向量生成。

这一阶段主要是针对ASIC设计的。

FPGA设计的时序测试文件主要产生于适配器。

对ASIC的测试向量文件是综合器结合含有版图硬件特性的工艺库后产生的,用于对ASIC的功能测试。

6.功能仿真。

利用获得的测试向量对ASIC的设计系统和子系统的功能进行仿真。

7.门级时序仿真。

在这一级中将使用门级仿真器或仍然使用VHDL仿真器(因为结构综合后能同步生成VHDL格式的时序仿真文件)进行门级时序仿真,在计算机上了解更接近硬件目标器件工作的功能时序。

8.硬件测试。

这是对最后完成的硬件系统进行检查和测试。

3.3设计程序

3.3.1分频

LIBRARYIEEE;

USEIEEE.STD_LOGIC_1164.ALL;

USEIEEE.STD_LOGIC_UNSIGNED.ALL;

ENTITYfpIS

port(clk:

instd_logic;

--input1KHz

k:

inintegerrange7downto0;

clko:

bufferstd_logic);

--out1hz

endfp;

architectureaoffpis

signaltemp:

std_logic_vector(3downto0);

begin

process(clk)

ifclk'

eventandclk='

1'

then

iftemp<

kthen

temp<

=temp+1;

else

="

0000"

;

clko<

=notclko;

endif;

endif;

endprocess;

enda;

3.3.2正弦波

libraryieee;

useieee.std_logic_1164.all;

useieee.std_logic_arith.all;

useieee.std_logic_unsigned.all;

entitysinis

port(clk4:

k:

dd4:

outintegerrange255downto0);

endsin;

architecturedaccofsinis

signalq:

integerrange63downto0;

process(clk4)

begin

if(clk4'

eventandclk4='

)then

q<

=q+k;

endif;

process(q)

caseqis

when00=>

dd4<

=255;

when01=>

=254;

when02=>

=253;

when03=>

=250;

when04=>

=245;

when05=>

=240;

when06=>

=234;

when07=>

=226;

when08=>

=218;

when09=>

=208;

when10=>

=198;

when11=>

=188;

when12=>

=176;

when13=>

=165;

when14=>

=152;

when15=>

=140;

when16=>

=128;

when17=>

=115;

when18=>

=103;

when19=>

=90;

when20=>

=79;

when21=>

=67;

when22=>

=57;

when23=>

=47;

when24=>

=37;

when25=>

=29;

when26=>

=21;

when27=>

=15;

when28=>

=10;

when29=>

=5;

when30=>

=2;

when31=>

=1;

when32=>

=0;

when33=>

when34=>

when35=>

when36=>

when37=>

when38=>

when39=>

when40=>

when41=>

when42=>

when43=>

when44=>

when45=>

when46=>

when47=>

when48=>

when49=>

when50=>

when51=>

when52=>

when53=>

when54=>

when55=>

when56=>

when57=>

when58=>

when59=>

when60=>

when61=>

when62=>

when63=>

whenothers=>

null;

endcase;

enddacc;

3.3.3特殊波

entitysintrais

endsintra;

architecturedaccofsintrais

q<

when01=>

=120;

=112;

=104;

=96;

=88;

=80;

=72;

=64;

=56;

=48;

=40;

=32;

=24;

=16;

=8;

3.3.4方波

entitysquareis

port(clk1:

instd_logic;

dd1:

bufferintegerrange255downto0);

endsquare;

architecturedaccofsquareis

integerrange255downto0;

process(clk1)

if(clk1'

eventandclk1='

when0to31=>

dd1<

when32to63=>

=127;

whenothers=>

endcase;

enddacc;

3.3.5三角波

entitytriais

port(clk3:

dd3:

endtria;

architecturedaccoftriais

signalb:

std_logic;

signalc:

integerrange255downto0;

process(clk3)

if(clk3'

eventandclk3='

if(b='

0'

c<

=c+k;

if(c>

=64)then

b<

='

endif;

elsif(b='

c<

=c-k;

if(c<

=1)then

endif;

dd3<

=c;

3.3.6时钟输入

entitymux42is

port(clk:

sel:

instd_logic_vector(1downto0);

clk1,clk2,clk3,clk4:

outstd_logic);

endentitymux42;

architectureartofmux42is

process(sel,clk)

caseselis

when"

00"

=&

gt;

clk1&

lt;

=clk;

01"

clk2&

10"

clk3&

11"

clk4&

whenothers=&

=null;

clk2&

clk3&

clk4&

endart;

3.3.7输出波形选择

entityWaveSelectis

port(clk1,clk2,clk3,clk4:

instd_logic_vector(7downto0);

outwave:

outstd_logic_vector(7downto0));

endWaveSelect;

architectureartofWaveSelectis

withselselect

outwave&

=clk1when"

clk2when"

clk3when"

clk4when"

nullwhenothers;

3.4设计模块

分频模块:

正弦函数模块:

特殊波形:

方波:

三角波:

3.5管脚定义

3.6实验结果

第四章心得体会

本次课程设计是设计一个任意波形发生器,经过一个星期的调试,结果满足设计要求,验证无误。

设计主要用到了EP1C3T144C8芯片,程序也比较长比较麻烦,同时也遇到了不少困难,尤其是关于各个不同功能模块设计的实现。

将编写好的源程序输入电脑,编译后出现很多错误,这些错误有许多时平时的实验遇到过的,例如:

输入的分号位置不对,零和字母o弄混淆了,漏掉了endif等等,幸好这些错误在平时的实验中遇到了,所以改错误很容易,但同时也说明了,平时的错误现在还在犯,证明错误我还没有完全的改正,这点我以后一定要注意了。

同样的错误犯了两次就不能再犯了。

除了常见的错误外

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

当前位置:首页 > 工程科技 > 能源化工

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

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