基于VHDL的全数字分数分频器设计

合集下载

VHDL数字系统课程设计报告-5分频器的设计

VHDL数字系统课程设计报告-5分频器的设计

图2 1
电子与信息工程系 2013 年 12 月
占空比为 1:1 的奇数分频器
(2) 占空比为 X/(2N+1)或(2N+1-X)/(2N+1)分频,用模(2N+1)计数器模块可以实 现。取 0 至 2N-1 之间一数值 X(0),当计数器时钟上升沿从 0 开始计数到 X 值时输出时钟翻 转一次,在计数器继续计数达到 2N 时,输出时钟再次翻转并对计数器置一复位信号,使之 从 0 开始重新计数,即可实现。如图 4 所示,由四个计数器生成了两个占空比 2:3 的分频 器 step1、和 step2。step1 由上升沿触发器出发,step2 由下降沿触发器出发。然后经过或 门生成占空比为 1:1 的分频器。
要设计占空比为 50%的奇数(n)倍分频器,可以先分别设计从时钟上升沿、下降沿开始 的占空比为(n-1)/2n 的分频器 A,B。将 A 与 B 相或结果就是占空比为 50%的奇数倍分频器。 因为 A,B 产生的信号的高电平持续时间均比低电平持续时间少一个时钟周期,B 相对 A 来说 可以说是延时了半个时钟,那么 A 与 B 进行或运算,则结果的高电平持续时间增加了半个时 钟周期,而低电平持续时间则减少了半个时钟周期。因此占空比达到 50%。
四、系统调试与结果............................................................................................. 4 五、主要元器件与设备......................................................................................... 5 六、课程设计体会与建议..................................................................................... 5

VHDL分频器课程设计

VHDL分频器课程设计

VHDL分频器课程设计一、课程目标知识目标:1. 学生能理解VHDL语言的基本概念,掌握VHDL语言的基本语法结构;2. 学生能掌握分频器的工作原理,了解分频器在数字系统中的应用;3. 学生能运用VHDL语言设计简单的分频器电路,并实现预期的分频功能。

技能目标:1. 学生能运用所学知识,独立完成VHDL分频器代码编写;2. 学生能通过仿真软件对所设计的分频器进行功能验证,并分析其性能;3. 学生能运用所学技能解决实际工程问题,具备一定的实践操作能力。

情感态度价值观目标:1. 学生对VHDL语言及数字系统设计产生兴趣,提高学习积极性;2. 学生通过课程学习,培养团队协作精神,提高沟通与交流能力;3. 学生在课程实践中,养成严谨、认真的学习态度,树立正确的工程观念。

课程性质:本课程为实践性较强的专业课,要求学生具备一定的数字电路基础和VHDL语言知识。

学生特点:学生处于高年级阶段,具有一定的专业基础知识和实践能力,但个体差异较大。

教学要求:结合学生特点,注重理论与实践相结合,充分调动学生的学习积极性,提高学生的实践操作能力。

在教学过程中,注重培养学生的团队协作精神和工程观念。

通过本课程的学习,使学生能够掌握VHDL分频器的设计方法,为后续相关课程的学习和实际工程应用打下坚实基础。

二、教学内容1. VHDL语言基础回顾:复习VHDL的基本语法、数据类型、信号与变量、行为描述与结构描述等基本概念,确保学生具备扎实的VHDL编程基础。

教材章节:第二章 VHDL语言基础内容列举:基本语法、数据类型、信号与变量、行为描述与结构描述2. 分频器原理及分类:介绍分频器的工作原理、分类及性能指标,使学生了解不同类型分频器的优缺点及适用场景。

教材章节:第五章 分频器设计与实现内容列举:分频器原理、分类、性能指标3. VHDL分频器设计方法:讲解基于VHDL语言的分频器设计方法,包括计数器法、移位寄存器法等,并分析各种方法的优缺点。

基于VHDL的分频器设计[开题报告]

基于VHDL的分频器设计[开题报告]

开题报告电子信息工程基于VHDL的分频器设计三、课题研究的方法及措施由于本课题所设计的分频器基于EDA技术,应用VHDL硬件语言设计完成的,因此选择合适的硬件解决原理对分频器性能至关重要的,为了满足不同系统功能需求的分频,本课题将阐述不同原理,不同分频器,同种分频不同原理的设计方案。

占空比可控的整数分设计方案,原理为计数器为带预置数的计数器,其设计的特殊之处在于:可以根据需要,调整数据的位宽,而且计数的初始值是从l开始的,此处计数初始值的设定是设计的一个创新,这样做的目的是为了配合后面比较器的工作,计数器的输出数据作为比较器的输入,比较器的另一输入作为控制端,控制高低电平的比例,从而达到占空比可调的目的。

原理图如图1所示。

图1 占空比可控的原理图部分小数分频的基本原理是采用脉冲吞吐计数器和锁相环技术先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。

如设计一个分频系数为lO.1的分频器时。

可以将分频器设计成9次10分频,1次11分频这样总的分频值为如式1所示。

F=(9×10+lxl 1)/(9+1)=10.1 (式1)从这种实现方法的特点可以看出,由于分频器的分频值不断改变.因此分频后得到的信号抖动较大。

当分频系数为N-0.5(N为整数)时,可控制扣除脉冲的时间,以使输出成为一个稳定的脉冲频率。

而不是一次N分频.一次N-1分频。

图2给出了通用小数分频器的电路组成。

图2通用小数分频器的电路组成改进的小数分频设计方案,将两个整数分频器由一个整数分频器和一个半整数分频器代替,结果在如上分析的两个性能方面都有所提高。

利用参数化的设计思想和VHDL描述语言与原理图输入方法相结合的方式,设计并实现了一种抖动性能好且通用性强的小数分频器。

其原理图如下图3。

图3改进小数分频原理图四、课题研究进度计划毕业设计期限:自2011年12月10日至2012年3月10日。

基于VHDL数控分频器设计

基于VHDL数控分频器设计

目录一、设计任务与要求 (3)二、总体框图 (3)三、选择器件 (4)四、功能 (5)1、数控分频器 (5)2、BCD译码器 (6)3、扫描器 (11)4、3-8译码器 (13)5、7段数码管显示译码器 (16)五、总体设计电路图 (19)1总体(顶层)电路原理图 (19)2仿真结果 (19)3管脚分配图 (20)4.硬件连接情况 (20)六.心得体会 (20)数控分频器设计一、设计任务与要求数控分频器的功能就是当输入端给定不同输入数据时,将对输入的时钟信号有不同的分频比,以实现所需的输出频率。

