小数分频器的verilog-hdl设计
小数分频器的设计及其应用

第24卷 增刊2005年9月国 外 电 子 测 量 技 术Foreign Elect ronic Measurement TechnologyVol.24,Suppl.Sep.,2005作者简介: 尹佳喜(1981-),华中科技大学电气与电子工程学院04级研究生,研究方向电力电子与电力传动。
研究与设计小数分频器的设计及其应用尹佳喜(华中科技大学电气与电子工程学院 湖北武汉430074)摘要:分频器是数字系统设计中最常见的电路之一,在数字系统设计中,经常需要对时钟进行小数倍分频。
本文给出了三种用于实现小数分频的方案,并将三种方案进行了比较。
在此基础上,介绍了小数分频器在直接数字频率合成技术和步进电机驱动速度控制中的两种常见应用。
关键词:小数分频器 直接数字频率合成 步进电机 频率The Design and Application of Decim al Fraction Frequency DividerY in Jiaxi(College of Elect ricit y and Elect ronic Engeneering ,H uaz hong Universit y of S cience and Techlonog y ,W uhan 430074,China )Abstract :Frequency division is one of t he mo st common circuit s in t he design of digital system.Generally ,decimal f raction f requency division is needed.In t his paper ,t hree met hods to realize deci 2mal f raction frequency division are given ,and t he comparison among t he t hree met hods is presented.Applications of decimal Fraction Frequency divider in t he area such as direct digital f requency syn 2t hesis technology and stepper motor drive speed controller are int roduced.K eyw ords :decimal f raction frequency divider ,direct digital frequency synt hesis (DDS ),stepper mo 2tor ,frequency.0 引言 现代电子系统设计中,数字电子系统所占的比例越来越大,现代电子系统发展的趋势是数字化和集成化。
Verilog实现任意分频

Verilog实现任意分频在Verilog中实现任意分频可以通过使用计数器和分频比例来实现。
下面是一个基于计数器的Verilog代码示例,用于实现任意分频。
```verilogmodule frequency_dividerinput clk,input rst,input [7:0] div_ratio,output reg outreg [7:0] count;beginif (rst)count <= 0;else if (count == div_ratio - 1)count <= 0;elsecount <= count + 1;endbeginif (rst)out <= 0;else if (count == div_ratio - 1)out <= ~out;endendmodule```在以上代码中,我们定义了一个名为"`frequency_divider`"的模块,该模块具有以下输入和输出:- `clk`:时钟信号- `rst`:复位信号- `div_ratio`:分频比例,使用8位二进制表示,范围为0到255- `out`:输出信号我们使用一个8位计数器(`count`)来进行分频。
每当计数器达到分频比例减1时,输出信号取反。
例如,如果分频比例为1,则输出信号将与时钟信号同步;如果分频比例为2,则输出信号将是时钟信号的一半频率;如果分频比例为4,则输出信号将是时钟信号的四分之一频率,以此类推。
需要注意的是,以上示例代码仅展示了分频的基本原理,并未考虑输入和输出信号的时序问题,如使 `div_ratio` 在运行时可更改、输出信号的不稳定性等。
针对具体应用需求,可以根据实际情况做出适当的修改和调整。
希望以上内容对您有所帮助!。
基于Verilog-HDL数字频率计设计与实现

河南工程学院《EDA》课程设计系别电气信息工程系专业电子科学与技术班级0941班组员基于Verilog HDL数字频率计设计与实现摘要:在电子技术中,频率是最基本的参数之一,并且与许多电参量的测量方案、测量结果都有十分密切的关系,因此频率的测量就显得更为重要。
测量频率的方法有多种,其中电子计数器测量频率具有精度高、使用方便、测量迅速,以及便于实现测量过程自动化等优点,是频率测量的重要手段之一。
电子计数器测频有两种方式:一是直接测频法,即在一定闸门时间内测量被测信号的脉冲个数;二是间接测频法,如周期测频法。
直接测频法适用于高频信号的频率测量,间接测频法适用于低频信号的频率测量。
本文阐述了用Verilog HDL语言设计了一个简单的数字频率计的过程关键词:周期;EDA;Verilog HDL;数字频率计;波形仿真目录1 引言......................................................... - 3 -1.1 数字频率计概述.......................................... - 4 -1.2 频率测量的思想和方法.................................... - 4 -2 Verilog HDL简介............................................. - 6 -2.1 Verilog HDL的简介....................................... - 6 -2.2方案比较 (10)3 数字频率计设计原理以及实现................................... - 7 -4 总结......................................................... - 38 - 参考文献....................................................... - 39 -1 引言在电子测量领域中,频率测量的精确度是最高的,可达10—10E-13数量级。
用VerilogHDL实现基于FPGA的通用分频器的设计

