当前位置:文档之家› verilogHDL分频器(奇数分频和偶数分频)

verilogHDL分频器(奇数分频和偶数分频)

verilogHDL分频器(奇数分频和偶数分频)
verilogHDL分频器(奇数分频和偶数分频)

module clk_div(

//-----------input-----------

iCLK,

div,

//-----------output----------

oCLK

);

//-----------input-----------

parameter WIDE=14;

input iCLK;

input[WIDE-1:0]div;

//-----------output-----------

output oCLK;

wire oCLK_odd;

wire oCLK_even;

assign oCLK=div[0]?oCLK_odd:oCLK_even;

div_odd DUTo (.iCLK(iCLK),.oCLK(oCLK_odd),.div(div)); div_even DUTe (.iCLK(iCLK),.oCLK(oCLK_even),.div(div));

endmodule

// odd

module div_odd(

//--------input--------

iCLK,

div,

//--------output--------

oCLK

);

//--------input--------

parameter WIDE=14;

input iCLK;

input[WIDE-1:0]div;

//--------output--------

output oCLK;

reg outCLK;

/*

=========================== solve 1

=========================== reg cout;

reg[WIDE-1:0] cnt;

initial cnt=0;

wire inCLK;

reg cc;

initial cc=0;

always @(posedge cout)

cc<=~cc;

assign inCLK = iCLK^cc;

always @(posedge inCLK)

begin

if(cnt<(div[WIDE-1:1]))

begin

cnt<=cnt+1;

cout<=1'b0;

end

else

begin

cnt<=0;

cout<=1'b1;

end

end

always @(negedge iCLK)

outCLK <= cout;

assign oCLK=cc;

*/

//======================== //solve 2

//======================== reg[WIDE-1:0] cnt_a;

initial cnt_a=0;

reg[WIDE-1:0] cnt_b;

initial cnt_b=0; reg cout_a;

reg cout_b;

always @(negedge iCLK)

begin

else if(cnt_a<=(div[WIDE-1:1]))

begin

cnt_a=cnt_a+1;

cout_a=1'b1;

end

else if(cnt_a>(div[WIDE-1:1])&&cnt_a<(div[WIDE-1:0]-1))

begin

cout_a=1'b0;

cnt_a=cnt_a+1;

end

else

begin

cnt_a=0;

end

end

always @(posedge iCLK)

begin

if(cnt_b<=(div[WIDE-1:1]))

begin

cnt_b=cnt_b+1;

cout_b=1'b1;

end

else if(cnt_b>(div[WIDE-1:1])&&cnt_b<(div[WIDE-1:0]-1))

begin

cout_b=1'b0;

cnt_b=cnt_b+1;

end

else

begin

cnt_b=0;

end

end

assign oCLK = cout_a&cout_b;

endmodule

//even

module div_even(

//--------input--------

iCLK,

div,

//--------output--------

oCLK

);

//--------input--------

parameter WIDE=14;

input iCLK;

input[WIDE-1:0]div;

//--------output--------

output oCLK;

reg oCLK;

initial oCLK = 1'b0;

reg[WIDE-1:0] cnt;

initial oCLK = 0;

always @(posedge iCLK)

begin

if(cnt<(div[WIDE-1:1]-1))

cnt <= cnt + 1;

else

begin

cnt <= 0;

oCLK <= ~oCLK;

end

end

endmodule

//============================

//testbench

//============================

/*

module clk_div_test;

//-----------input-----------

parameter WIDE=14;

reg iCLK;

reg[WIDE-1:0] div;

//-----------output-----------

wire oCLK;

clk_div cc(.iCLK(iCLK),.div(div),.oCLK(oCLK));

always #20 iCLK = ~iCLK;

initial

begin

iCLK = 0;

div=14'd7;

#1000 $stop;

end

endmodule

*/

module clk_div14bits(clk,a,clkout);

input clk,a;

output clkout;

reg clkout;

wire oCLK1,oCLK2;

clk_div cc1(.div(14'd8),.iCLK(iCLK),.oCLK(oCLK1)); clk_div cc2(.div(14'd9),.iCLK(iCLK),.oCLK(oCLK2));

always @(a or posedge clkin)

begin

if(a==1)

clkout=oCLK1;

else

clkout=oCLK2;

end

endmodule

//测试代码

//testbench

module clk_div14bits_test;

//-----------input-----------

parameter WIDE=14;

reg clk;

reg[WIDE-1:0] div;

//-----------output-----------

wire oCLK;

clk_div14bits cc3(.clk(clk),.a(a),.clkout(clkout)); always #20 clk = ~clk;

initial

begin

iCLK = 0;

div=14'd7;

#1000 $stop;

End

Modelsim仿真结果

1.七分频

2.四分频

分频器

