ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:172.69KB ,
资源ID:26328401      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/26328401.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(通用分频器基本原理.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

通用分频器基本原理.docx

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所示: 半整数

2、分频器设计思想:通过异或门和2分频模块组成一个改变输入频率的脉冲添加电路,也就是说N-0.5个输入信号周期内产生了N个计数脉冲,即输入信号其中的一个含一个脉冲的周期变为含两个脉冲的周期。而这一改变正是输入频率与2分频输出异或的结果。由2分频输出决定一个周期产生两个脉冲有两种方式:当一个输入信号来一个脉冲(前半周期)时,2分频输出变为1,clk_in取反,后半周期就会产生一个脉冲;2分频输出由1变为0时,clk_in刚把一个周期(前半周期)内低电平变为高电平产生一个脉冲,而后半周期的脉冲与0异或不变。从而实现N-0.5分频。 要实现奇数、偶数、半整数通用分频器只需再加一个控制选择信号 sel。当

3、sel=1时,clk_in与2分频输出异或,实现半整数分频;当sel=0时,只选通clk_in,实现整数分频。通用分频器原理如图2所示: Verilog 语言的实现 本设计采用层次化的设计方法,首先设计通用分频器中各组成电路元件, 然后通过元件例化的方法,调用各元件,实现通用分频器。 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,实现整数分频。

4、)endmodule2、模 N计数器counter_n:实现参数化设计N可取2256,也可增加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;output7:0count; regclk_out; reg7:0count;always(posedgeclk_in)beginif(reset)begincount7:0=0;endelseif(en)begi