0引言在数字电路中,时钟脉冲信号是最重要的信号之一。
一个数字电路往往需要多种频率的脉冲作为驱动,通常采用一个高频晶振产生一种高频率的脉冲,再利用其它的分频方法进行分频,从而产生各种不同频率的脉冲,是一种常用的方法。
本文设计的分频器是采用Verilog HDL硬件描述语言,采用参数化的设计思想,在FPGA上实现的一种软件化的分频器,且该分频器仅占用FPGA的几个逻辑单元。
1通用分频器的设计分频器分为偶数分频、奇数分频、半整数分频和小数分频等,本文采用参数化的设计思想设计偶数分频器。
所谓参数化就是把程序中的某些参数设计成可以改变的量,使用户可以根据需要设定参数的值,以满足不同的需求。
1.1分频原理在设计偶数分频器时,采用通过一个由待分频时钟上升沿所触发的计数器循环计数来实现N倍(N为偶数)分频的实现方法,这种方法可以实现占空比为50%的任意偶数分频。
1.2设计方法在FPGA上,可以采用两种不同的Verilog HDL程序语句来设计计数器。
用这两种程序语句设计的计数器功能相同,但其实现方式不同,程序结构也不一样。
所以这两种程序语句编译综合后,它们占用的逻辑单元LE数差别很大。
本文对这两种程序语句进行了分析,比较了它们所占用的逻辑单元数的差别,并对产生这种差别的原因进行了分析。
(1)方法1module FPQ_1(CLK,OUT);input CLK;output OUT;parameter bitsize=4;//计数器二进制位数parameter L=9;//1/2倍的计数基数减1reg[bitsize:0]count=0;reg OUT=0;reg counter;always@(posedge CLK)begincount=(count<L)(count+1):0;//计数counter=(count==L)1:0;用Verilog HDL实现基于FPGA的通用分频器的设计Design of General Frequency Divider Based on FPGA Using Verilog HDL罗浩1许艳1,2仲佳嘉3Luo Hao Xu Yan Zhong Jiajia(1.江西理工大学应用科学学院,江西赣州341000;2.武汉理工大学信息学院,湖北武汉430070;3.江西赣州供电公司通信自动化分公司,江西赣州341000)(1.College of Applied Science,Jiangxi Univ.of Science&Technology,Jiangxi Ganzhou341000;2.School of Information Engineering,Wuhan Univ.of Technology,Hubei Wuhan430070;3.Branch of Communication and Automatization,JiangxiGanzhou Electric Power Corporation,Jiangxi Ganzhou341000)摘要:在数字逻辑电路设计中,常常遇到一些对时钟分频的需求。
Verilog HDL分频