第36卷第2期信息化研究Vo l.36 No. 2 2010年2月I nfo r m a t iza t ion R e s ea r ch Feb. 2010 基于FPGA 的任意数值分频器的设计 周殿凤,康素成,王俊华 (盐城师范学院物理科学与电子技术学院,江苏省盐城市224002 ) 摘要:介绍了基于FPG A 的任意分频系数的分频器的设计,该分频器能实现分频系数和占空比均可以调节的3 类分频:整数分频、小数分频和分数分频。所有分频均通过VHDL 语言进行了编译并且给出了仿真图。本设计中的分频器没有竞争冒险,可移植性强,占用的FPG A资源少。本设计在A l2 te ra 公司的Cyc l o neⅡ系列EP2C35 型FPG A芯片中完全可实现,结果表明设计是正确和可行的。由于分频器应用非常广泛,故本设计具有很强的实用价值。 关键词: FPG A; VHDL;分频器 中图分类号: TP277 0 引言 FPG A 作为未来数字系统的 3 大基石( FPG A、D SP、CPU ) 之一, 成为目前硬件设计研究的重点[ 1 ] 。 在数字系统的设计中,设计人员会遇到各种形式的分频需求,如偶数分频、奇数分频、半整数分频、小数分频率的1 / 10。从图1可看出当j = 5 = m/ 2时输出时钟占空比为50 %。 图110分频器波形图 和分数分频等。在某些设计中,系统不仅对频率有要求,而且对占空比也有严格的要求。由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频实现起来较为简单, 但对半整数分频及等占空比的奇数分频实现较为困难,小数分频和分数分频更 占空比为50 %的奇数分频实现起来较为困难,实现的方法较多,文中介绍了一种占用资源较少的方法。假设要实现占空比为50 %的m = 2 n+ 1 分频, 选择两个2 n+ 1进制计数器控制两个中间时钟c lk1 和c l k2 , 1 号计数器在输入时钟c l k的上升沿计数, 2 号在c l k 的 困难[ 2 ] 。为了解决这一问题,本文首先分析了各种分下降沿计数。当计数器1 输出为0 ~n - 1 时c l k1 为 频器的设计方法,然后将其综合起来成为一个通用分频器。通过分析分频器的原理,探索出了一套简单明了的设计方法,设计了一个任意数值通用分频器,该分频器没有毛刺且占用的逻辑资源较少。 1 整数分频器 偶数分频器的设计较为简单,可以利用计数器实1 ,输出为n ~2 n 时c l k1为0 且计数器1 输出为 2 n时计数器1清0 , 如此循环下去; 当计数器2输出为0 ~n - 1 时c l k2为1 ,输出为n ~2 n 时c l k2为0且计数器2输出为 2 n时计数器 2 清0 ,如此循环下去。可见2种计数器实现方法一样,只是翻转的边沿不一样,最终输出的时钟c l kou t = c l k1 + c l k2。占空比为50 %的奇数分频仿真图见图2 ,图中m = 9 ,因此是9 分频电路, 现[ 3 ] 。假设要实现m = 2 n分频, 当计数器的值为0 ~通过预置值m 可以非常方便的对分频系数进行设置 j - 1时,输出时钟为 1 ,计数器的值为j~2 n- 1 时,输出时钟为0 ,在计数器值为2 n - 1 时复位计数器,如此循环下去,即可实现占空比为j/2 n的分频, m 和j都是预置数, j用于调节占空比, m 调节分频系数。m 的值不同,分频系数也就不同, 如果预置数m 是奇数则可实现占空比不等于50 %的奇数分频。图1 中m 取值10,故实现的是10 分频, 输出时钟频率是输入时钟频收稿日期: 2009212 220; 修回日期: 2010201 209。 基金项目:江苏省高校自然科学基金资助项目( 08KJD140005) ;盐城师范学院校级基金资助项目( 09YCK L 016) 。而不需要重新编程。 图29分频器波形图 2小数分频器 小数分频器是通过可变分频和多次平均的方法得到的[ 4 25 ] 。假设要进行m . n分频( m 、n都是整数, 且n < 10 ),因为只有一位小数,所以总共要进行1 0次分 ·59·

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

第6卷第12期2006年6月1671—1815f2006112—1609—04科学技术与工程 ScienceTechnologyandEngineering V01.6No.12Jun.2006 ⑥2006 Sci.Tech.Engng. 通信技术 基于VHDL的全数字分数分频器设计 尹辉炳张涛 (中国科学院上海技术物理研究所.上海200083) 摘要介绍了,全数字化的分数分频器的两种设计方法.分析了它们的特点.然后采用VHDL硬件描述语言设计了全数字化的分数分频器,并且给出了设计任意分数分频器的方法。 关键词VHDLFPGA/CPI.D分数分频器 中图法分类号TN742.1:艾献标识码A 在数字电路设计中.经常需要用到分频电路。一般的整数分频器可以很容易地通过D触发器或者模Ⅳ计数器来实现。但是.有时候电路中需要用到各种不同的频率.而时钟源通常只有有限的一两个.这时候就会碰到需要分数分频的情况。文献『1,2]中给出了一种实现半整数分频器的方法.这里通过对该电路进行建模和分析,对其进行扩展.得到更为一般的形式,使其能实现(N一1/M)分频。另外,根据文献fI1中分数分频的基本原理,设计了一种通用分数分频器.并且给出了确定分数分频器参数的方法。最后对这两种分数分频器进行了比较说明。 1(Ⅳ_1肋)型分频器设计 1.1基本原理 文献『1,2]中给出了一种半整数分频器,其电路组成如图1所示,由一个异或门,一个模Ⅳ计数器,以及一个2分频器组成。 图1半整数分频器电路组成 2006年1月16日收到 第一作者简介:尹辉炳(1980一),男,江苏丹阳人,中国科学院上海技术物理研究所硕十研究生,研究方向:红外信号与信息处理。其慨。=志≯。^=寿。 网23.5分频器仿真波j髟 采用VHDL语言设计上述电路(令N=4).并进行仿真得到波形如图2所示.图中clkin为输入波形.比锨五和clk—in可以得出:勘的每个周期中f.kgclk.in少一个正脉冲。但是.观察模Ⅳ计数器输出temp.就可以发现,实际上在矗的每个周期中£是ELelkin多了一个正脉冲j分析如下:没此时刻为图中五的第一个高电平下降沿前一刻,^=1,然后clkin由1变为0,导致异或门的输出£变为1,£的上升沿使模Ⅳ(模4)计数器计数.计数器结果加1。由于计数器计到了最大值,故clkout输出高电平1.elkout的上升沿又促使2分频器工作,使磊由1变为0,然后兀反馈回异或门得输人端,与cklin通过异或门使7:变为0.反馈使得‘由0变为1.以后经过一段时问又返回0。 根据上面的分析.可以将异或门看作是频率加法器.于是可以得到半整数分频器如下的数学模型 框图(图3)。