5、nif(count=(N-1)count=0;elsecount=count1;endendalwaysbeginif(Nclk_out=count0;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(N 在复杂数字逻辑电路设计中,经常会用到多个不同的时钟信号。介绍一种通用的分频器,可实现 2256之间的任意奇数、偶数、半整数分频。首先简要介绍了 FPGA器件的特点和应用范围。接着介绍了通用分频器的基本原理和分类,并以分频比为奇数 7和半整数6.5的分频器设计为例,介绍了在QuartusII开发软件下,利用Verilog硬件描述语言来设计数字

6、逻辑电路的过程和方法。在数字逻辑电路设计中,分频器是一种基本电路。我们常会遇到偶数分频、奇数分频、半整数分频等,在同一个设计中有时要求多种形式的分频。通常由计数器或计数器的级联构成各种形式的偶数分频和奇数分频,实现较为简单。但对半整数分频分频实现较为困难。但在某些场合下,时钟源与所需的频率不成整数倍关系,此时可采用小数分频器进行分频。例如:时钟源信号为130MHz,而电路中需要产生一个 20MHz的时钟信号,其分频比为6.5,因此根据不同设计的需要,本文利用Verilog硬件描述语言,通过MAXplusII开发平台,使用Altera 公司的FLEX系列EPF10K10LC84-3型FPGA,设

7、计了一种能够满足上述各种要求的较为通用的分频器。 基于查找表(LUT)的FPGA的结构特点查找表(Look-Up-Table)简称为LUT,LUT本质上就是一个RAM。目前FPGA中多使用4输入的LUT,所以每一个LUT可以看成一个有4位地址线的16x1的RAM。当用户通过原理图或HDL语言描述了一个逻辑电路以后, PLD/FPGA开发软件会自动计算逻辑电路的所有可能的结果,并把结果事先写入 RAM,这样,每输入一个信号进行逻辑运算就等于输入一个地址进行查表, 找出地址对应的内容,然后输出即可。由于 LUT主要适合SRAM工艺生产,所以目前大部分 FPGA都是基于SRAM工艺的,而SRAM工艺

8、的芯片在掉电后信息就会丢失,一定需要外加一片专用配置芯片, 在上电的时候,由这个专用配置芯片把数据加载到 FPGA中,然后FPGA就可以正常工作,由于配置时间很短,不会影响系统正常工作。也有少数FPGA采用反熔丝或Flash工艺,对这种FPGA,就不需要外加专用的配置芯片。FPGA(FieldprogrammableGatesArray,现场可编程门阵列)都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件基础上发展起来的。同以往的PAL、GAL相比,FPGA/CPLD的规模比较大,适合于时序、组合等逻辑电路的应用。它可以替代几十甚至上百块通用IC芯片。这种芯片具有可编程和实现方案容易改动等特

9、点。由于芯片内部硬件连接关系的描述可以存放在磁盘、 ROM、PROM、或EPROM中,因而在可编程门阵列芯片及外围电路保持不动的情况下, 换一块EPROM芯片,就能实现一种新的功能。它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及实时在检验等优点,因此,可广泛应用于产品的原理设计和产品生产之中。几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。在现代电子系统中,数字系统所占的比例越来越大。系统发展的越势是数字化和集成化,而FPGA作为可编程ASIC(专用集成电路)器件,它将在数字逻辑系统中发挥越来越重要的作用。通用分频器

10、基本原理整数分频包括偶数分频和奇数分频,对于偶数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所示:半整数分频器设计思想:通过

11、异或门和2分频模块组成一个改变输入频率的脉冲添加电路,也就是说N-0.5个输入信号周期内产生了N个计数脉冲,即输入信号其中的一个含一个脉冲的周期变为含两个脉冲的周期。而这一改变正是输入频率与2分频输出异或的结果。由2分频输出决定一个周期产生两个脉冲有两种方式:当一个输入信号来一个脉冲(前半周期)时,2分频输出变为1,clk_in取反,后半周期就会产生一个脉冲;2分频输出由1变为0时,clk_in刚把一个周期(前半周期)内低电平变为高电平产生一个脉冲,而后半周期的脉冲与0异或不变。从而实现N-0.5分频。要实现奇数、偶数、半整数通用分频器只需再加一个控制选择信号sel。当sel=1时,clk_i

12、n与2分频输出异或,实现半整数分频;当sel=0时,只选通clk_in,实现整数分频。通用分频器原理如图2所示:Verilog语言的实现本设计采用层次化的设计方法,首先设计通用分频器中各组成电路元件,然后通过元件例化的方法,调用各元件,实现通用分频器。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计

13、数器counter_n:实现参数化设计 N可取2256,也可增加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;output7:0count; regclk_out; reg7:0count;always(posedgeclk_in)beginif(reset)begincount7:0=0;endelseif(en)beginif(count=(N-1

14、)count=0;elsecount=count1;endendalwaysbeginif(Nclk_out=count0;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;elseif(Nclk_out=count;endendmodule3、2分频模块fenpin_2:modulefenpin_2(clk_in,clk_out);inputclk_in;outputclk_out

15、;regclk_out;always(posedgeclk_in)beginclk_out=clk_out;endendmodule4、最后通过元件例化的方法,调用各元件,实现通用分频器最高层设计:modulefenpin(reset,en,sel,clk_in,clk_out,count);inputreset,en,sel,clk_in;outputclk_out;output3:0count;half_selectu1(sel,clk_in,b,c);(调用half_select,元件例化)counter_nu2(reset,en,c,clk_out,count);(调用counter_

16、n,元件例化)fenpin_2u3(clk_out,b);(调用fenpin_2,元件例化)endmodule仿真结果及硬件电路测试当sel=0,N=7时,实现奇数7分频。如图3所示当sel=1,N=7时,实现半整数6.5分频。如图4所示由此可见,只要改变异或门选通控制sel和N的值就可实现2256之间的任意奇数、偶数、半整数分频。本设计在Altera公司的FLEX系列EPF10K10LC84-3型FPGA构成的测试平台上测试通过,性能良好。 结语 本文旨在介绍一种进行FPGA开发时,所需多种分频的实现方法,如果设计中所需分频形式较多,可以直接利用本设计,通过对程序的稍微改动以满足自己设计的要

17、求。如果设计中需要分频形式较少,可以利用本设计部分程序,以节省资源。 用实现基于的通用分频器 唐晓燕 梁光胜 王 玮基于FPGA的多种形式分频的设计与实现作者:dianzi9 来源:电子技术交流网 字体:大 中小在XX搜索相关内容编辑导读:基于FPGA的32位浮点FFT处理器的设计 |将软件编译并形成有效硬件的方法 |DSPHPI口与PC104总线接口的 FPGA设计|5个不朽的法则转帖|基于FPGA的多种形式分频的设计与实现|基于FPGA和DSP的音频采集卡的实现 |PLD/FPGA结构与原理初步 |智能家庭:用可编程逻辑器件桥接各种接口标准 |红外动目标识别跟踪系统的 DSP+FPGA实现

18、|DVB-C解交织器的 FPGA实现|正文:摘要:本文通过在 Quarturs开发平台下,一种能够实现等占空比、非等占空比整数分频及半整数分频的通用分频器的 FPGA设计与实现,介绍了利用 VHDL硬件描述语言输入方式,设计数字电路的过程。关键词:FPGA;VHDL硬件描述语言;数字电路设计;分频器引言分频器是数字系统设计中的基本电路, 根据不同设计的需要, 我们会遇到偶数分频、 奇数分频、半整数分频等, 有时要求等占空比, 有时要求非等占空比。在同一个设计中有时要求多种形式的分频。通常由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频,实现较为简单。但对半整数分频及等占空比的

19、奇数分频实现较为困难。本文利用 VHDL硬件描述语言,通过Quartus3.0 开发平台,使用Altera 公司的FPGA,设计了一种能够满足上述各种要求的较为通用的分频器。一、电路设计采用FPGA实现半整数分频器,可以采用以下方法:设计一个模N的计数器,再设计一个脉冲扣除电路,每来两个脉冲扣除一个脉冲,即可实现分频系数为N-0.5的分频器。脉冲扣除电路由异或门和一个2分频器构成。本设计在半整数分频器原理的基础上,对异或门加一个使能控制信号,通过对异或门和计数器计数状态值的控制,实现同一个电路完成多种形式分频,如图1所示。二、VHDL语言的实现现通过设计一个可以实现8.5分频,等占空比的17分

20、频,2、4、8、16、32分频,及占空比为18和45的9分频等多种形式分频的分频器,介绍该通用分频器的FPGA实现。由图1所示的电路原理图可知,分频器由带使能端的异或门、模N计数器和一个2分频器组成,本设计用D触发器来完成2分频的功能,实现方法是:将触发器的Q反输出端反馈回输入端D,将计数器的一个计数输出端作为D触发器的时钟输入端。各功能模块的VHDL语言实现如下。1模N计数器的实现一般设计中用到计数器时,我们可以调用 lpm库中的计数器模块,也可以采用 VHDL语言自己设计一个模 N计数器。本设计采用 VHDL语言设计一个最大模值为 16的计数器。输入端口为:使能信号 en,复位信号 clr

21、 和时钟信号 clk;输出端口为: qa、qb、qc、qd。其VHDL语言描述略。2带使能控制的异或门的实现输入端为:xor_en:异或使能,a和b:异或输入;输出端为:c:异或输出。当xor_en为高电平时,c输出a和b的异或值。当 xor_en为低电平时,c输出信号 b。其VHDL语言略。32分频(触发器)的实现输入端为:时钟信号 clk,输入信号 d;输出端为:q:输出信号 a,q1:输出信号 a反。其VHDL语言略。4分频器的实现本设计采用层次化的设计方法, 首先设计实现分频器电路中各组成电路元件, 然后通过元件例化的方法,调用各元件,实现整个分频器。其 VHDL语言略。三、仿真结果及

22、硬件电路的测试本设计的目的是通用性和简易性,只要对上述程序稍加改动即可实现多种形式的分频。1实现8.5分频和等占空比的 17分频只要将上述程序中,调用计数器模块时端口qa、qb、qc匹配为open状态,同时置xor_en为高电平即可。从编译报告看出总共占用8个逻辑单元(logicelements),其仿真波形如图24所示。图图二图三图四由图中qxiao和clk的波形可以看出,每隔 8.5个时钟周期,qxiao信号产生一个上升沿,从而实现分频系数是 8.5的分频,同时在 qzheng端得到等占空比的 17分频。设clk 为170MHz,则qxiao输出为20MHz,qzheng输出为10MHz。

23、2实现占空比为 18和45的9分频只要上述程序的 xor_en置低电平即可在 qxiao输出占空比为 18的9分频信号;在qzheng2输出占空比为 45的9分频信号。同样仅占 8个逻辑单元(logicelements )。仿真波形如下。3实现等占空比的 2、4、8、16和32分频只要将上述程序中的xor_en置为低电平,同时将计数器模块的计数最大值设为16即可。仿真波形如下。由此可见,只要稍微改变计数器的计数状态值, 对异或门进行选通控制, 即可实现上述多种形式的分频。本设计在 Altera 公司的EP1K50QC208-3构成的测试平台上测试通过,性能良好。结束语我们在设计模拟雷达脉冲信号和用 FPGA开发扩频芯片时就用到了上述多种形式得分频。本文旨在介绍一种进行 FPGA开发时,所需多种分频的实现方法,如果设计中所需分频形式较多,可以直接利用本设计, 通过对程序的稍微改动以满足自己设计的要求。 如果设计中需要分频形式较少,可以利用本设计部分程序,以节省资源。

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

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