基于CPLD/FPGA的半整数分频器的设计
分频器。图1给出了通用半整数分频器的电路组成。
采用VHDL硬件描述语言,可实现任意模N的计数器(其工作频率可以达到160MHz以上),并可产生模N逻辑电路。之后,用原理图输入方式将模N逻辑电路、异或门和D触发器连接起来,便可实现半整数(N-0.5)分频器以及(2N-1)的分频。
4半整数分频器设计
现通过设计一个分频系数为2.5的分频器给出用FPGA设计半整数分频器的一般方法。该2.5分频器由模3计数器、异或门和D触发器组成。
图32.5分频器电路原理图
4.1模3计数器
该计数器可产生一个分频系数为3的分频器,并产生一个默认的逻辑符号COUNTER3。其输入端口为RESET、EN和CLK;输出端口为QA和QB。下面给出模3计数器VHDL描述代码:
libraryieee;
useieee.std-logic-1164.all;
useieee.std-logic-unsigned.all;
entitycounter3is
port(clk,reset,en:instd-logic;
qa,qb:outstd-logic);
endcounter3;
architecturebehaviorofcounter3is
signalcount:std-logic-vector(1downto0);
begin
process(reset,clk)
begin
ifreset='1'then
count(1downto0)<="00";
else
if(clk'eventandclk='1')then
if(en='1')then
if(count="10")then
count<="00";
else
count<=count+1;
endif;
endif;
endif;
endif;
endprocess;
qa<=count(0);
qb<=count(1);
endbehavior;
任意模数的计数器与模3计数器的描述结构完全相同,所不同的仅仅是计数器的状态数。上面的程序经编译、时序模拟后,在MAX+PLUSII可得到如图2所示的仿真波形。
图42.5分频器仿真波形图
4.2完整的电路及波形仿真
将COUNTER3、异或门和D触发器通过图3所示的电路逻辑连接关系,并用原理图输入方式调入图形编辑器,然后经逻辑综合即可得到如图4所示的仿真波形。由图中outclk与inclk的波形可以看出,outclk会在inclk每隔2.5个周期处产生一个上升沿,从而实现分频系数为2.5 《基于CPLD/FPGA的半整数分频器的设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/177140.html
采用VHDL硬件描述语言,可实现任意模N的计数器(其工作频率可以达到160MHz以上),并可产生模N逻辑电路。之后,用原理图输入方式将模N逻辑电路、异或门和D触发器连接起来,便可实现半整数(N-0.5)分频器以及(2N-1)的分频。
4半整数分频器设计
现通过设计一个分频系数为2.5的分频器给出用FPGA设计半整数分频器的一般方法。该2.5分频器由模3计数器、异或门和D触发器组成。
图32.5分频器电路原理图
4.1模3计数器
该计数器可产生一个分频系数为3的分频器,并产生一个默认的逻辑符号COUNTER3。其输入端口为RESET、EN和CLK;输出端口为QA和QB。下面给出模3计数器VHDL描述代码:
libraryieee;
useieee.std-logic-1164.all;
useieee.std-logic-unsigned.all;
entitycounter3is
port(clk,reset,en:instd-logic;
qa,qb:outstd-logic);
endcounter3;
architecturebehaviorofcounter3is
signalcount:std-logic-vector(1downto0);
begin
process(reset,clk)
begin
ifreset='1'then
count(1downto0)<="00";
else
if(clk'eventandclk='1')then
if(en='1')then
if(count="10")then
count<="00";
else
count<=count+1;
endif;
endif;
endif;
endif;
endprocess;
qa<=count(0);
qb<=count(1);
endbehavior;
任意模数的计数器与模3计数器的描述结构完全相同,所不同的仅仅是计数器的状态数。上面的程序经编译、时序模拟后,在MAX+PLUSII可得到如图2所示的仿真波形。
图42.5分频器仿真波形图
4.2完整的电路及波形仿真
将COUNTER3、异或门和D触发器通过图3所示的电路逻辑连接关系,并用原理图输入方式调入图形编辑器,然后经逻辑综合即可得到如图4所示的仿真波形。由图中outclk与inclk的波形可以看出,outclk会在inclk每隔2.5个周期处产生一个上升沿,从而实现分频系数为2.5 《基于CPLD/FPGA的半整数分频器的设计(第2页)》