分频器设计实验报告

竭诚为您提供优质文档/双击可除分频器设计实验报告 篇一:n分频器分析与设计 一、实验目的 掌握74190/74191计数器的功能,设计可编程计数器和n分频器,设计(n-1/2)计数器、分频器。 二、实验原理 分频是对输入信号频率分频。1、cD4017逻辑功能 2、74190/74191逻辑功能 3、集成计数器级联 当所需计数器模数超过所选计数器最大计数状态时,需要采取多片计数器级联。方法分为异步级联和同步级联。4、集成计数器的编程 在集成计数器的时序基础上,外加逻辑门电路等,反馈集成计数器的附加功能端,达到改变计数器时序的目的。可采用复位编程和置数编程两种。5、多片74190/74191计数器级联 可根据具体计数需求和增减需求,选用74190或74191,

选择不同功能、同步或异步设计等。 6、74190/74191计数器编程 由于没有复位端,因此只能使用置数编程,置数端置为0即可异步置数。可根据需求设计n进制加法或减法计数器。 n与译码逻辑功能如下。 7、74191组成(n-1/2)分频器电路如下图: u3 计数器的两个循环中,一个循环在cp的上升沿翻转;另一个是在cp的下降沿翻转,使计数器的进制减少1/2,达到(n-1/2)分频。 三、实验仪器 1、直流稳压电源1台 2、信号发生器1台 3、数字万用表1台 4、实验箱1台 5、示波器1台 四、仿真过程 1、按照cD4017和74191功能表验证其功能。 2、74191组成可编程计数器 (1)构成8421bcD十进制加法计数器,通过实验验证正确性,列出时序表。设计图如下 仿真波形如下 (2)构成8421bcD十进制减法计数器,通过实验验证正确性,列出时序表。设计图如下: 仿真波形如下

小数分频器原理

基于CPLD/FPGA的半整数分频器的设计 在数字逻辑电路设计中,分频器是一种基本电路。通常用来对某个给定频率进行分频,以得到所需的频率。整数分频器的实现非常简单,可采用标准的计数器,也可以采用可编程逻辑器件设计实现。但在某些场合下,时钟源与所需的频率不成整数倍关系,此时可采用小数分频器进行分频。比如:分频系数为2.5、3.5、7.5等半整数分频器。笔者在模拟设计频率计脉冲信号时,就用了半整数分频器这样的电路。由于时钟源信号为50MHz,而电路中需要产生一个20MHz的时钟信号,其分频比为2.5,因此整数分频将不能胜任。为了解决这一问题,笔者利用VIDL硬件描述语言和原理图输入方式,通过MAX+plus II开发软件和ALTERA公司的FLEX系列EPF10K10LC84-4型FPGA方便地完成了半整数分频器电路的设计。 2 小数分频的基本原理 小数分频的基本原理是采用脉冲吞吐计数器和锁相环技术先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。如设计一个分频系数为10.1的分频器时,可以将分频器设计成9次10分频,1次11分频,这样总的分频值为: F=(9×10+1×11)/(9+1)=10.1 从这种实现方法的特点可以看出,由于分频器的分频值不断改变,因此分频后得到的信号抖动较大。当分频系数为N-0.5(N为整数)时,可控制扣除脉冲的时间,以使输出成为一个稳定的脉冲频率,而不是一次N分频,一次N-1分频。 3 电路组成 分频系数为N-0.5的分频器电路可由一个异或门、一个模N计数器和一个二分频器组成。在实现时,模N计数器可设计成带预置的计数器,这样可以实现任意分频系数为N-0.5的分频器。图1给出了通用半整数分频器的电路组成。

分频器的设计2014-1-10 10.29.8

武汉理工大学《微机原理与接口技术》课程设计报告书

号:
0121105830129
课 程 设 计
题 学 专 班 姓
目 院 业 级 名
分频信号发生器的分析与设计 自动化学院 电气工程及自动化 电气 1107 班 成涛 陈静 教授
指导教师
2014 年
01 月
09 日

武汉理工大学《微机原理与接口技术》课程设计报告书
课程设计任务书
学生姓名: 指导教师: 题 目: 成涛 专业班级: 电气 1107 班 陈静 教授 工作单位: 自动化学院 分频信号发生器的分析与设计
要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰 写等具体要求) 1. 设:有一输入方波信号 f0(<1MHz) 。要求输出信号:f1=f0/N,N 通过键盘 输入。 2. 画出简要的硬件原理图,编写程序。 3. 撰写课程设计说明书。 内容包括:摘要、 目录、 正文、 参考文献、 附录 (程 序清单) 。正文部分包括:设计任务及要求、方案比较及论证、软件设计说明(软 件思想,流程,源程序设计及说明等) 、程序调试说明和结果分析、课程设计收 获及心得体会。
时间安排: 12 月 26 日----- 12 月 28 日 查阅资料及方案设计 12 月 29 日----- 01 月 0 2 日 编程 01 月 03 日-----0 1 月 07 日 调试程序 01 月 08 日----- 01 月 09 日 撰写课程设计报告
指导教师签名: 系主任(或责任教师)签名:
年 年
月 月
日 日

VHDL非整数分频器设计实验报告

非整数分频器设计 一、 输入文件 输入时钟CLK: IN STD_LOGIC 二、 设计思路 1. 方法一:分频比交错 (1) 确定K 值 先根据学号S N 确定M 和N :为了保证同学们的学号都不相同,取学号的后四位,即N S =1763 ()mod 1920(mod 17)0 17mod 17 S S S N N if N then M else M N =+=== 由以上公式,得N=(1763 mod 19)+20=35 M=(1763 mod 17)=12 然后根据下式计算分频比K 的值: 8()9N M M K N -+= = =8.34285714 (2) 确定交错规律 使在35分频的一个循环内,进行12次9分频和23次8分频,这样,输出F_OUT 平均为F_IN 的8.34285714分频。为使分频输出信号的占空比尽可能均匀,8分频和9分频应‘交替’进 (3) 设计框图:要求同步时序设计