基本功能:1、实现8位分频器,依据输入的8位2进制数的不同,有不同的分频比。

如输入10010000,即对输入的时钟信号进行144分频,如输入01001000,即对输入的时钟信号进行72 分频。

2、输出的波形应为占空比位50%的方波。

3、有显示功能,显示当前的分频比,即,输入的二进制数的大小。

总体框图设计思路:数控分频器用计数值可并行预置的加法器设计完成,当在输入端给定不同输入数据时将对输入的时钟信号有不同的分频比。

把输入端输入的八位二进制数直接通过BCD译码器转换为十位BCD码表示的十进制数,通过扫描器对3个数码管进行选通扫描,最后7段数码管显示译码器对选中数码管的赋值进行译码,并驱动数码管显示该数据。

模块的功能:1、数控分频器:实现8位分频器,依据输入的8位2进制数的不同,有不同的分频比。

如输入10010000,即对输入的时钟信号进行144分频。

2、BCD译码器:把输入端的8位2进制数转换成10位BCD码表示的十进制数。

3、扫描器:when “000”=>daout<=dout(3 downto 0);when “001”=>daout<=dout(7 downto 4);when “010”=>daout<=dout(3 downto 2)<="00";daout(1 downto 0)<=dout(9 downto 8);when others=>null;4、3-8译码器:当sel=0时,q=11111110;选择个位数码管亮。

基于VHDL的分频电路

基于VHDL的分频电路
基于VHDL的分频电路 分频电路介绍
CPLD/FPGA与单片机相比,一个明显得优势就在于它的高速性。但很多外围器件的驱 动都需要低频的时钟(若时钟频率太高,则键盘扫描就会出错,七段数码管会闪烁和不稳 定就是最好的例子),所以经常需要用到分频电路。常见的分频电路为偶数倍分频和奇数 倍分频两种。下面对8分倍分频电路用VHDL做简单介绍。 方案设计 如果系统有一个200KHz的时钟,系统要求将其分为100KHz,50KHz,25KHz,并且 4 在这4个频率时钟中选择一个作为输出。下面给出两种设计方案: 1.设计一个2分频电路、一个4分频电路、一个8分频电路,直接从200KHz分频到所需要的 几个频率的时钟信号(如图1所示)。 2.只设计一个2分频电路,用3个2分频电路级联的方式,从200KHz逐级分出所需要的时钟 信号(如图2所示)。
图1
图2
下面用VHDL设计一个2分频电路: library ieee; use ieee.std_logic_1164.all; entity FreDevider is port (clock:in std_logic; clockout:out std_logic ); end; architecture behavior of FreDevider is signal clk:std_logic; begin process(clock) begin if rising_edge(clock) then clk<=not clk; end if; end process; clockout<=clk; end;
//元件端口 //元件行为描述
library ieee; use ieee.std_logic_1164.all; entity fredevider2 is port( clock:in std_logic; clockout:out std_logic ); end; architecture dcider of fredevider2 is constant N:integer:=3; signal counter:integer range 0 to N; signal clk:std_logic; begin process(clock) begin if rising_edge(clock) then if counter=N then counter<=0; clk<=not clk; else counter<=counter+1; end if; end if; end process; clockout<=clk; end;

实验六 基于VHDL语言的分频器设计与实现

实验六 基于VHDL语言的分频器设计与实现

实验六基于VHDL语言的分频器设计与实现报告一、实验目的1、进一步掌握VHDL语言的基本结构及设计的输入方法。

2、掌握VHDL基本逻辑电路的综合设计应用。

二、实验原理在数字电路系统中,分频电路应用得十分广泛。

例如,工程人员常常使用分频电路来得到数字通信中的帧头信号、选通信号以及中断信号等。

因此,分频电路在数字电路系统的设计中也应该作为重要的基本电路来掌握,从而给今后的一些设计带来方便。

三、实验内容1、设计并实现一个6分频的分频电路,要求其输出信号的占空比为50%。

请分析分频电路设计原理并编写VHDL语言程序,利用Max+PlusII开发软件对其进行编译和仿真。

6分频电路实现程序代码如下:2、在实际数字电路设计过程中,往往需要得到占空比不是1:1的分频时钟,方法是:首先描述一个计数器电路,然后根据计数器电路的并行输出信号来决定输出时钟的高低电平。

请设计、编写VHDL 语言程序实现分频后时钟信号的占空比为1:15的16分频电路,并利用Max+PlusII开发软件对其进行编译和仿真。

四、实验设计1.程序代码:图library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity clk_div6 isport(clk:in std_logic;clk_out:out std_logic);end clk_div6;architecture rtl of clk_div6 issignal clk_temp:std_logic;beginprocess(clk)variable counter:integer range 0 to 15;constant md:integer:=2;beginif clk'event and clk='1'thenif counter=md thencounter:=0;clk_temp<=not clk_temp;elsecounter:=counter+1;end if;end if;end process;clk_out<=clk_temp;end rtl;2.仿真结果:五、实验结果分析本实验利用VHDL语言设计分频电路,目的在于进一步掌握VHDL语言的基本结构及设计的输入方法,掌握VHDL基本逻辑电路的综合设计应用。

(VHDL实验报告)模值12计数器、分频器的设计

(VHDL实验报告)模值12计数器、分频器的设计

电子科技大学成都学院学院指导教师模值12计数器,分频器设计二、实验目的1、了解二进制计数器的工作原理。

2、时钟在编程过程中的作用。

3、学习数控分频器的设计、分析和测试方法。

4、了解和掌握分频电路实现的方法。

5、掌握EDA技术的层次化设计方法。

三、实验原理(1)二进制计数器中应用最多、功能最全的计数器之一,含异步清零和同步使能的加法计数器的具体工作过程如下:在时钟上升沿的情况下,检测使能端是否允许计数,如果允许计数(定义使能端高电平有效)则开始计数,否则一直检测使能端信号。

在计数过程中再检测复位信号是否有效(低电平有效),当复位信号起作用时,使计数值清零,继续进行检测和计数。

其工作时序如下图所示:(2)数控分频器的功能就是当输入端给定不同的输入数据时,将对输入的时钟信号有不同的分频比,数控分频器就是用计数值可并行预置的加法计数器来设计完成的,方法是将计数溢出位与预置数加载输入信号相接得到。

