EDA课程设计.docx

上传人:b****3 文档编号:3884024 上传时间:2022-11-26 格式:DOCX 页数:10 大小:327.57KB
下载 相关 举报
EDA课程设计.docx_第1页
第1页 / 共10页
EDA课程设计.docx_第2页
第2页 / 共10页
EDA课程设计.docx_第3页
第3页 / 共10页
EDA课程设计.docx_第4页
第4页 / 共10页
EDA课程设计.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

EDA课程设计.docx

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

EDA课程设计.docx

EDA课程设计

兰州交通大学

课程设计报告

 

课程名称:

EDA综合设计

设计名称:

任意进制分频器

姓名:

雷卫卫

学号:

200910250

班级:

电信09

指导教师:

王耀琦

 

第1章绪论3

1.1分频器的概述3

1.2分频器的分类4

1.3分频器的工作原理5

1.4Quartus2软件简介6

第二章任意进制分频器的设计8

2.1通用分频器基本原理8

2.2Verilog语言的实现10

第三章心得体会15

 

第1章绪论

1.1分频器的概述

分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。

在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。

早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器,即使在输入输出信号均为正弦波时也往往采用模数转换-数字分频-数模转换的方法来实现分频。

正弦分频器除在输入信噪比低和频率极高的场合已很少使用。

对于任何一个N次分频器,在输入信号不变的情况下,输出信号可以有N种间隔为2π/N的相位。

这种现象是分频作用所固有的,与分频器的具体电路无关,称为分频器输出相位多值性。

分频器是数字系统设计中的基本电路,根据不同设计的需要,我们会遇到偶数分频、奇数分频、半整数分频等,有时要求等占空比,有时要求非等占空比。

在同一个设计中有时要求多种形式的分频。

通常由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频,实现较为简单。

但对半整数分频及等占空比的奇数分频实现较为困难。

本文利用VHDL硬件描述语言,通过QuartusⅡ7.0开发平台,使用Altera公司的FPGA,设计了一种能够满足上述各种要求的较为通用的分频器。

分频器是数字电路中最常用的电路之一,在FPGA的设计中也是使用效率非常高的基本设计。

基于FPGA实现的分频电路一般有两种方法:

一是使用FPGA芯片内部提供的锁相环电路,如ALTERA提供的PLL(PhaseLockedLoop),Xilinx提供的DLL(DelayLockedLoop);二是使用硬件描述语言,如VHDL、VerilogHDL等。

使用锁相环电路有许多优点,如可以实现倍频;相位偏移;占空比可调等。

但FPGA提供的锁相环个数极为有限,不能满足使用要求。

因此使用硬件描述语言实现分频电路经常使用在数字电路设计中,消耗不多的逻辑单元就可以实现对时钟的操作,具有成本低、可编程等优点。

1.2分频器的分类

分频器有两大类:

一类是功率分频器,亦称被动分频器(PassiveCrossover);另一类是电子分频器,亦称主动分频器(ActiveCrossover)。

1、功率分频器:

位于功率放大器之后,设置在音箱内,通过LC滤波网络,将功率放大器输出的功率音频信号分为低音,中音和高音,分别送至各自扬声器。

连接简单,使用方便,但消耗功率,出现音频谷点,产生交叉失真,它的参数与扬声器阻抗有的直接关系,而扬声器的阻抗又是频率的函数,与标称值偏离较大,因此误差也较大,不利于调整。

2、电子分频器:

将音频弱信号进行分频的设备,位于功率放大器前,分频后再用各自独立的功率放大器,把每一个音频频段信号给予放大,然后分别送到相应的扬声器单元。

因电流较小故可用较小功率的电子有源滤波器实现,调整较容易,减少功率损耗,及扬声器单元之间的干扰。

使得信号损失小,音质好。

但此方式每路要用独立的功率放大器,成本高,电路结构复杂,运用于专业扩声系统。

1.3分频器的工作原理

分频器本质上是由电容器和电感线圈构成的LC滤波网络,高音通道是高通滤波器,它只让高频信号通过而阻此低频信号;低音通道正好想反,它只让低音通过而阻此高频信号;中音通道则是一个带通滤波器,除了一低一高两个分频点之间的频率可以通过,高频成份和低频成份都将被阻止。

在实际的分频器中,有时为了平衡高、低音单元之间的灵敏度差异,还要加入衰减电阻;另外,有些分频器中还加入了由电阻、电容构成的阻抗补偿网络,其目的是使音箱的阻抗曲线心理平坦一些,以便于功放驱动。

由于现在的音箱几乎都采用多单元分频段重放的设计方式,所以必须有一种装置,能够将功放送来的全频带音乐信号按需要划分为高音、低音输出或者高音、中音、低音输出,才能跟相应的喇叭单元连接,分频器就是这样的装置。

如果把全频带信号不加分配地直接送入高、中、低音单元中去,在单元频响范围之外的那部分“多余信号”会对正常频带内的信号还原产生不利影响,甚至可能使高音、中音单元损坏。

EDA设计简介

1.4Quartus2软件简介

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

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

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

QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。

对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。

此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。

MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。

目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。

Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。

AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。

功能如下:

QuartusII提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:

可利用原理图、结构框图、VerilogHDL、AHDL和VHDL完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTapII逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表

第二章任意进制分频器的设计

2.1通用分频器基本原理

整数分频包括偶数分频和奇数分频,对于偶数N分频,通

常是由模N/2计数器实现一个占空比为1:

1的N分频器,分

频输出信号模N/2自动取反。

对于奇数N分频,上述方法就

不适用了,而是由模N计数器实现非等占空比的奇数N分频

器,分频输出信号取得是模N计数中的某一位(不同N值范

围会选不同位)。

这种方法同样适用于偶数N分频,但占空比

不总是1:

1,只有2的n次方的偶数(如4、8、16等)分频

占空比才是1:

1。

这种方法对于奇数、偶数具有通用性。

半整数分频器也是在这种方法基础上实现的。

除了一个

模N计数器,还需要一个异或模块和一个2分频模块。

半整

数分频器原理如图1所示:

图1:

半整数分频器电路组成

半整数分频器设计思想:

通过异或门和2分频模块组成

一个改变输入频率的脉冲添加电路,也就是说N-0.5个输入

信号周期内产生了N个计数脉冲,即输入信号其中的一个含

一个脉冲的周期变为含两个脉冲的周期。

而这一改变正是输

入频率与2分频输出异或的结果。

由2分频输出决定一个周

期产生两个脉冲有两种方式:

当一个输入信号来一个脉冲

(前半周期)时,2分频输出变为‘1’,clk_in取反,后半周

期就会产生一个脉冲;2分频输出由‘1’变为‘0’时,clk_in

刚把一个周期(前半周期)内低电平变为高电平产生一个脉

冲,而后半周期的脉冲与‘0’异或不变。

从而实现N-0.5分

频。

要实现奇数、偶数、半整数通用分频器只需再加一个控

制选择信号sel。

当sel=‘1’时,clk_in与2分频输出异或,

实现半整数分频;当sel=‘0’时,只选通clk_in,实现整数

分频。

通用分频器原理如图2所示:

图2:

通用分频器电路组

2.2Verilog语言的实现

本设计采用层次化的设计方法,首先设计通用分频器中各组成电路元件,然后通过元件例化的方法,调用各元件,实现通用分频器。

1、选择异或门模块half_select:

modulehalf_select(sel,a,b,c);

outputc;

inputsel,a,b;

xoru1(w,a,b);

assignc=sel?

w:

a;//当sel=‘1’时,clk_in与2分频输出异或,实现半整数分频;当sel=‘0’时,只选通clk_in,实现整数分频。

endmodule

2、模N计数器counter_n:

实现参数化设计N可取2~256,也可增加count位数使N

可取更大的值。

以N=7为例通过设置sel分别实现奇数7分频

和半整数6.5分频。

modulecounter_n(reset,en,clk_in,clk_out,count);

parameterN=7;

inputreset,en,clk_in;

outputclk_out;

output[7:

0]count;

regclk_out;

reg[7:

0]count;

always@(posedgeclk_in)

begin

if(reset)

begin

count[7:

0]=0;

end

elseif(en)

begin

if(count==(N-1))

count=0;

else

count=count+1;

end

end

always

begin

if(N<=2)

clk_out=count[0];

elseif(N<=4)

clk_out=count[1];

elseif(N<=8)

clk_out=count[2];

elseif(N<=16)

clk_out=count[3];

elseif(N<=32)

clk_out=count[4];

elseif(N<=64)

clk_out=count[5];

elseif(N<=128)

clk_out=count[6];

elseif(N<=256)

clk_out=count[7];

end

endmodule

3、2分频模块fenpin_2:

modulefenpin_2(clk_in,clk_out);

inputclk_in;

outputclk_out;

regclk_out;

always@(posedgeclk_in)

begin

clk_out=~clk_out;

end

endmodule

4、最后通过元件例化的方法,调用各元件,实现通用分频器最高层设计:

modulefenpin(reset,en,sel,clk_in,clk_out,count);

inputreset,en,sel,clk_in;

outputclk_out;

output[3:

0]count;

half_selectu1(sel,clk_in,b,c);//调用half_select,元件例化

counter_nu2(reset,en,c,clk_out,count);//调用counter_n,

元件例化

fenpin_2u3(clk_out,b);//调用fenpin_2,元件例化

endmodule

 

5、RTL图如下

仿真结果及硬件电路测试

当sel=‘0’,N=7时,实现奇数7分频。

如图3所示

当sel=‘1’,N=7时,实现半整数7.5分频。

如图4所示

图3

图4

由此可见,只要改变异或门选通控制sel和N的值就可实现任意进制的分频。

第三章心得体会

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

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

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

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

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

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

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

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

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

通过本次的课程设计,我对VerilogHDL语言有了更深刻的了解,能比较多的灵活运用它来实现我所想要的功能。

在本次设计中我也遇到了很多的挫折,不过都一一克服了。

成功就是在不断摸索着前进中实现的,遇到问题不能灰心,烦躁,甚至放弃,而是要静下心仔细思考分布检查,找到原因并改正,这样才能有进步,才能一步步接近自己的目标,才会取得自己想要所追求的成功。

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

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

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

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