(4)代码 在实体内定义两个进程(PROCESS P1和PROCESS P2),一个进程控制输出8/9分频,一个进程控制35分频周期比例输出。控制器输出FS_CTL信号控制输出是8分频还是9分频,分频器输出C_ENB信号来控制35分频计数器计数。 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; USE IEEE.STD_LOGIC_ARITH.ALL; ENTITY DIV IS--定义实体,实体名DIV PORT(F_IN: IN STD_LOGIC;--输入时钟信号 F_OUT: OUT STD_LOGIC--输出时钟信号 ); END DIV; ARCHITECTURE A OF DIV IS SIGNAL CN1: INTEGER RANGE 0 TO 7;--8分频计数器 SIGNAL CN2: INTEGER RANGE 0 TO 8;--9分频计数器 SIGNAL CN: INTEGER RANGE 0 TO 34;--整体计数器 SIGNAL C_ENB: STD_LOGIC;--整体计数器时钟驱动信号 SIGNAL FS_CTL: STD_LOGIC;--控制8、9分频比例信号,高电平8分频,低电平9分频 BEGIN P1:PROCESS(F_IN)--8、9分频计数进程 BEGIN IF (F_IN'EVENT AND F_IN='1') THEN IF(FS_CTL='0') THEN--9分频 IF CN2=8 THEN--计数 CN2<=0; ELSE CN2<=CN2+1; END IF; IF CN2>4 THEN--控制输出,占空比0.5 F_OUT<='1'; ELSE F_OUT<='0'; END IF; IF CN2=8 THEN--控制整体计数器驱动信号 C_ENB<='1'; ELSE C_ENB<='0'; END IF; ELSE IF CN1=7 THEN--8分频计数,同上 CN1<=0; ELSE CN1<=CN1+1; END IF; IF CN1>3 THEN F_OUT<='1'; ELSE F_OUT<='0'; END IF; IF CN1=7 THEN C_ENB<='1'; ELSE C_ENB<='0'; END IF; END IF; END IF; END PROCESS P1; P2:PROCESS(C_ENB)--整体计数进程 BEGIN IF (C_ENB'EVENT AND C_ENB='1') THEN--由驱动信号驱动 IF CN=34 THEN--计数 CN<=0; ELSE CN<=CN+1; END IF; IF (CN=34 OR CN=2 OR CN=5 OR CN=8 OR CN=11 OR CN=14 OR CN=17 OR CN=20 OR CN=23 OR CN=26 OR CN=29 OR CN=32) THEN FS_CTL<='0'; ELSE FS_CTL<='1'; END IF;--8、9分频比例分配 ELSE CN<=CN; END IF; END PROCESS P2; END A;

实验一 QUARTUS II入门和分频器设计

实验报告 课程名称EDA技术与VHDL设计 实验项目Quartus II入门 实验仪器计算机、Quartus II 系别信息与通信工程学院 专业电子信息工程 班级/学号电信1201 / 2012010970 学生姓名张宗男 实验日期 成绩 指导教师