(1)“模值12计数器的设计”的实验要求完成的任务是在时钟信号的作用下,通过使能端和复位信号来完成加法计数器的计数。

实验中时钟信号使用数字时钟源模块的1HZ信号,用一位拨动开关K1表示使能端信号,用复位开关S1表示复位信号,用LED模块的LED1~LED4来表示计数的二进制结果。

实验L ED 亮表示对应的位为‘1’,LED灭表示对应的位为‘0’。

通过输入不同的值模拟计数器的工作时序,观察计数的结果。

实验箱中的拨动开关、与FPGA 的接口电路,LED 灯与FPGA 的接口电路以及拨动开关、LED 与F PGA 的管脚连接在实验一中都做了详细说明,这里不在赘述。

数字时钟信号模块的电路原理如下图所示,其时钟输出与F PGA 的管脚连接表如下图所示:信号名称对应FPGA 管脚名说明DIGITAL-CLK C13 数字时钟信号送至FPGA 的C13按键开关模块的电路原理如下图所示:按键开关的输出与F PGA 的管脚连接表如下图所示:五、实验步骤(一)模值12计数器的设计1、建立工程文件1)运行QUARTUSII 软件。

分频器设计 VHDL

分频器设计 VHDL

实验报告课程名称电子设计自动化实验(基于FPGA)实验项目分频器设计(计数器设计)实验仪器计算机+ Quartus Ⅱ9.1系别信息与通信工程学院专业通信工程班级/学号学生姓名实验日期2012、5成绩_______________________ 指导教师_______________________分频器设计(计数器设计)利用VHDL语言,设计一个输入1MHz脉冲,分频后能产生100kHz、10kHz、1kHz、100Hz、10Hz、1Hz时钟脉冲产生电路。

(1)实验要求①利用VHDL语言编程;②利用仿真软件进行功能仿真;③编程下载到EP1C6Q240C8器件中,利用EDA/SOPC实验装置进行验证。

(2)实验设计注意事项实验要求每相差十倍频率都有脉冲输出,故采用十进制计数器对信号分频设计方法较为简单。

将十进制计数器做成COMPONENT,利用元件例化语句实现调用。

电路采用异步工作方式。

