资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,分频器,1.,什么是分频器,分频器是一般是用于音箱内的一种电路装置,是指将不同频段的信号区分开来,用以将输入的音乐信号分离成高音、中音、低音等不同部分,然后分别送入相应的高、中、低音喇叭单元中重放。分频器是音箱中的“大脑”,对音质的好坏至关重要。功放输出的音乐信号必须经过分频器中的各滤波元件处理,让各单元特定频率的信号通过。好音箱的分频器,能有效地修饰喇叭单元的不同特性,优化组合,使得各单元扬长避短,淋漓尽致地发挥出各自应有的潜能,使各频段的频响变得平滑、声像相位准确,才能使高、中、低音播放出来的音乐层次分明、合拍,明朗、舒适、宽广、自然的音质效果。,本课程涉及的分频器是用于降低频率,如输入为,12HZ,的信号进行,12,分频输出为,1HZ,的信号,就是,12,分频器,或者称这个分频器的分频比是,1,:,12,。,1,2.,占空比,(DUTY CYCLE),占空比在电信领域中有如下含义:在一串理想的脉冲序列中(如方波),正脉冲的持续时间与脉冲总周期的比值。例如:正脉冲宽度,1S,,,信号周期,4S,的脉冲序列占空比为,0.25,或者为,1,:,4,。,2,使用,VHDL,基本语句设计分频器电路,分频器电路在,VHDL,中一般采用计数器进行描述。根据要求的,分频比和占空比的不同,相应的描述方法也不同。,3,一、偶数分频器,1.,分频比是,2,的整数次幂,占空比,1:2(2,N,分频器,),2.,分频比是偶数,但不是,2,的整数次幂,3.,分频比是偶数,占空比与分频比相同,4,1.2,N,分频器,如一个电路中需要用到多个时钟,若输入系统时钟频率恰为,2,的,n,次幂,则可用一个,M,位的二进制计数器对输入系统时钟进行计数,该计数器第,0,位为输入时钟的二分频,第,1,位为输入时钟的四分频,第,2,位为输入时钟的,8,分频,依此类推,第,n-1,位为输入时钟的,2,n,分频。,5,1.,分频比是,2,的整数次幂,占空比是,0.5,例,7.1,对时钟信号,CLK,进行,2,分频,,4,分频,,8,分频,,16,分频。,ARCHITECTURE RTL OF CLK_DIV IS,SIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);,BEGIN,PROCESS(CLK),BEGIN,IF(CLKEVENT AND CLK=1)THEN,IF(COUNT=”1111”)THEN COUNT 0);,ELSE COUNT=COUNT+1;,END IF;END IF;,END PROCESS;,CLK_DIV2=COUNT(0);CLK_DIV4=COUNT(1);,CLK_DIV8=COUNT(2);CLK_DIV16=COUNT(3);,END RTL;,6,对时钟进行偶数分频,使占空比为,50%,,可使用一个计数器,对输入时钟进行模,n,(,n,为偶数)计数,在前,n/2,个时钟内,使输出为高(或低)电平,在后,n/2,个时钟内使输出为低(或高)电平,即可实现对输入时钟的,n,分频。,设计思路,2.,分频比不是,2,的整数次幂,但是偶数,占空比是,0.5,7,例,7.2,对时钟信号,CLK,进行,6,分频。,ARCHITECTURE RTL OF CLK_DIV IS,SIGNAL COUNT:STD_LOGIC_VECTOR(1 DOWNTO 0);,SIGNAL CLK_TEMP:STD_LOGIC;,BEGIN,PROCESS(CLK),BEGIN IF(CLKEVENT AND CLK=1)THEN,IF(COUNT=”10”)THEN COUNT 0);,CLK_TEMP=NOT CLK_TEMP;,ELSE COUNT=COUNT+1;,END IF;END IF;END PROCESS;,CLK_DIV6=CLK_TEMP;,END RTL;,8,【,例,7-3】,设计一个,8,分频电路,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,USE IEEE.STD_LOGIC_ARITH.ALL;,USE IEEE.STD_LOGIC_UNSIGNED.ALL;,ENTITY fdiv8 IS,GENERIC(,n:INTEGER,:=8),;,PORT(clr,clkin,:IN STD_LOGIC;,clkout,:OUT STD_LOGIC);,END fdiv8;,ARCHITECTURE one OF fdiv8 IS,SIGNAL,cnt,:,INTEGER RANGE 0 TO n-1;,BEGIN,9,PROCESS(clkin,clr,),BEGIN,IF,clr,=1 THEN,cnt,=0;,ELSIF,RISING_EDGE(clkin,)THEN,IF,cnt,=n-1 THEN,cnt,=0;,ELSE,cnt,=,cnt,+1;,END IF,;,END IF;,END PROCESS,;,clkout,=1 WHEN,cnt,INTEGER(n/2),ELSE 0;,END one;,8,分频电路其它描述方法,?,10,8,分频电路的仿真波形,T_out,=,8,T_in,F_in,=,8,F_out,11,3.,分频比是偶数,占空比和分频比相同,例,7.4,将输入的时钟信号进行,16,分频,分频信号的占空比为,1,:,16,ARCHITECTURE RTL OF CLK_DIV IS,SIGNAL COUNT:STD_LOGIC_VECTOR(3 DOWNTO 0);,BEGIN,PROCESS(CLK),BEGIN,IF(CLKEVENT AND CLK=1)THEN,IF(COUNT=”1111”)THEN COUNT 0);,ELSE COUNT=COUNT+1;,END IF;END IF;END PROCESS;,PROCESS(CLK),BEGIN,IF(CLKEVENT AND CLK=1)THEN,IF(COUNT=”1111”)THEN CLK_DIV16=1;,ELSE CLK_DIV=0;,END IF;END IF;END PROCESS;END RTL;,12,二、奇数分频器,1.,分频比是奇数,占空比无要求,2.,分频比是奇数,占空比为,1,:,2,13,设计思路,对时钟进行奇数分频,如果对占空比不作要求的话,其设计方法与偶数分频是相同的。,如果要使占空比为,50%,,其方法是分别对输入时钟的上升沿和下降沿进行模,n,(,n,为奇数)计数,在计数值为小于,(n-1)/2,时,使信号输出为高(或低)电平,在计数值为大于等于,(n-1)/2,时使信号输出为低(或高)电平,从而得到两个占空比为,(n-1)/2:n,的分频信号,然后将这两个信号相或即可实现对输入时钟的,n(n,为奇数,),分频。,14,【,例,7-5】,设计一个,5,分频电路,(,占空比,2:5),LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,USE IEEE.STD_LOGIC_ARITH.ALL;,USE IEEE.STD_LOGIC_UNSIGNED.ALL;,ENTITY fdiv5a IS,GENERIC(,n:INTEGER,:=5),;,PORT(clr,clkin,:IN STD_LOGIC;,Clkout,:OUT STD_LOGIC);,END fdiv5a;,ARCHITECTURE one OF fdiv5a IS,SIGNAL,cnt,:,INTEGER RANGE 0 TO n-1;,BEGIN,4.,分频比是奇数,占空比不是,1,:,2,15,PROCESS(clkin,clr,),BEGIN,IF,clr,=1 THEN,cnt,=0;,ELSIF,RISING_EDGE(clkin,)THEN,IF,cnt,=n-1 THEN,cnt,=0,;,ELSE,cnt,=,cnt,+1;,END IF,;,END IF,;,END PROCESS,;,clkout,=1 WHEN,cnt,INTEGER(n/2)ELSE 0;,END one;,16,5,分频电路的仿真波形(占空比,2:5,),T_out,=,5,T_in,F_in,=,5,F_out,17,5.,分频比是奇数,占空比是,0.5,例,7.6,将输入的时钟信号进行,5,分频,分频信号的占空比为,1,:,2,ARCHITECTURE ONE OF CLKDIV5_1TO2 IS,SIGNAL CNT:STD_LOGIC_VECTOR(2 DOWNTO 0);,SIGNAL OUT_TEMP1,OUT_TEMP2:STD_LOGIC;,BEGIN,PROCESS(CLK),BEGINIF RISING_EDGE(CLK)THEN,IF CNT=100 THEN CNT=000;,ELSE CNT=CNT+1;END IF;END IF;END PROCESS;,PROCESS(CLK,CNT),BEGINIF,FALLING_EDGE,(,CLK)THENIF(CNT2)THEN OUT_TEMP1=1;,ELSE OUT_TEMP1=0;END IF;END IF;END PROCESS;,PROCESS(CLK,CNT),BEGINIF,RISING_EDGE,(CLK)THEN IF(CNT2)THEN OUT_TEMP2=1;,ELSE OUT_TEMP2=0;END IF;END IF;END PROCESS;,CLKOUT=OUT_TEMP2 OR OUT_TEMP1;,END;,18,功能仿真,4,分频电路(占空比位,1,:,2,)仿真波形如图,7.2,所示,。,19,10,分频电路(占空比位,1,:,2,)仿真波形如图,7.3,所示。,20,5,分频电路(占空比位,2,:,5,)仿真波形如图,7.4,所示。,21,5,分频电路(占空比位,1,:,2,)仿真波形如图,7.5,所示。,22,异或门,模,N,计数器,2,分频器,clk,clk,/(N-0.5),clk,/(2N-1),半整数分频设计原理框图,三、半整数分频器,在某些场合下,用户所需要的频率与频率时钟源可能不是整数倍关系,如有一个,5 MHz,的时钟源,但电路中需要产生一个,2 MHz,的时钟信号,由于分频比为,2.5,,因此整数分频器将不能胜任。,对于分频系数为,N-0.5,的分频器,称为半整数分频。下图是一种通用的半整数分频电路的设计框图,由一个异或门、一个模,N,的计数器和一个,2,分频电路构成。,23,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,USE IEEE.STD_LOGIC_UNSIGNED.ALL;,ENTITY fdiv25a IS,GENERIC(,n:INTEGER,:=3);,PORT(,clkin,:IN STD_LOGIC;,clkout,:OUT STD_LOGIC);,END fdiv25a;,ARCHITECTURE one OF fdiv25a IS,SIGNAL,clk,div2:STD_LOGIC;,SIGNAL,c_out,:STD_LOGIC;,SIGNAL count:INTEGER RANGE 0 TO n-1;,BEGIN,clk,=,clkin,XOR div2;,【,例,7-7】,设计一个,2.5,分频电路,24,PROCESS(clk,),BEGIN,IF(clkevent,AND,clk,=1)THEN,IF(count,=n-1)THEN,count=0;,c_out,=1;,ELSE count=count+1;,c_out,=0;,END IF;,END IF;,END PROCESS;,PROCESS(c_out,),BEGIN,IF,RISING_EDGE(c_out,)THEN,div2=NOT div2;,END IF;,END PROCESS;,Clkout,=,c_out,;,END one;,25,2.5,分频电路仿真波形图,T_out,=,2.5,T_in,F_in,=,2.5,F_out,2.5,分频内部电路,26,数控分频器的功能就是在输入端给定不同的输入数据时,将对输入的时钟信号有不同的分频比。,数控分频器一般是用计数值可并行预置的加法计数器完成的,即计数器不是从,0,开始计数,而是从某个初值开始计数。初值不同,则分频系数不同,计数器计满后重新加载初值,根据计算器的溢出标志控制产生分频输出信号,。,四、数控分频器,27,【,例,7-8】,设计一个数控分频器,LIBRARY IEEE;,USE IEEE.STD_LOGIC_1164.ALL;,USE IEEE.STD_LOGIC_UNSIGNED.ALL;,ENTITY,dvf,IS,PORT(,clkin,:IN STD_LOGIC;,data:IN STD_LOGIC_VECTOR(7 DOWNTO 0);,clkout,:OUT STD_LOGIC );,END,dvf,;,ARCHITECTURE one OF,dvf,IS,SIGNAL full:STD_LOGIC;,SIGNAL Cnt1:STD_LOGIC_VECTOR(7 DOWNTO 0);,SIGNAL Cnt2:STD_LOGIC;,BEGIN,28,PROCESS(clkin,),BEGIN,IF,clkinEVENT,AND,clkin,=1 THEN,IF cnt1=11111111 THEN,cnt1=data;,full=1;,ELSE,cnt1=,cnt1,+1;,full=0;,END IF;,END IF;,END PROCESS;,PROCESS(full,),BEGIN,IF,fullEVENT,AND,fullL,=1 THEN,cnt2=NOT cnt2;,END IF;,END PROCESS;,clkout,=cnt2;,END one;,29,数控分频电路的仿真波形图,30,
展开阅读全文