实验一 QUARTUS II入门和分频器设计 一、实验目的 1.掌握QUARTUS II工具的基本使用方法; 2.掌握FPGA基本开发流程和DE2开发板的使用方法; 3.学习分频器设计方法。 二、实验内容 1.运用QUARTUS II 开发工具编写简单LED和数码管控制电路并下载到DE2 实验开发板。2.在QUARTUS II 软件中用VHDL语言实现十分频的元器件编译,并用电路进行验证,画出仿真波形。 三、实验环境 1.软件工具:QUARTUS II 软件;开发语言:VHDL; 2.硬件平台:DE2实验开发板。 四、实验过程 1.设计思路 (1)、 18个开关控制18个LED灯,通过低位四个开关的‘1’‘0’控制LED灯上7段灯的显示(2)、 实现10分频IF(count="1001") THEN count<="0000"; clk_temp<=NOT clk_temp; 达到9的时候,把“0000”给到cout,然后clk_temp 信号翻转,从而实现10分频。 2.VHDL源程序 (1)、 LIBRARY ieee; USE ieee.std_logic_1164.all; ENTITY e_zhangzongnan IS PORT(SW :IN STD_LOGIC_VECTOR(0 TO 17); HEX0 :OUT STD_LOGIC_VECTOR(0 TO 6);

课程设计基于FPGA的半整数分频器设计

课程设计报告 设计名称EDA(VHDL)课程设计 专业班级电子0942 姓名姬鹏冲 学号0904451213 成绩评定 电气与信息工程学院 二0一二年一月 课程设计要求和成绩考核办法 (要求和成绩考核办法在封皮背面打印) 1.不允许在教室或实验室内吸烟、吃零食,不准带无关人员到教室或实验室活动,否则扣平时表现分。 2.凡病事假超过3天(每天7小时),或迟到早退三次以上,或旷课两次(1天)以上,不得参加本次考核,按不及格处理,本次课程设计不能通过。 3.病事假必须有请假条,需经班主任或有关领导批准,否则按旷课处理。 4.课程设计的考核由指导教师根据设计表现(出勤、遵守纪律情况等)、设计报告、设计成果、答辩等几个方面,给出各项成绩或权重,综合后给出课程设计总成绩。该设计考核须经教研室主任审核,主管院长审批备案。 5.成绩评定采用五级分制,即优、良、中、及格和不及格。 6.课程设计结束一周内,指导教师提交成绩和设计总结。 7.设计过程考核和成绩在教师手册中要有记载。

实习报告要求 实习报告内容、格式各专业根据实习(设计)类别(技能实习、认识实习、生产实习、毕业实习等)统一规范,经教研室主任审核、主管院长审批备案。 注意: 1.课程设计任务书和指导书在课程设计前发给学生,设计任务书放置在设计报告封面后和正文目录前。 2.为了节省纸张,保护环境,便于保管设计报告,统一采用A4纸,课程设计报告建议双面打印(正文采用宋体五号字)或手写,左侧装订,订两个钉。 基于FPGA的半整数分频器设计 一、系统设计任务及功能概述 本系统是利用VHDL硬件描述语言和原理图输入方式,通过MUX+PLUSⅡ开发软件和ALTER 公司的FLEX系列EPF10K10LC84-4型FPGA方便的完成了半整数分频器电路的设计。本系统是通过控制单位时间内两种分频比出现的不同次数来获得所需要的小数分频值。 二、系统设计方案和程序设计 1.系统设计方案 我们采用脉冲吞吐计数器和锁相环技术,先设计两个不同分频比的整数分频器,然后通过控制单位时间内两种分频比出现的不同次数来获得所需要的5.5分频值。该分频器电路可由一个异或门、一个模6数器和二分频器组成。这样可以实现分频系数为5.5分频器以及11分频。 设计框图如下所示 2.VHDL程序设计 (1)模6计数器VHDL描述设计 该计数器可产生一个分频系数为5.5分频器,并产生一个默认的逻辑符号cont6。其输入端口为rst、en和clk;输出端口为qa,qb,qc。下面给出模6数器的VHDL描述代码:libraryieee; use ieee.std_logic_1164.all; useieee.std_logic_unsigned.all; entity cont6 is port(clk:instd_logic; rst:instd_logic; en:instd_logic; qa,qb,qc:outstd_logic); end entity cont6; architecturewode of cont6 is signalcount:std_logic_vector(2 downto 0); begin process(clk,rst,en)is begin

分频器实验

实验一分频器设计 一、实验项目 分频器设计实验:利用QuatusII仿真实现分频器设计。 二、实验仪器及器件 计算机、USB-BLASTER下载线、数字系统实验箱、5V稳压电源。 三、实验目的 1、熟悉教学实验板的使用,初步了解掌握Verilog HDL语言和VHDL语言。 2、掌握分辨器原理,熟悉分频器的功用,学习分频器的设计、掌握用 Verilog HDL 或者VHDL 语言描述分频器的方法。 3、熟悉和掌握FPGA开发软件QuatusII的基本操作,用QuatusII编译Verilog 和VHDL语言。 4、掌握USB-BLASTER下载工具的安装、以及程序下载方法。 5、学会FPGA I/O引脚分配和实现过程。 四、实验要求及内容 1、首先下载给定的VHDL硬件描述语言编写的分频器示例程序,读懂程序, 编译并仔细观察在实验板上的现象。 2、在QuatusII平台上进行波形仿真。 3、扩展内容:设计分频电路得到3分频器、8分频器和32分频器。编写分 频器的Verilog 或VHDL代码,并仿真,同时给出3、8、32分频仿真波 形。 五、实验原理 一个数字系统中往往需要多种频率的时钟脉冲作为驱动源,这样就需要对FPGA的系统时钟(频率较高)进行分频。比如在进行流水灯、数码管动态扫描设计时不能直接使用系统时钟(太快而肉眼无法识别),或者需要进行通信时,由于通信速度不能太高(由不同的标准限定),这样就需要对系统时钟分频以得到较低频率的时钟。 分频器主要分为偶数分频、奇数分频、半整数分频和小数分频,如果在设计过程中采用参数化设计,就可以随时改变参量以得到不同的分频需要。 在对时钟要求不是很严格的FPGA系统中,分频通常都是通过计数器的循环计数来实现的。 偶数分频(2N)

3分频器的设计

三分频器的设计 时钟输入端(clkin)首先反向和不反向分别接到两个D触发器的时钟输入端,两个D触发器的输出接到一个二输入或非门的输入端,或非门的输出反馈到前面两个D触发器的D输入端,并且或非门的输出后面接一二分频器,得到占空比为50%的三分频波形。 图1:图形设计 VHDL程序: library ieee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; use ieee.std_logic_arith.all; entity fen3 is port (clkin : in std_logic; --时钟输入 qout1 : buffer std_logic; qout2 : buffer std_logic; qout3 : buffer std_logic; clkout : out std_logic --占空比为1/2的三分频输出 ); end fen3; architecture behave of fen3 is begin qout3<=qout1 nor qout2; process(clkin) begin if clkin'event and clkin='1' then --在上升沿触发 qout1<=qout3; end if;

end process; process(clkin) begin if clkin'event and clkin='0' then --在下降沿触发 qout2<=qout3; end if; end process; process(qout3) variable tem:std_logic; begin if qout3'event and qout3='1' then --二分频tem:=not tem; end if; clkout<=tem; end process; end behave; 图3:仿真结果

分频器的设计

首先讲一下单元: 一般情况下,我们对单元按频率会划分为超高音,高音,中高音,中音,重低音,低音,超低音 超高音:負責22kHz以上的頻率 高音:負責5000Hz~22kHz頻率、 中音:負責1500~5000Hz頻率 低音:負責1500Hz以下頻率 超低音(增加)負責200Hz以下頻率 也有网友提出其她的划分标准 以A音(C调的“哆来咪法嗦啦西”的“啦”音,频率为440赫兹)为基准音,以倍频的形式向下三个八度向上五个八度,把全音域分为八个八度,一个个八度就就是音响上常说的一个倍频程(1oct)。具体的划分就是这样的: 55-110赫兹,110-220赫兹,220-440赫兹,440-880赫兹,880-1760赫兹,1760-3520赫兹,3520-7040赫兹,7040-14080赫兹,共八段(八个八度)。这样就很清晰的瞧出频段的划分了。110赫兹以下-超低频; 110-220赫兹-低频; 220-440赫兹-中低频; 440-880赫兹-低中频; 880-1760赫兹-中频; 1760-3520赫兹-中高频; 3520-7040赫兹-高频; 7040赫兹以上-超高频。 还有两种频段划分方法 以“E”音划分 -20 次低频 20-40 极低频 40-80 低频下段 80-160 低频上段 160-320 中频下段 320-640 中频中段

640-1280 中频上段 1280-2560 高频下段 2560-5120 高频中段 5120-10240 高频上段 10240- 极高频 以“C”划分 -63 极低频 63-125 低频下段 125-250 低频上段 250-500 中频下段 500-1K 中频中段 1K-2K 中频上段 2K-4K 高频下段 4K-8K 高频上段 8K- 极高频 分频器的主要元件:电阻,电感,电容 电阻在分频器中的作用:调整灵敏度 电感:其特性就是阻挡较高频率,只让较低的频率通过电容:其特性与电感刚好相反,也就就是阻挡频率通过

半整数分频器的设计

22.半整数分频器的设计 一、实验原理: 1小数分频的基本原理 设有一个5 MHz的时钟源,但电路中需要产生一个2 MHz的时钟信号,由于分频比为2.5,因此整数分频器将不能胜任。 采用可编程逻辑器件实现分频系数为2.5的分频器,可采用以下方法:设计一个模3的计数器,再设计一个扣除脉冲电路,加在模3计数器输出之后,每来两个脉冲就扣除一个脉冲(实际上是使被扣除的脉冲变成很窄的脉冲,可由异或门实现),就可以得到分频系数为2.5的小数分频器。采用类似方法,可以设计分频系数为任意半整数的分频器。 小数分频的基本原理为脉冲吞吐计数法:设计两个不同分频比的整数分频器,通过控制单位时间内两种分频比出现的不同次数,从而获得所需的小数分频值。例如设计一个分频系数为10.1的分频器,可以将分频器设计成9次10分频,1次11分频,这样总的分频值为 (9×10+1×11)/(9+1) =10.1 从这种实现方法的特点可以看出,由于分频器的分频值在不断改变,因此分频后得到的信号抖动较大。 当分频系数为N-0.5(N为整数)时,可控制扣除脉冲的时间,使输出为一个稳定的脉冲频率,而不是一次N分频,一次N-1分频。 1.2 电路组成 设需要设计一个分频系数为N-0.5的分频器,其电路可由一个模N计数器、一个二分频器和一个异或门组成,如图1所示。在实现时,模N计数器可设计成带预置的计数器,这样就可以实现任意分频系数为N-0.5的分频器。 二、半整数分频器代码: VHDL程序: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY deccount IS PORT ( inclk: IN STD_LOGIC; --时钟源 preset: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --预置分频值N outclk1: OUT STD_LOGIC; outclk2: BUFFER STD_LOGIC ); --输出时钟

分频器的设计

分频器的设计 一、课程设计目的 1.学会使用电路设计与仿真软件工具Hspice,熟练地用网表文件来描述模拟电路,并熟悉应用Hspice内部元件库。通过该实验,掌握Hspice的设计方法,加深对课程知识的感性认识,增强电路设计与综合分析能力。 2.分频器大多选用市售成品,但市场上出售的分频器良莠不齐,质量上乘者多在百元以上,非普通用户所能接受。价格在几十元以下的分频器质量难以保证,实际使用表现平庸。自制分频器可以较少的投入换取较大的收获。 二.内容 分频器-概述 分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器,即使在输入输出信号均为正弦波时也往往采用模数转换-数字分频-数模转换的方法来实现分频。正弦分频器除在输入信噪比低和频率极高的场合已很少使用。

分频器-作用 分频器是音箱中的“大脑”,对音质的好坏至关重要。功放输出的音乐讯号必须经过分频器中的各滤波元件处理,让各单元特定频率的讯号通过。要科学、合理、严谨地设计好音箱之分频器,才能有效地修饰喇叭单元的不同特性,优化组合,使得各单元扬长避短,淋漓尽致地发挥出各自应有的潜能,使各频段的频响变得平滑、声像相位准确,才能使高、中、低音播放出来的音乐层次分明、合拍,明朗、舒适、宽广、自然的音质效果。 在一个扬声器系统里,人们把箱体、分频电路、扬声器单元称为扬声器系统的三大件,而分频电路对扬声器系统能否高质量地还原电声信号起着极其重要的作用。尤其在中、高频部分,分频电路所起到的作用就更为明显。其作用如下: 合理地分割各单元的工作频段; 合理地进行各单元功率分配; 使各单元之间具有恰当的相位关系以减少各单元在工作中出现的声干涉失真; 利用分频电路的特性以弥补单元在某频段里的声缺陷; 将各频段圆滑平顺地对接起来。 分频器-分类 1)功率分频器:位于功率放大器之后,设置在音箱内,通过LC滤波网络,将功率放大器输出的功率音频信号分为低音,中音和高音,分别送至各自扬声器。连接简单,使用方便,但消耗功率,出现音频谷