(3)VHDL代码LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_arith.all;USE IEEE.std_logic_unsigned.all;ENTITY fenpin10 ISPORT(i:in std_logic;o:inout std_logic);END ENTITY;ARCHITECTURE func OF fenpin10 ISSIGNAL count:std_logic_vector(3 downto 0);SIGNAL tmp:std_logic;BEGINPROCESS(i)BEGINIF(i'EVENT AND i = '1') THENIF(count = "1001") THEN --当计数满9时进位count <= (OTHERS => '0');tmp <= NOT tmp;ELSEcount <= count + 1;END IF;END IF;END PROCESS;o <= tmp;END ARCHITECTURE;LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_arith.all;USE IEEE.std_logic_unsigned.all;ENTITY fenpin ISPORT(clk:in std_logic;div_10:buffer std_logic;div_100:buffer std_logic;div_1000:buffer std_logic;div_10000:buffer std_logic;div_100000:buffer std_logic;div_1000000:buffer std_logic);END ENTITY;ARCHITECTURE func OF fenpin ISCOMPONENT fenpin10 --元件例化PORT(i:in std_logic;o:inout std_logic);END COMPONENT;SIGNAL x0,x1,x2,x3,x4,x5:std_logic;BEGINu1:fenpin10 PORT MAP(i => clk, o => x0);u2:fenpin10 PORT MAP(x0, x1);u3:fenpin10 PORT MAP(x1, x2);u4:fenpin10 PORT MAP(x2, x3);u5:fenpin10 PORT MAP(x3, x4);u6:fenpin10 PORT MAP(x4, x5);div_10 <= x0;div_100 <= x1;div_1000 <= x2;div_10000 <= x3;div_100000 <= x4;div_1000000 <= x5;END ARCHITECTURE;(4)仿真结果未下载验证、调试,如发现错误,见谅!——Higashi Q83831295。

使用VHDL进行任意整数分频器设计摘要

使用VHDL进行任意整数分频器设计摘要

使用VHDL进行任意整数分频器设计摘要分频器是数字电路中最常用的电路之一,在FPGA的设计中也是使用效率非常高的基本设计。

基于FPGA实现的分频电路一般有两种方法:一是使用FPGA芯片内部提供的锁相环电路,如ALTERA提供的PLL(Phase Locked Loop),Xilinx 提供的DLL(Delay Locked Loop);二是使用硬件描述语言,如VHDL、Verilog HDL 等。

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

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

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

本文使用实例描述了FPGA/CPLD上使用VHDL进行分频器设计,将奇数分频,和偶数分频结合起来,可以实现50%占空比任意正整数的分频,并在仿真中实现了将50MHZ的信号分频。

总体方案设计:首先定义8个输入端来选择是n分频然后分别写出偶数分频和奇数分频,最后再判断输入的8位是奇数还是偶数,选择相应的分频。

偶数分频:一般来说有两种方案:一是当计数器计数到N/2-1时,将输出电平进行一次翻转,同时给计数器一个复位信号,如此循环下去;二是当计数器输出为0到N/2-1时,时钟输出为0或1,计数器输出为N/2到N-1时,时钟输出为1或0N-1时,复位计数器,如此循环下去。

需要说明的是,第一种方案仅仅能实现占空比为50%的分频器,第二种方案可以有限度的调整占空比,也可以实现非50%占空比的奇数分频。

奇数分频:实现占空比为50%的2N+1分配器,则需要对待分频时钟上升沿和下降沿分别进行N/(2N+1)分频,然后将两个分频所得的时钟信号相或,即可得到占空比为50%的2N+1分频器。

VHDL语言如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity fp isgeneric (data_width : integer := 8 );port(input : in std_logic_vector(data_width-1 downto 0);clk_in : in std_logic;clk_out : out std_logic);end entity fp;architecture div of fp issignal clk_outQ : std_logic ;signal coutQ : std_logic_vector (data_width - 1 downto 0); signal cout1,cout2 : std_logic_vector(data_width - 1 downto 0); signal clk1,clk2 : std_logic;signal a : std_logic;begin-------------------------------------------------process(clk_in)beginif clk_in'event and clk_in = '1' thenif coutQ < (conv_integer(input) - 1) thencoutQ <= coutQ + 1;else coutQ <= (others => '0');end if;end if;end process;---------------------------------------------------process(coutQ)beginif coutQ < (conv_integer(input))/2 thenclk_outQ <= '0';else clk_outQ <= '1';end if;end process;---------------------------------------------------process(clk_in)------rising edgebeginif clk_in'event and clk_in='1' thenif cout1 < (conv_integer(input)-1) thencout1 <= cout1 + 1;else cout1 <= (others => '0');end if;if cout1 < (conv_integer(input)-1)/2 thenclk1 <= '1';else clk1 <= '0';end if;end if;end process;---------------------------process(clk_in)------falling edgebeginif clk_in'event and clk_in='0' thenif cout2 < (conv_integer(input)-1) thencout2 <= cout2 + 1;else cout2 <= (others => '0');end if;if cout2 < (conv_integer(input)-1)/2 thenclk2 <= '1';else clk2 <= '0';end if;end if;end process;---------------------------process(clk_outQ,clk1,clk2)beginif ((conv_integer(input) mod 2)=0) then clk_out <= clk_outQ;elseclk_out <= clk1 or clk2;end if;end process;end architecture div;仿真结果:待分频信号采用50MHZ(周期20ns)的方波。

VHDL任意整数的分频器的设计(从1到任意位).docx

VHDL任意整数的分频器的设计(从1到任意位).docx

1、按键去抖电路的设计、按键电路常用的非编码键盘,每个键都是一个常开开关电路计数器输入脉冲最好不要直接接普通的按键开关, 因为记数器的记数速度非 常快,按键、触点等接触时会有多次接通和断开的现象。

我们感觉不到,可是记 数器却都记录了下来。

例如,虽然只按了 1下,记数器可能记了 3下。

因此,使 用按键的记数电路都会增加单稳态电路避免记数错误。

P1.0P1.1P1.2 P1.3、按键消抖通常的按键所用开关为机械弹性开关,当机械触点断开、闭合时,电压信号小 型如下图。

由于机械触点的弹性作用,一个按键开关在闭合时不会马上稳定地接 通,在断开时也不会一下子断开。

因而在闭合及断开的瞬间均伴随有一连串的抖 动,如下图。

抖动时间的长短由按键的机械特性决定,一般为5ms- 10ms 这是一 个很重要的时间参数,在很多场合都要用到。

按键稳定闭合时间的长短则是由操作人员的按键动作决定的 ,一般为零点几 秒至数秒。

键抖动会引起一次按键被误读多次。

为确保CPU 寸键的一次闭合仅作 一次处理,必须去除键抖动。

在键闭合稳定时读取键的状态,并且必须判别到键释 放稳定后再作处理。

按键的抖动,可用硬件或软件两种方法。

AT89S51VCC丄2 3 4、硬件消抖在键数较少时可用硬件方法消除键抖动。

下图所示的RS触发器为常用的硬~1 1~无弹跳件去抖图中两个“与非”门构成一个RS触发器。

当按键未按下时,输出为1;当键按下时,输出为0。

此时即使用按键的机械性能,使按键因弹性抖动而产生瞬时断开(抖动跳开B),中要按键不返回原始状态A,双稳态电路的状态不改变,输出保持为0,不会产生抖动的波形。

也就是说,即使B点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形波。

这一点通过分析RS触发器的工作过程很容易得到验证。

利用电容的放电延时,采用并联电容法,也可以实现硬件消抖:四、软件延时消抖如果按键较多,常用软件方法去抖,即检测出键闭合后执行一个延时程序产生5ms- 10ms的延时,让前沿抖动消失后再一次检测键的状态,如果仍保持闭合状态电平,则确认为真正有键按下。

分频器设计 VHDL

分频器设计 VHDL

实验报告课程名称电子设计自动化实验(基于FPGA)实验项目分频器设计(计数器设计)实验仪器计算机+ Quartus Ⅱ9.1系别信息与通信工程学院专业通信工程班级/学号学生姓名实验日期2012、5成绩_______________________ 指导教师_______________________分频器设计(计数器设计)利用VHDL语言,设计一个输入1MHz脉冲,分频后能产生100kHz、10kHz、1kHz、100Hz、10Hz、1Hz时钟脉冲产生电路。

(1)实验要求①利用VHDL语言编程;②利用仿真软件进行功能仿真;③编程下载到EP1C6Q240C8器件中,利用EDA/SOPC实验装置进行验证。

(2)实验设计注意事项实验要求每相差十倍频率都有脉冲输出,故采用十进制计数器对信号分频设计方法较为简单。

将十进制计数器做成COMPONENT,利用元件例化语句实现调用。

电路采用异步工作方式。

(3)VHDL代码LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_arith.all;USE IEEE.std_logic_unsigned.all;ENTITY fenpin10 ISPORT(i:in std_logic;o:inout std_logic);END ENTITY;ARCHITECTURE func OF fenpin10 ISSIGNAL count:std_logic_vector(3 downto 0);SIGNAL tmp:std_logic;BEGINPROCESS(i)BEGINIF(i'EVENT AND i = '1') THENIF(count = "1001") THEN --当计数满9时进位count <= (OTHERS => '0');tmp <= NOT tmp;ELSEcount <= count + 1;END IF;END IF;END PROCESS;o <= tmp;END ARCHITECTURE;LIBRARY IEEE;USE IEEE.std_logic_1164.all;USE IEEE.std_logic_arith.all;USE IEEE.std_logic_unsigned.all;ENTITY fenpin ISPORT(clk:in std_logic;div_10:buffer std_logic;div_100:buffer std_logic;div_1000:buffer std_logic;div_10000:buffer std_logic;div_100000:buffer std_logic;div_1000000:buffer std_logic);END ENTITY;ARCHITECTURE func OF fenpin ISCOMPONENT fenpin10 --元件例化PORT(i:in std_logic;o:inout std_logic);END COMPONENT;SIGNAL x0,x1,x2,x3,x4,x5:std_logic;BEGINu1:fenpin10 PORT MAP(i => clk, o => x0);u2:fenpin10 PORT MAP(x0, x1);u3:fenpin10 PORT MAP(x1, x2);u4:fenpin10 PORT MAP(x2, x3);u5:fenpin10 PORT MAP(x3, x4);u6:fenpin10 PORT MAP(x4, x5);div_10 <= x0;div_100 <= x1;div_1000 <= x2;div_10000 <= x3;div_100000 <= x4;div_1000000 <= x5;END ARCHITECTURE;(4)仿真结果未下载验证、调试,如发现错误,见谅!——Higashi Q83831295。

使用VHDL进行分频器设计

使用VHDL进行分频器设计

使用VHDL 进行分频器设计作者:ChongyangLee摘要使用VHDL 进行分频器设计作者:ChongyangLee本文使用实例描述了在FPGA/CPLD 上使用VHDL 进行分频器设计,包括偶数分频、非50%占空比和50%占空比的奇数分频、半整数(N+0.5)分频、小数分频、分数分频以及积分分频。

所有实现均可通过Synplify Pro 或FPGA 生产厂商的综合器进行综合,形成可使用的电路,并在ModelSim 上进行验证。

目录概述 (1)计数器 (1)普通计数器 (1)约翰逊计数器 (3)分频器 (4)偶数分频器 (4)奇数分频器 (6)半整数分频器 (9)小数分频器 (11)分数分频器 (15)积分分频器 (18)概述分频器是数字电路中最常用的电路之一,在FPGA 的设计中也是使用效率非常高的基本设计。

基于FPGA 实现的分频电路一般有两种方法:一是使用FPGA 芯片内部提供的锁相环电路,如ALTERA 提供的PLL (Phase Locked Loop),Xilinx 提供的DLL(Delay Locked Loop);二是使用硬件描述语言,如VHDL、Verilog HDL 等。

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

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

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

计数器计数器是实现分频电路的基础,计数器有普通计数器和约翰逊计数器两种。

这两种计数器均可应用在分频电路中。

普通计数器最普通的计数器是加法(或减法)计数器。

下面是加法计数器的VHDL实现,其Synplify Pro下的RTL View如图1所示。

--file Name: ripple.vhd--Description: 带复位功能的加法计数器library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity ripple isgeneric (width: integer := 4);port(clk, rst: in std_logic;cnt: out std_logic_vector(width - 1 downto 0));end ripple;architecture a of ripple issignal cntQ: std_logic_vector(width - 1 downto 0);beginprocess(clk, rst)beginif (rst = '1') thencntQ <= (others => '0');elsif (clk'event and clk = '1') thencntQ <= cntQ + 1;end if ; end process ;cnt <= cntQ;end a;代码 1 加法计数器 VHDL 代码图 1 加法计数器 RTL 视图加法计数器的Test Bench 代码如下所示,在ModelSim 下进行功能仿真,仿真 波形结果如图 2所示。

VHDL数字系统课程设计报告-5分频器的设计

VHDL数字系统课程设计报告-5分频器的设计

图2 1
电子与信息工程系 2013 年 12 月
占空比为 1:1 的奇数分频器
(2) 占空比为 X/(2N+1)或(2N+1-X)/(2N+1)分频,用模(2N+1)计数器模块可以实 现。取 0 至 2N-1 之间一数值 X(0),当计数器时钟上升沿从 0 开始计数到 X 值时输出时钟翻 转一次,在计数器继续计数达到 2N 时,输出时钟再次翻转并对计数器置一复位信号,使之 从 0 开始重新计数,即可实现。如图 4 所示,由四个计数器生成了两个占空比 2:3 的分频 器 step1、和 step2。step1 由上升沿触发器出发,step2 由下降沿触发器出发。然后经过或 门生成占空比为 1:1 的分频器。
七、参考文献
[1] 夏宇闻. Verilog 数字系统设计教程. 北京: 北京航空航天大学出版社,2008 年; [2] 张继刚、李维忠. 现代电子技术. 内蒙古工业大学,2008 年,31(6); [3] 刘宝琴. 数字电路与系统[M]. 北京:清华大学出版社,1993 年; [4] 陈高峰等编. 数字电子技术基础. 安徽大学电子信息工程学院,2012 年; [5] 谈艳云、罗志强.电子技术基础. 北京:北京航空航天大学,2002 年,23(6)。
安康学院
HDL 数字系统课程设计报告书
课题名称: 占空比为 1:1 的奇数分频器设计 姓 名: 学 号: 院 系: 专 业: 指导教师: 时 间:
课程设计项目成绩评定表
设计项目成绩评定表
一、设计任务及要求: 1、设计任务:
设计一个占空比为 1:1 的奇数分频器逻辑电路。
2、要 求:
1、设计分频器的分频系数为 5。 2、设计分频器占空比为 1:1。 3、设计分频器为 5 分频器。 4、设计分频器输入信号:时钟信号 CLK。

一种基于Verilog代码的任意分数分频器的设计

一种基于Verilog代码的任意分数分频器的设计

一种基于Verilog代码的任意分数分频器的设计任青莲;李东红【摘要】分频器是数字系统设计中最常见的单元电路,对高稳定和准确的基准时钟源进行不同倍数的分频,以得到同样稳定和准确的信号,为各模块提供所需的时钟频率.介绍了一种分数分频器的实现方法,该分频器能对时钟源信号进行任意分数或小数倍分频,给出了该方法的设计原理及实现的Verilog代码,并利用QuartusⅡ软件进行了仿真,仿真波形与硬件结果都验证了设计的正确性.该方法结构简单,可避免出现竞争冒险和毛刺问题,并且修改方便,具有很好的可移植性,对任何分频器的设计都具有一定的借鉴意义.【期刊名称】《山西电子技术》【年(卷),期】2016(000)005【总页数】3页(P20-22)【关键词】分数分频;Verilog;设计;仿真【作者】任青莲;李东红【作者单位】太原科技大学电子信息工程学院,山西太原030024;太原科技大学电子信息工程学院,山西太原030024;太原科技大学华科学院,山西太原030024【正文语种】中文【中图分类】TN74分频器广泛应用于近代电子系统中,是近代通信系统的重要组成单元电路。

它利用一个高稳定和高准确度的基准频率产生出一系列等间隔的离散频率信号,这些离散频率信号与基准频率具有同样的稳定度和准确度。

分频器有整数分频和分数分频。

当所需频率与给定基准频率不成整数关系时,或需要对输入信号频率微调整时,可采用分数分频器进行分频。

分数分频器输出频率的精度为分频比的小数部分和参考时钟频率的乘积,这样在参考时钟很大时,小数部分如果很小,仍可以得到很小的频率分频率。

本文介绍一种基于Verilog代码的任意分数分频器的设计方法,给出其设计原理和实现方法,该方法可以很方便地实现各种分数分频,而且结构简单,修改也很方便。

与传统的分数分频器相比,可避免出现竞争冒险和毛刺问题[1-3]。

假设基准时钟源的频率为fin,期望得到的输出频率为fout,则其分频比为:根据:可得分数分频是通过可变分频比和多次平均的方法实现的。

基于VHDL的计数与分频的实现

基于VHDL的计数与分频的实现

基于VHDL的各种分频、计数与按键控制的实现本系统利用两种分频可实现多种计数,按键控制数码管闪烁系统框图分频LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;-- Entity DeclarationENTITY flash IS-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!PORT(key_in : IN STD_LOGIC;flash_out : OUT STD_LOGIC);-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!END flash;-- Architecture BodyARCHITECTURE flash_architecture OF flash ISsignal key_cnt: std_logic_vector(1 downto 0);BEGINprocess(key_in)beginif key_in 'event and key_in='0' thenif key_cnt="11" thenkey_cnt<="00";elsekey_cnt<=key_cnt+1;end if;end if;end process;flash_out<='0' when key_cnt(0)='0'else '1' when key_cnt(0)='1'else '1';END flash_architecture;LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;-- Entity DeclarationENTITY div_4m_1hz IS-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!PORT(clk : IN STD_LOGIC;q : OUT STD_LOGIC);-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! END div_4m_1hz;-- Architecture BodyARCHITECTURE div_4m_1hz_architecture OF div_4m_1hz IS signal tmp:std_logic_vector(21 downto 0);BEGINprocess(clk)beginif clk'event and clk='1' thentmp<=tmp+1;end if;end process;q<=tmp(21);END div_4m_1hz_architecture;按键控制LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;-- Entity DeclarationENTITY flash IS-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!PORT(key_in : IN STD_LOGIC;flash_out : OUT STD_LOGIC);-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!END flash;-- Architecture BodyARCHITECTURE flash_architecture OF flash ISBEGINprocess(key_in)beginif key_in 'event and key_in='0' thenif key_cnt="11" thenkey_cnt<="00";elsekey_cnt<=key_cnt+1;end if;end if;end process;flash_out<='0' when key_cnt(0)='0'else '1' when key_cnt(0)='1'else '1';END flash_architecture;LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;-- Entity DeclarationENTITY flash IS-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!PORT(key_in : IN STD_LOGIC;flash_out : OUT STD_LOGIC);-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! END flash;-- Architecture BodyARCHITECTURE flash_architecture OF flash ISBEGINprocess(key_in)beginif key_in 'event and key_in='0' thenif key_cnt="11" thenkey_cnt<="00";elsekey_cnt<=key_cnt+1;end if;end if;end process;flash_out<='0' when key_cnt(0)='0'else '1' when key_cnt(0)='1'else '1';END flash_architecture;计数LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;-- Entity DeclarationENTITY js10 IS-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!PORT(js10in : IN STD_LOGIC;key_set:IN STD_LOGIC;js10out : OUT STD_LOGIC_vector(3 downto 0);jw : OUT STD_LOGIC);-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! END js10;-- Architecture BodyARCHITECTURE js10_architecture OF js10 ISsignal cnt:std_logic_vector(3 downto 0);BEGINprocess(js10in,key_set)beginif key_set='1' thencnt<=cnt;elsif rising_edge(js10in) thenif cnt= "1001" thencnt<= "0000";jw<='1';elsecnt<=cnt+1;jw<='0';end if;end if;end process;js10out<=cnt;END js10_architecture;LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;-- Entity DeclarationENTITY js6 IS-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!PORT(js6in : IN STD_LOGIC;key_set:IN STD_LOGIC;js6out : OUT STD_LOGIC_vector(2 downto 0);jw : OUT STD_LOGIC);-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!END js6;-- Architecture BodyARCHITECTURE js6_architecture OF js6 ISsignal cnt:std_logic_vector(2 downto 0);BEGINprocess(js6in,key_set)beginif key_set='0' thencnt<=cnt;elsif rising_edge(js6in) thenif cnt= "101" thencnt<= "000";jw<='1';elsecnt<=cnt+1;jw<='0';end if;end if;end process;js6out<=cnt;END js6_architecture;译码显示LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;-- Entity DeclarationENTITY ymq_38 IS-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!PORToe : IN STD_LOGIC;clk:in std_logic;in4 : IN STD_LOGIC_vector(3 downto 0);out8 : OUT STD_LOGIC_vector(7 downto 0) );-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE!END ymq_38;-- Architecture BodyARCHITECTURE a OF ymq_38 ISsignal out8_r:STD_LOGIC_vector(7 downto 0);BEGINprocess(in4)begincase in4 iswhen "0000"=>out8_r<="11000000";when "0001"=>out8_r<="11001111";when "0010"=>out8_r<="10100100";when "0011"=>out8_r<="10110000";when "0100"=>out8_r<="10011001";when "0101"=>out8_r<="10010010";when "0110"=>out8_r<="10000010";when "0111"=>out8_r<="11111000";when "1000"=>out8_r<="10000000";when "1001"=>out8_r<="10010000";when others =>out8_r<="11111111";end case;end process;process(clk,oe)beginif oe='1' thenif clk='1' thenout8<=out8_r;elseout8<="11111111";end if;elseout8<=out8_r;end process;END a;LIBRARY ieee;USE ieee.std_logic_1164.all;USE ieee.std_logic_arith.all;USE ieee.std_logic_unsigned.all;-- Entity DeclarationENTITY ymq38 IS-- {{ALTERA_IO_BEGIN}} DO NOT REMOVE THIS LINE!PORT(ymq38in : IN STD_LOGIC_vector(2 downto 0);oe : IN STD_LOGIC;clk:in std_logic;ymq38out : OUT STD_LOGIC_vector(7 downto 0) );-- {{ALTERA_IO_END}} DO NOT REMOVE THIS LINE! END ymq38 ;-- Architecture BodyARCHITECTURE b OF ymq38 ISsignal ymq38out_r:STD_LOGIC_vector(7 downto 0);BEGINprocess(ymq38in)begincase ymq38in iswhen "000"=>ymq38out_r<="11000000";when "001"=>ymq38out_r<="11001111";when "010"=>ymq38out_r<="10100100";when "011"=>ymq38out_r<="10110000";when "100"=>ymq38out_r<="10011001";when "101"=>ymq38out_r<="10010010";when "110"=>ymq38out_r<="10000010";when others =>ymq38out_r<="11111111";end case;end process;process(clk,oe)beginif oe='1' thenif clk='1' thenymq38out<=ymq38out_r;elseymq38out<="11111111";end if;elseymq38out<=ymq38out_r; end if;end process;END b;。

Verilog HDL分频器设计报告

Verilog HDL分频器设计报告

2011-2012第二学期专业选修课HDL语言应用与设计课程设计报告Veriog HDL分频器设计报告设计时间:2012.4班级:信科09-2姓名:程雷学号:08093534指导老师:王冠军一、设计目的和要求:目的:1、学会使用Quantus软件(编译、仿真等),并利用它进行设计一些简单的数字电路;2、利用实验室提供的FPGA/CPLD实验箱,结合Quantus II软件实现分频器的功能。

要求:分频器可以简单实用的设置分频系数。

二、实验器件和环境实验室提供的FPGA/CPLD实验箱,PC机和Quantus II软件。

三、设计方案和源程序代码首先分析分频器要实现的功能,然后确定他的基本结构,因为分频器的基本功能要使其分频的的功能可以控制,所以要有控制使能端口;分频器的分频系数可以自由选择,所以应有分频系数设置使能端;分频之后可以输出分频之后的频率,所以应该有输出端口。

本本设计只是任意整数分频器。

1、偶数倍分频:偶数倍分频,通过计数器计数是完全可以实现的。

如进行N 倍偶数分频,那么可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。

以此循环下去。

这种方法可以实现任意的偶数分频。

原理:比如4分频,需要一个模4的计数器,占空比50%,计数为0~3循环,当计数到一半时,即计数输出cnt<2时翻转。

例题代码如下://四分频module div4(clk,rst_n,o_clk);input clk,rst_n;output o_clk;reg o_clk;reg [1:0]cnt;always @(posedge clk or negedge rst_n)beginif(!rst_n)cnt<=0;else if(cnt==3)cnt<=0;elsecnt<=cnt+1;endalways @(posedge clk or negedge rst_n)beginif(!rst_n)o_clk<=0;else if(cnt<2)o_clk<=1;elseo_clk<=0;endendmodule仿真结果:2、奇数倍分频:奇数倍分频有两种实现方法:首先,完全可以通过计数器来实现,如进行三分频,通过待分频时钟上升沿触发计数器进行模三计数,当计数器计数到邻近值进行两次翻转,比如可以在计数器计数到1时,输出时钟进行翻转,计数到2时再次进行翻转。

基于VHDL的全数字分数分频器设计

基于VHDL的全数字分数分频器设计

基于VHDL的全数字分数分频器设计
尹辉炳;张涛
【期刊名称】《科学技术与工程》
【年(卷),期】2006(006)012
【摘要】介绍了全数字化的分数分频器的两种设计方法,分析了它们的特点,然后采用VHDL硬件描述语言设计了全数字化的分数分频器,并且给出了设计任意分数分频器的方法.
【总页数】4页(P1609-1611,1616)
【作者】尹辉炳;张涛
【作者单位】中国科学院上海技术物理研究所,上海,200083;中国科学院上海技术物理研究所,上海,200083
【正文语种】中文
【中图分类】TN742.1
【相关文献】
1.基于VHDL的半整数分频器的设计 [J], 林海波
2.基于VHDL的数控分频器设计及应用 [J], 郭海青
3.基于VHDL的小数分频器设计 [J], 李慧
4.基于VHDL的占空比可调奇分频器设计 [J], 薛开伍
5.基于VHDL的分频器设计方案探讨 [J], 程佳佳
因版权原因,仅展示原文概要,查看原文内容请购买。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
前向通道中分频器实现方式主要影响输出波 形的占空比.若前向通道采用D触发器.则输出波形 趋于对称,通常输出波形占空比为N:N或者Ⅳ:fⅣ+11, 具体情况由输出波形的周期相对于输入波形周期 的倍数是否为整数决定。若输出波形的周期为 输入周期的整数倍.则输出波形占空比为N:N, 否则为Ⅳ:(N+I)。
若前向通道采用模Ⅳ计数器实现.则输出波形 高电平占0.5或者1个输入波形周期宽度,具体是0.5 还是1.同样由输出波形周期是否为输入波形周期 的整数倍决定。若为整数倍,则占1个输入波形周期 宽度.否则占0.5个。
图4是前向通道采用了2个D触发器级联实现4 分频的仿真结果,输出波形elk—out占空比为3:4或者 4:4.分别对应于输出周期为输入周期的3.5倍与4倍 的情况。
m=b一(Ⅱrood b),
F。,,=I…a/5]+1,
疋=[胡],
(、 37 )
/z=a rood b
其中f.]表示取整,o mod 6表示求。除以b的余数。 如要设计一个5.1分频的分频器。则昭51,6=10,所
以由式(3)可得m=9,E---6,F。=5,n=l。 2.2任意分数分频器的实现
分频器的实现主要由两个模块实现.一个模块 是可预置数的可控双模分频器.另一个模块是可预
万方数据
其慨。=志≯。^=寿。
网2 3.5分频器仿真波j髟
采用VHDL语言设计上述电路(令N=4).并进行 仿真得到波形如图2所示.图中clk in为输入波形.比
锨五和clk—in可以得出:勘的每个周期中f.kgclk.in少
一个正脉冲。但是.观察模Ⅳ计数器输出temp.就可 以发现,实际上在矗的每个周期中£是ELelkin多了一个 正脉冲j分析如下:没此时刻为图中五的第一个高电 平下降沿前一刻,^=1,然后clk in由1变为0,导致异 或门的输出£变为1,£的上升沿使模Ⅳ(模4)计数器 计数.计数器结果加1。由于计数器计到了最大值, 故clk out输出高电平1.elk out的上升沿又促使2分频 器工作,使磊由1变为0,然后兀反馈回异或门得输人 端,与ckl in通过异或门使7:变为0.反馈使得‘由0变 为1.以后经过一段时问又返回0。
第6卷第12期2006年6月
1671—1815 f2006112—1609—04
通信技术
科学技术与工程
Science Technology and Engineering
V01.6 No.12 Jun.2006 ⑥ 2006 Sci.Tech.Engng.
基于VHDL的全数字分数分频器设计
尹辉炳 张涛