你好,使用以下程序即可,使用时只需改变N值,N的取值大小请看注释,此程序适合对任意时钟的整数分频(包括奇偶),此程序已通过验证。
根据你的情况,想得到1HZ,N取50000000即可;想得到5HZ,N取10000000即可。
/****************************************************************************** ************Function: 实现时钟的任意整数分频******************************************************************************* *************/module div_N(inputCLK,// 基准时钟outputCLK_div_N// N分频后得到的时钟);wire[31:0]N=20;// N为分频系数,N≥2即可,N的值为CLK除以CLK_div_N后取整(四舍五入) /******************** 产生备用时钟1 ***************/reg[31:0]cnt1;regCLK_div_N_1;always @ (posedge CLK)beginif(N%2==0)// 如果N为偶数beginif(N==2)// 如果N为2CLK_div_N_1 <= ~CLK_div_N_1;elsebeginif(cnt1==(N-2)/2)begincnt1 <= 0;CLK_div_N_1 <= ~CLK_div_N_1;endelsecnt1 <= cnt1+1;endendelse// 如果N为奇数beginif(cnt1==N-1)cnt1 <= 0;elsecnt1 <= cnt1+1;if((cnt1==N-1) || (cnt1==(N-1)/2))CLK_div_N_1 <= ~CLK_div_N_1;else ;endend/*********************** 产生备用时钟2 *********************/wireCLK0=(N%2)? (~CLK):0;// 如果N为偶数,备用时钟2(CLK_div_N_2)恒为0,即不需要用到此备用时钟reg[31:0]cnt2;regCLK_div_N_2;always @ (posedge CLK0)beginif(cnt2==N-1)cnt2 <= 0;elsecnt2 <= cnt2+1;if((cnt2==N-1) || (cnt2==(N-1)/2))CLK_div_N_2 <= ~CLK_div_N_2;end/******************** 产生最终分频时钟************************/assignCLK_div_N = CLK_div_N_1 | CLK_div_N_2;endmodule。
实验六 Verilog设计分频器计数器电路答案

实验六Verilog设计分频器/计数器电路一、实验目的1、进一步掌握最基本时序电路的实现方法;2、学习分频器/计数器时序电路程序的编写方法;3、进一步学习同步和异步时序电路程序的编写方法。
二、实验内容1、用Verilog设计一个10分频的分频器,要求输入为clock(上升沿有效),reset(低电平复位),输出clockout为4个clock周期的低电平,4个clock周期的高电平),文件命名为fenpinqi10。
v.2、用Verilog设计一异步清零的十进制加法计数器,要求输入为时钟端CLK(上升沿)和异步清除端CLR(高电平复位),输出为进位端C和4位计数输出端Q,文件命名为coute r10.v。
3、用Verilog设计8位同步二进制加减法计数器,输入为时钟端CLK(上升沿有效)和异步清除端CLR(低电平有效),加减控制端UPDOWN,当UPDOWN为1时执行加法计数,为0时执行减法计数;输出为进位端C和8位计数输出端Q,文件命名为couter8.v。
4、用VERILOG设计一可变模数计数器,设计要求:令输入信号M1和M0控制计数模,当M1M0=00时为模18加法计数器;M1M0=01时为模4加法计数器;当M1M0=10时为模12加法计数器;M1M0=11时为模6加法计数器,输入clk上升沿有效,文件命名为mcout5。
v。
5、VerilogHDL设计有时钟时能的两位十进制计数器,有时钟使能的两位十进制计数器的元件符号如图所示,CLK是时钟输入端,上升沿有效;ENA是时钟使能控制输入端,高电平有效,当ENA=1时,时钟CLK才能输入;CLR是复位输入端,高电平有效,异步清零;Q[3.。
0]是计数器低4位状态输出端,Q[7..0]是高4位状态输出端;COUT是进位输出端.三、实验步骤实验一:分频器1、建立工程2、创建Verilog HDL文件3、输入10分频器程序代码并保存4、进行综合编译5、新建波形文件6、导入引脚7、设置信号源并保存8、生成网表9、功能仿真10、仿真结果分析由仿真结果可以看出clockout输出5个clock周期的低电平和5个clock的高电平达到10分频的效果,设计正确。
小数分频器原理