通用分频器基本原理

通用分频器基本原理 整数分频包括偶数分频和奇数分频,对于偶数N分频,通常是由模N/2计数器实现一个占空比为1:1的N分频器,分频输出信号模N/2自动取反。对于奇数N分频,上述方法就不适用了,而是由模N计数器实现非等占空比的奇数N分频器,分频输出信号取得是模N计数中的某一位(不同N值范围会选不同位)。这种方法同样适用于偶数N 分频,但占空比不总是1:1,只有2的n次方的偶数(如4、8、16等)分频占空比才是1:1。这种方法对于奇数、偶数具有通用性。半整数分频器也是在这种方法基础上实现的。除了一个模N计数器,还需要一个异或模块和一个2分频模块。半整数分频器原理如图1所示:半整数分频器设计思想:通过异或门和2分频模块组成一个改变输入频率的脉冲添加电路,也就是说N-0.5个输入信号周期内产生了N个计数脉冲,即输入信号其中的一个含一个脉冲的周期变为含两个脉冲的周期。而这一改变正是输入频率与2分频输出异或的结果。由2分频输出决定一个周期产生两个脉冲有两种方式:当一个输入信号来一个脉冲(前半周期)时,2分频输出变为‘1’,clk_in 取反,后半周期就会产生一个脉冲;2分频输出由‘1’变为‘0’时,clk_in刚把一个周期(前半周期)内低电平变为高电平产生一个脉冲,而后半周期的脉冲与‘0’异或不变。从而实现N-0.5分频。要实现奇数、偶数、半整数通用分频器只需再加一个控制选择信号sel。当sel=‘1’时,clk_in与2分频输出异或,实现半整数分频;当sel=‘0’时,只选通clk_in,实现整数分频。通用分频器原理如图