可以实现(Ⅳ一亩)型分频器,其中Ⅳ,M均为正整数。
1.2分频器的实现与讨论 由于电路结构非常清晰.很容易用VHDL语言
实现。因为Z的增加发生勘的上升或者下降沿时 刻,所蝴的波形必然会影响到输峨。的波形。对于
某些分频数.比如Ⅳ或者M为2的幂次方的时候.分频 器既可以用模Ⅳ计数器来实现.又可以用D触发器串 联来实现。 i.2.1前向通道
[Key words]SIP
SIP servlets
internet call center
Web phone
Jo、,ojodLⅨ—Ⅺ—K—矩—K—K—∞—Ⅺ—Ⅺ—Ⅺ—‰∞—Ⅺ—n。。JmJojooojbjojmJm∞jcIⅨ—K—n。LoLjLo。JoJb∞。ooL∞
(上接第161 1页)
件,2004;(9):68—70 2高培军.基于FPGA的多种形式分频的设计与实现.今日电子
这里仍然以设计3.75分频的分频器为例.由公 式(3)很容易得到参数E.=4,m=1,n=3,设定以上参 数后仿真.得到仿真波形如图7所示。当/Zl为低电平 时进行3分频,而n,为高电平时进行4分频,输出波形 中每5个高电平为一个大周期.共持续15个输入时 钟周期.因此每个输出波形持续时问平均为输入波 形的3.75倍。
2004;(5):30~31 3边计年,NVHDL设计电子线路,北京:清华大学出版社.2000
The Design of Total Digitized Fractional Frequency Divider Based on VHDL
YIN Huibing,ZHANG Tao
(Shanghai Institute of Technical Physics,Chinese Academy of Sciences,Shanghai 200083)
more and mote,through analysis internet call center is regarded as the trend of development.The advantage is analyzed which combine SIP protocol with Java Servlet.And SIP Servlet model is structured.this model is
置的波形发生器.其原理框图如图6所示。
图6通用有理小数分频器原理
图中有3个可设参数F。n。和m。,分别对应于2.1 节中的参数E,凡和m。可预置数的可控双模分频器 以及可预置的波形发生器的VHDL代码。 2.2.1 可预置数的可控双模分频器
n,信号选择对输入波形是采用R一1分频还是疋 分频,当n,=70 7时,选择E一1分频;当n,=~1时,选择E 分频。分频值E大小为疋.的二进制译码值,由外部设
参 考文 献 1林海波.基于CPLD/FPGA的半整数分频器设计.国外电子元器
(下转第1616页)
万方数据
!!!!
科 学 技 术 与工 程
————————————————————————————————————————————————————————————————————————一
6:卷竺
Research and Application of Internet New Call Center Based SIP Mechanism
WANG Xiangyu,LIe—Technaology Proferssion School,Changsha 4101 18)
[Abstract]The situati。n。f SIP and call center are introduced,because the users pay attenti。n to“serving”
通过控制两种不同分频比出现的不同次数来获得 所需要的分数分频。
12期
尹辉炳,等:基TVHDL的全数字分数分频器设计
1611
设需要设计的分数分频值为a/b>l f当a/b<l时实
际上是需要实现倍频功能.而a/b=1是平凡情况.这
里均不加考虑,舶为整数的情况也不考虑).两种整
数分频值分别为E和B=E—i,并且出现的次数分别
applied
to
internet
call
center.At
last
the

