技术创新《微计算机信息》(嵌入式与SOC)2010年第26卷第10-2期360元/年邮局订阅号:82-946《现场总线技术应用200例》电子设计基于VHDL 的小数分频器设计The design of decimal fraction frequency divider based on the language named VHDL(淮阴工学院)李慧LI Hui摘要:本文主要介绍了一种基于VHDL 语言的双模前置小数分频器的设计,为了测试的需要同时设计了8位数字频率计,在MAX-PLUS Ⅱ平台下实现分频器的仿真,并下载到EPF10K10LC84-3芯片中实现。
关键词:双模;小数分频器;频率计中图分类号:TP386文献标识码:AAbstract:The design of double module decimal fraction frequency divider based on the language named VHDL is mainly presented in this text.8bit digital cymometer is designed for testing at the same time.Simulate is finished on MAX-PLUS Ⅱ,and download is finished in CMOS CHIP named EPF10K10LC84-3.Key words:double module;decimal fraction frequency divider;cymometer文章编号:1008-0570(2010)10-2-0192-021引言分频器是数字电路中最基础也是最常用的电路,整数分频器的实现比较简单,可采用标准的计数器或可编程逻辑器件设计实现。
但在某些特定场合下,时钟源与所需的频率往往不成整数倍关系,此时就需要采用小数分频器对输入的信号进行分频。
而同时本系统可以在不降低参考频率的前提下,提高系统输出频率的分辨率。
2双模前置小数分频原理用来实现小数分频器的方法很多,但其基本原理都基本一样,即在若干个分频周期中采取某种方法使某几个周期多计或少计一个数,从而在整个计数周期的总体平均意义上获得一个小数分频比,设要进行分频比为K 的小数分频,K 可表示为:K=N+10-n×X 式中:n,N,X 均为正整数;n 为到X 的位数,即K 有n 位小数。
另一方面,分频比又可以写成:K=M/P式中:M 为分频器输入脉冲数;P 为输出脉冲数。
令,则:以上是小数分频器的一种实现方法,即在进行10n 次N 分频时,设法多输入X 个脉冲。
3系统模块设计部分本系统主要包括两大部分:一部分是可预置分频系数的小数分频模块设计,另一部分是8位数字频率计的设计(主要是为了验证设计的结果而辅助设计的一个模块)。
具体模块框图如下:图1系统模块图4VHDL 程序实现4.1小数分频模块设计1)、原理分析以实现7.3分频为例,要实现7.3分频,只要在10次分频中做7(即10-3)次除7,3次除8就可以得到:N=(7×7+3×8)/10=7.3,又如,要实现分频系数为7.32的小数分频,只要在每100次分频中做68(100-32)次除7,32次除8即可得到N=(68×7+32×8)/10=7.32。
由上可知,要实现分频比为N.F 的小数分频,只需要对输入信号做N/N+1分频,考虑到该小数分频器要进行多次N 分频和N+1分频,那么就设法将两种分频混合均匀,这种“均匀”工作是通过计数器来完成的,在这里只讨论一位小数的情况,下面简要介绍这种混合的方法:每进行一次分频,计数值为10减去分频系数的小数部分,各次计数值累加。
若累加结果小于10,则进行N+1分频,若大于10或等于10,则进行N 分频。
2)、VHDL 语言实现(以1位小数为例)小数分频器主要由N/N+1分频器、计数器以及控制逻辑几大部分组成。
界面说明部分定义如下:ENTITY sheji_02ISport(clk:in std_logic;--输入信号num_zg,num_zd:in std_logic_vector (3downto 0);--分频系数高低位输入,最大输入为15.9err:out std_logic;fout:buffer std_logic);--输出信号end;分频系数为num_sheding 的分频器设计:process(clk)isbeginif clk'event and clk='1'then if num="0000"then李慧:讲师硕士(10)ÁM K P N X P−=×=+××10ÁP =10ÁM N X=×+192--邮局订阅号:82-946360元/年技术创新电子设计《PLC 技术应用200例》您的论文得到两院院士关注num<=num_sheding-1;num_out<='1';elsenum<=num-1;num_out<='0';end if;end if;end process;计数器部分设计如下:process(num_out)is beginif num_out'event and num_out='1'thenif tmp >=tmp_z then tmp <=tmp -tmp_z;num_sheding <=num_zg;--tmp_z 为小数部分数据else tmp<=tmp+10-tmp_z;num_sheding<=num_zg+1;end if;end if;end process;fout<=num_out;end;3)、波形仿真经过系统平台的编译仿真之后,得到如下的波形图:图2系统波形仿真图从以上波形我们可以看出:7.3分频的分频器在第一个时钟时进行8分频,第二、三个时钟时进行7分频。
4.2测频模块设计本设计模块主要由3个子模块组成:测频信号发生器TESTCTL,8个具有时钟使能的十进制加法计数器CNT10,和一个32位锁存器REG32B 。
这一部分在很多资料上都有记载,在此不再多述。
4.3显示模块设计本模块主要实现8位数字频率值的动态显示,显示锁存器中的数据,主要包括数码管动态扫描、七段数码管译码两大部分。
具体实现如下:process(ck)is --动态扫描进程,其中ck 为数码管扫描时钟beginif ck'event and ck='1'then cnt8<=cnt8+1;end if;case cnt8iswhen "000"=>sel<="10000000";show_data<=data(3downto 0);…when "111"=>sel<="00000001";show_data<=data (31downto 28);when others=>null;end case;end process;process(show_data)is –-译码进程begincase show_data iswhen "0000"=>sm<="1111110";…end case;end process;5实验结果在EDA 实验箱我们对以上设计进行了测试,达到了预期的效果,以7.3分频为例:首先利用测频模块测试输入频率,频率值为16384HZ,然后经过7.3分频,然后分频之后得到的信号再次进行测频,测得的频率值为2244HZ,分频系数为7.3012,达到了要求,误差小,系统分频的精度高。
6结论从测试结果来看,小数分频的功能基本上能够实现,分频的精度高,具有一定的实用性。
本文的创新点:选用FPGA 实现小数分频器,外围电路简单,系统集成化程度高,设计灵活,精度也明显高于普通的小树分频器。
参考文献[1]苏玉娜,程明等.基于FPGA 的单片机外围接口电路设计[J].微计算机信息.2009,5-2:p173-174[2]古天祥.电子测量原理.北京:机械工业出版社,2004[3]潘松,黄继业.EDA 技术实用教程.北京:科学出版社,2002[4]谭会生,张昌凡.EDA 技术及应用.西安:西安电子科技大学出版社,2001作者简介:李慧,(1980-)男(汉族),江苏淮安人,硕士,讲师,主要研究方向为测控技术与仪器。
Biography:LI Hui,(1980-),Male (HAN),Huaian city in Jiangsu Province ,Master ,Lecturer ,Researched Area:Technique and Instrumentation of Measurements.(223003淮阴工学院)李慧通讯地址:(223003江苏淮安市枚乘路1号淮阴工学院电子与电气工程学院)李慧(收稿日期:2009.10.13)(修稿日期:2010.01.05)(上接第152页)[4]张素智,史培中等.基于RFID 的车辆出入安全管理系统设计[J].微计算机信息.2009,5-2:204-206[5]e-Plate Brochure[EB/OL]..[6]谭思亮,邹超群.Visual C++串口通信工程开发与实例导航[M].北京:人民邮电出版社,2003.[7]Serial COM Simply in C#[EB/OL]./tutorial/tutorial_details.aspx?tutorial_id.作者简介:赵文婧(1984-),女,江苏人,徐州工程学院助教,硕士,主要研究方向:射频识别技术;王刚(1967-),男,新疆人,江苏大学特聘教授,博士,主要研究方向:射频识别技术、无线通信、高分辨率检测与成像技术以及超宽带电磁脉冲技术等。
Biography:ZHAO Wen-Jing (1984-),female,Jiangsu Province,assistant of Xuzhou Institute of Technology,Master,Research area:RFID technology.(221000徐州徐州工程学院信电工程学院)赵文婧(212013镇江江苏大学计算机科学与通信工程学院)王刚通讯地址:(221000江苏省徐州市新城区徐州工程学院中心校区信电工程学院电子信息教研室教1楼308室)赵文婧(收稿日期:2010.01.06)(修稿日期:2010.04.25)193--。