基于CPLD/FPGA的半整数分频器的设计摘要:简要介绍了CPLD/FPGA器件的特点和应用范围,并以分频比为2.5的半整数分频器的设计为例,介绍了在MAX+plus II开发软件下,利用VHDL硬件描述语言以及原理图的输入方式来设计数字逻辑电路的过程和方法。
关键词:VHDL CPLD/FPGA 数字逻辑电路设计半整数分频器1 引言CPLD(Complex programmable Logic Device,复杂可编程逻辑器件)和FPGA(Field programmable Gates Array,现场可编程门阵列)都是可编程逻辑器件,它们是在PAL、GAL等逻辑器件基础上发展起来的。
同以往的PAL、GAL相比,FPGA/CPLD的规模比较大,适合于时序、组合等逻辑电路的应用。
它可以替代几十甚至上百块通用IC芯片。
这种芯片具有可编程和实现方案容易改动等特点。
由于芯片内部硬件连接关系的描述可以存放在磁盘、ROM、PROM、或EPROM中,因而在可编程门阵列芯片及外围电路保持不动的情况下,换一块EPROM芯片,就能实现一种新的功能。
它具有设计开发周期短、设计制造成本低、开发工具先进、标准产品无需测试、质量稳定以及实时在检验等优点,因此,可广泛应用于产品的原理设计和产品生产之中。
几乎所有应用门阵列、PLD和中小规模通用数字集成电路的场合均可应用FPGA和CPLD器件。
在现代电子系统中,数字系统所占的比例越来越大。
系统发展的越势是数字化和集成化,而CPLD/FPGA作为可编程ASIC(专用集成电路)器件,它将在数字逻辑系统中发挥越来越重要的作用。
在数字逻辑电路设计中,分频器是一种基本电路。
通常用来对某个给定频率进行分频,以得到所需的频率。
整数分频器的实现非常简单,可采用标准的计数器,也可以采用可编程逻辑器件设计实现。
但在某些场合下,时钟源与所需的频率不成整数倍关系,此时可采用小数分频器进行分频。
比如:分频系数为2.5、3.5、7.5等半整数分频器。
低成本数字分频器设计