implement s
method
of internet
call
center
is
researched.and
on
the
basis of this,internet call center software is designed.
1 (Ⅳ_1肋)型分频器设计
1.1基本原理 文献『1,2]中给出了一种半整数分频器,其电
路组成如图1所示,由一个异或门,一个模Ⅳ计数器, 以及一个2分频器组成。
图1 半整数分频器电路组成
2006年1月16日收到 第一作者简介:尹辉炳(1980一),男,江苏丹阳人,中国科学院上海技 术物理研究所硕十研究生,研究方向:红外信号与信息处理。
图4 3.75分频器仿真波形 (前向通道和反馈通道均采用D触发级联实现4分频)
图5 3.75分频器仿真波形 f前向通道和反馈通道均采用模4计数器实现4分频)
以上讨论只是在理想情况下进行的,实际实现 的时候还要考虑到两种整数分频方法的时延等实 际电路的参数。
2任意分数分频器设计
2.1基本原理 文献『1]中介绍了这种分数分频器的基本原理,即
在数字电路设计中.经常需要用到分频电路。 一般的整数分频器可以很容易地通过D触发器或者 模Ⅳ计数器来实现。但是.有时候电路中需要用到各 种不同的频率.而时钟源通常只有有限的一两个. 这时候就会碰到需要分数分频的情况。文献『1,2] 中给出了一种实现半整数分频器的方法.这里通过 对该电路进行建模和分析,对其进行扩展.得到更 为一般的形式,使其能实现(N一1/M)分频。另外,根 据文献fI 1中分数分频的基本原理,设计了一种通 用分数分频器.并且给出了确定分数分频器参数的 方法。最后对这两种分数分频器进行了比较说明。
图2是前向通道采用模4计数器实现4分频的仿 真结果.输出波形elk out的高电平所占宽度为0.5或 者1个输入周期.分别对应于输出周期为输入周期 的3.5倍与4倍的情况。
万方数据
1.2.2反馈通道 反馈通道中分频器的实现方式影响两种占空
比波形的分布位置:由于D触发器的输出波形是对 称的,即波形的占空比为1:1.这样£改变的时刻就分 布比较均匀.因而两种占空比波形的分布也就比较 均匀.而用模Ⅳ计数器实现则两种占空比的波形分 布相对集中,以N=d.M=d实现3.75分频为例,图2和 图4中反馈通道均采用两个D触发器级联实现.因而 两种占空比的波形相间而排.图4中输出波形clk out 是占空比分别为3:4与4:4的波形依次相间排列.图2 中输出波形clk out是占空比分别为0.5:3与1:3的波 形相问排列。图5中反馈通道采用了模4计数器进行 4分频,因而7:变化分布不再均匀。所以输出波形clk out 中两种占空比的波形不再相问而排。
[Abstract]Two methods of designing total digitized frequency divider are introduced and their characteristics
相关文档
最新文档