2所示:Verilog语言的实现本设计采用层次化的设计方法,首先设计通用分频器中各组成电路元件,然后通过元件例化的方法,调用各元件,实现通用分频器。1、选择异或门模块half_select:modulehalf_select(sel,a,b,c); outputc; inputsel,a,b; xoru1(w,a,b); assignc=sel?w:a; (当sel=‘1’时,clk_in与2分频输出异或,实现半整数分频;当sel=‘0’时,只选通clk_in,实现整数分频。)endmodule 2、模N计数器counter_n:实现参数化设计N可取2~256,也可增加count位数使N可取更大的值。以N=7为例通过设置sel分别实现奇数7分频和半整数 6.5分频。modulecounter_n(reset,en,clk_in,clk_out,count); parameterN=7;inputreset,en,clk_in;outputclk_out; output[7:0]count;regclk_out;reg[7:0]count; always@(posedgeclk_in)begin if(reset)begin count[7:0]=0;end elseif(en)begin if(count==(N-1))count=0;else count=count1; end end always begin if(N clk_out=count[0]; elseif(N clk_out=count;elseif(N clk_out=count; elseif(N 在复杂数字逻辑电路设计中,经常会用到多个不同的时钟信号。介绍一种通用的分频器,可实现2~256之间的任意奇数、偶数、半整数分频。首先简要介绍了FPGA器件的特点和应用范围。接着介绍了通用分频器的基本原理和分类,并以分频比为奇数7

EDA 半整数分频器的设计实验报告

EDA技术实验项目报告 项目题目: 半整数分频器的设计 姓名: 院系:应用技术学院 专业:电子信息工程(职教) 学号: 指导教师: 综合成绩: 完成时间: 2012 年 6 月13 日一、项目实验内容摘要 基于FPGA硬件开发板,利用QuartusII软件通过VHDL输入的方式实现2.5分频器的设计并用示波器观察; 试验目的:

1、掌握半整数分频器的VHDL设计原理与方法。 2、掌握在QUARTUS II中进行简单数字系统设计的全过程。 实验原理: 设有一个5MHz的时钟源,但电路中要产生一个2MHz的时钟信号,由于分频比为2.5,因此整数分频器将不能胜任。 采用可编程逻辑器件实现分频系数为2.5的分频器,可采用以下方法:设计一个模3的计数器,再设计一个扣除脉冲电路,加在模3计数器输出之后,每来两个脉冲就扣除一个脉冲(实际上是使被扣除的脉冲变成很窄的脉冲,可由异或门实现),就可以得到分频系数为2.5的小数分频器。采用类似方法,可以设计分频系数为任意半整数的分频器。 当分频系数为N—0.5(N为整数)时,可控制扣除脉冲的时间,是输出为一个稳定的脉冲频率,而不是一次N分频,一次N-1分频。 二、项目实验源代码 分频器代码 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY deccount IS PORT ( inclk: IN STD_LOGIC; --时钟源 preset: IN STD_LOGIC_VECTOR(3 DOWNTO 0); --预置分频值N outclk1: OUT STD_LOGIC; outclk2: BUFFER STD_LOGIC ); --输出时钟 END deccount; ARCHITECTURE deccount_arch OF deccount IS SIGNAL clk, divide2: STD_LOGIC; SIGNAL count: STD_LOGIC_VECTOR(3 DOWNTO 0); BEGIN clk<=inclk XOR divide2; --inclk与divide2异或后作为模N计数器的时钟 outclk1<=inclk; PROCESS(clk) BEGIN IF(clk'event AND clk='1') THEN IF(count="0000") THEN count<=preset-1; --置整数分频值N outclk2<='1'; ELSE count<=count-1; --模N 计数器减法计数 outclk2<='0'; END IF; END IF; END PROCESS; PROCESS(outclk2)

奇数和半整数分频器

奇数分频器 1 引言 分频器在CPLD/FPGA设计中使用频率非常高,尽管目前大部分设计中采用芯片厂家集成的锁相环资源,但是对于要求奇数倍分频、小数倍分频的应用场合却往往不能满足要求。硬件工程师希望有一种灵活的设计方法,根据需要,在实验室就能设计分频器并马上投入使用,更改频率时无需改动原器件或电路板,只需重新编程,在数分钟内即可完成。 对于偶数分频,使用一模N计数器模块即可实现,即每当模N计数器从0开始计数至N时,输出时钟进行翻转,同时使计数器复位,使之从0开始重新计数,以此循环即可实现。但对于奇数分频,实现50%的占空比却是比较困难的。下面给出占空比50%的奇数分频器的设计源程序和仿真结果。 2 VHDL程序 LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL;--添加库 ENTITY fdiv IS --设计实体PORT( clk,reset : IN STD_LOGIC;--端口说明preset: IN INTEGER;--preset:分频预置数clkout : OUT STD_LOGIC);- -clkout :分频后得到的时钟END fdiv; ARCHITECTURE behave OF fdiv IS--设计构造体SIGNAL s1,s2 : STD_LOGIC;--内部信号s1,s2 SIGNAL cnt : INTEGER RANGE 0 TO preset-1;--模为preset的计数信号BEGIN P1: PROCESS(clk,reset) --计数器BEGIN IF reset='1' THEN cnt<=0; ELSIF clk'event AND clk='1' THEN IF cnt=0 THEN

分频器的制作

利用一个软件帮你设计一下,高人请指点 ============= 分频器设计============= 您选择的是二阶(-12dB/oct)分频网络 分频点=3500 Hz 低音单元分频点阻抗=8 Ω 高音单元分频点阻抗=8 Ω +────L1──┬──┐ ││+ C1 Bass ││- - ───────┴──┘ + ────C2──┬──┐ ││- L2 High ││+ - ───────┴──┘ L1 = 0.68 mH C1 = 5.29 uF L2 = 0.40 mH C2 = 3.09 uF 理论上是这样了,楼上的没错。看参数5寸单元有90DB的灵敏度有点不可信,我推荐的分频是-12dB在-3DB交叉的,看元件就是C1=C2 L1=L2,记得银笛FQ1就是C1=C2=4.7UF,电路很简单就4个元件,如果喇叭是8欧分频点就是3K。没有别的原因,就是这样的的电路是理论值,也是看得明白的,日后高音要衰减,或者加RC补偿,或者改分频点都很方便。分频器正在找链接,找到了发给你 分频器所使用的电感线圈一般分为空芯线圈和铁芯线圈两大类;而铁芯线圈又分为真铁芯和铁氧体芯两类。 传统的分频器由电容电感以及高音衰减电阻R等元器件组成。如图L1、C1组成低通滤波器作用是只保留音频信号中的低频部分去驱动低音扬声器单元。L2、C2组成高通滤波器作用是只保留音频信号中的高频部分去驱动高音单元。 图例

2计算 公式……L=R/6.28xf,式中R等于分频点上喇叭阻抗值,f等分频频率。假如分频点选3000Hz:实测中低频喇叭阻抗为8Ω L=8Ω/6.28X3000hz=0.43毫亨 电容C=1/6.28×f×R C=1/6.28×3000×8=1/150720=1÷150720=6.6μf

通用分频器基本原理

整数分频包括偶数分频和奇数分频,对于偶数N分频,通常是由模N/2计数器实现一个占空比为1:1的N分频器,分频输出信号模N/2自动取反。对于奇数N分频,上述方法就不适用了,而是由模N计数器实现非等占空比的奇数N分频器,分频输出信号取得是模N计数中的某一位(不同N值范围会选不同位)。这种方法同样适用于偶数N 分频,但占空比不总是1:1,只有2的n次方的偶数(如4、8、16等)分频占空比才是1:1。这种方法对于奇数、偶数具有通用性。半整数分频器也是在这种方法基础上实现的。除了一个模N计数器,还需要一个异或模块和一个2分频模块。半整数分频器原理如图1所示:半整数分频器设计思想:通过异或门和2分频模块组成一个改变输入频率的脉冲添加电路,也就是说个输入信号周期内产生了N个计数脉冲,即输入信号其中的一个含一个脉冲的周期变为含两个脉冲的周期。而这一改变正是输入频率与2分频输出异或的结果。由2分频输出决定一个周期产生两个脉冲有两种方式:当一个输入信号来一个脉冲(前半周期)时,2分频输出变为‘1’,clk_in取反,后半周期就会产生一个脉冲;2分频输出由‘1’变为‘0’时,clk_in 刚把一个周期(前半周期)内低电平变为高电平产生一个脉冲,而后半周期的脉冲与‘0’异或不变。从而实现分频。要实现奇数、偶数、半整数通用分频器只需再加一个控制选择信号sel。当sel=‘1’时,clk_in与2分频输出异或,实现半整数分频;当sel=‘0’时,只选通clk_in,实现整数分频。通用分频器原理如图2所示:Verilog语言的实现本设计采用层次化的设计方法,首先设

计通用分频器中各组成电路元件,然后通过元件例化的方法,调用各元件,实现通用分频器。1、选择异或门模块half_select:modulehalf_select(sel,a,b,c); outputc; inputsel,a,b; xoru1(w,a,b); assignc=sel?w:a; (当sel=‘1’时,clk_in 与2分频输出异或,实现半整数分频;当sel=‘0’时,只选通clk_in,实现整数分频。)endmodule 2、模N计数器counter_n:实现参数化设计N可取2~256,也可增加count位数使N可取更大的值。以N=7为例通过设置sel分别实现奇数7分频和半整数分频。modulecounter_n(reset,en,clk_in,clk_out,count); parameterN=7;inputreset,en,clk_in;outputclk_out; output[7:0]count;regclk_out;reg[7:0]count; always@(posedgeclk_in)begin if(reset)begin count[7:0]=0;end elseif(en)begin if(count==(N-1))count=0;else count=count1; end end always begin if(N clk_out=count[0]; elseif(N clk_out=count;elseif(N clk_out=count; elseif(N 在复杂数字逻辑电路设计中,经常会用到多个不同的时钟信号。介绍一种通用的分频器,可实现2~256之间的任意奇数、偶数、半整数分频。首先简要介绍了FPGA器件的特点和应用范围。接着介绍了通用分频器的基本原理和分类,并以分频比为奇数7和半整数的分频器设计为例,介绍了在QuartusII开发软件下,利用Verilog硬件描述语言来设计数字逻辑电路的过程和方法。在数

相关主题
文本预览
相关文档 最新文档