配 合锁 相环 、利 用梳妆 谱 发生器 加 混频 实现 ,也有
通 过 多次 倍 频 加 混 频 实 现 的 。但 无 论 通 过 哪 种 方
又从零 开始 计数 ,这样 循环 下去 ,就 可 以实现 Ⅳ 倍
分频 的偶数 分频 。
2 2 . 5倍 分 频 器 的设 计
2 . 5倍 小数 分频 的设 计 思路 :利用 原理 图 的方
式将 模 3计数 逻辑 电路 、 异或 门和 D 触发器 连接 起
来 ,通 过异 或 门和两 分频 模块 组成一 个改变 输入 频
偶 数倍 分频 通过 计数器 计数 很容 易实现 的 。例
・ 3 8 0・
现代 导航
2 0 1 3年
如 ,想 要实现 Ⅳ倍 的偶数 分频 ,则可 以将 待分频 的 时钟 触 发信 号作 为 计 数器 ,当计 数器 从 0 计 数 到 N / 2 — 1的时 候 ,将输 出时 钟进 行翻 转 ,之 后计 数器
并在 Q u a r t u s I I 编程环境下,进行 了仿真和调试。 关键词:分频器;小数分频器;V H D L ;频率合成 器
中图 分类 号 :T N7 7 2 文献标 识码 :A 文 章编 号 : 1 6 7 4 . 7 9 7 6 一 ( 2 0 1 3 ) 0 5 — 3 7 9 . 0 3
方 法 。该设计 成本 低廉 ,分 频 比可按 照实 际情 况进
行 编程 控制 ,应 用灵 活 。
1分 频 的基 本 原 理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
频率合成技术是现代通讯系统的重要组成部分,他将一个高稳定和高准确度的基准频率,经过四则运算,产
生同样稳定度和基准度的频率。分频器是集成电路中最基础也是最常用的电路。整数分频器的实现比较简
单,可采用标准的计数器或可编程逻辑器件设计实现。但在某些场合下,时钟源与所需的频率不成整数倍关
系,此时可采用小数分频器进行分频。本文利用veriloghdl硬件描述语言的设计方式,通过modelsimse开
发软件进行仿真,设计基于fpga的双模前置小数分频器。随着超大规模集成电路的发展,利用fpga小数分
频合成技术解决了单环数字频率合成器中高鉴相频率与小频间隔之间的矛盾。
1双模前置小数分频原理
小数分频器的实现方法很多,但其基本原理一样,即在若干个分频周期中采取某种方法使某几个周期多计或
少计一个数,从而在整个计数周期的总体平均意义上获得一个小数分频比,设要进行分频比为k的小数分
频,k可表示为:
式中:n,n,x均为正整数;n为到x的位数,即k有n位小数。另一方面,分频比又可以写成:
式中:m为分频器输入脉冲数;p为输出脉冲数。
令p=10n,则:
以上是小数分频器的一种实现方法,即在进行10n次n分频时,设法多输入x个脉冲。
2电路组成
每个周期分频n+10-n.x,其电路双模前置小数分频器电路由÷n/n+1双模分频器、控制计数器和控制逻辑
3部分组成。当a点电平为1时,进行÷n分频;当a点电平为0时进行÷n+1分频。适当设计控制逻辑,使
在10n个分频周期中分频器有x次进行÷n+1分频,这样,当从fo输出10n个脉冲时,在fi处输入了
x.(n+1)+(10n-x).n个脉冲,也就是10n.n+x个脉冲,其原理如图1所示。
3小数分频器的verilog-hdl设计
现通?过设计一个分频系数为8.7的分频器来给出使用veriloghdl语言设计数字逻辑电路的一般设计方法。
这里使用÷8/9双模前置分频器,按照前面的分析,可以通过计数器计数先做3次8分频,后做7次9分频,
即可得到平均分频系数8.7。由于从n分频切换到n+1分频和从n+1分频切换到n分频都会产生一个随时
间增长的相位移,如果简单的先进行3次8分频后做7次9分频将会产生很大的相位波动。考虑到该小数
分频器要进行多次8分频和9分频,那么就设法将两种分频混合均匀,这种“均匀”工作是通过计数器来完
成的,在这里只讨论一位小数的情况,下面简要介绍这种混合的方法:
每进行一次分频,计数值为10减去分频系数的小数部分,各次计数值累加。若累加结果小于10,则进行n+1
分频,若大于10或等于10,则进行n分频。该例中计数值为(10-7)=3,前3次累加结果都小于10,所以
为9分频,第四次累加结果为12,则去掉十位数后累加结果变为2,同时进行8分频,表1给出了该分频器的
分频过程。
若分频系数后为两位小数,则用100减去分频系数的小数部分。用veriloghdl设计÷8/9双模前置分频器
的描述程序如下:
4波形仿真
上述的÷8/9双模前置分频器的描述程序经modelsim编译、时序模拟后,得到的波形如图2所示。
由图2可见,当reset为0时,分频器复位,当a为1时,进行8分频,当a为0时则进行9分频。
如图3所示,在前3个时钟,a值为0,则进行9分频,其后一个时钟a为1,进行8分频,后两个脉冲,又进行
9分频,后进行一次8分频,然后又进行两次9分频,最后进行一次8分频。
5电路实现
fpga现场可编程门阵列(fieldprogrammablegatearray)是20世纪80年代中期出现的高密度可编程逻
辑器件。fpga及其软件系统是开发数字电路的最新技术。他利用eda技术,以电路原理图、硬件描述语言、
状态机等形式输入设计逻辑;他提供功能模拟、时序仿真等模拟手段,在功能模拟和时序仿真度满足要求后,
经过一系列的变换,将输入逻辑转换成fpga器件的编程文件,以实现专用集成电路。本设计选用xilinx公
司推出的90nm工艺制造的现场可编程门陈列spartan-3来设计小数分频器,体积减小,可靠性提高。
6结语
采用前置双频分频器设计的小数分频器,小数分频器的精度受控制计数器的影响,当n值为100时,小数分
频的精度达到1/100;当n值为1000时,小数分频的精度达到1/1000;依此类推。fpga有相当丰富的硬件
资源,因此可以用fpga设计高精度的小数分频器。采用fpga组成的数字频率合成器,单环鉴相频率达
100mhz以上,分辨率可达10-6。这种小数分频器得到了广泛的应用,例如,对图象采集系统中的行分频和
列分频的设计,就可以应用本分频器电路作为时钟发生器。