奇数通用分频器

合集下载

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// oddmodule 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)beginif(cnt<(div[WIDE-1:1]))begincnt<=cnt+1;cout<=1'b0;endelsebegincnt<=0;cout<=1'b1;endendalways @(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)beginelse if(cnt_a<=(div[WIDE-1:1]))begincnt_a=cnt_a+1;cout_a=1'b1;endelse if(cnt_a>(div[WIDE-1:1])&&cnt_a<(div[WIDE-1:0]-1))begincout_a=1'b0;cnt_a=cnt_a+1;endelsebegincnt_a=0;endendalways @(posedge iCLK)beginif(cnt_b<=(div[WIDE-1:1]))begincnt_b=cnt_b+1;cout_b=1'b1;endelse if(cnt_b>(div[WIDE-1:1])&&cnt_b<(div[WIDE-1:0]-1))begincout_b=1'b0;cnt_b=cnt_b+1;endelsebegincnt_b=0;endendassign oCLK = cout_a&cout_b;endmodule//evenmodule 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)beginif(cnt<(div[WIDE-1:1]-1))cnt <= cnt + 1;elsebegincnt <= 0;oCLK <= ~oCLK;endendendmodule//============================//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;initialbeginiCLK = 0;div=14'd7;#1000 $stop;endendmodule*/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)beginif(a==1)clkout=oCLK1;elseclkout=oCLK2;endendmodule//测试代码//testbenchmodule 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;initialbeginiCLK = 0;div=14'd7;#1000 $stop;EndModelsim仿真结果1.七分频2.四分频。

分频器的作用

分频器的作用

分频器的作用
分频器的作用是将输入信号按照一定比例分割成多个输出信号。

它常用于音频和电子信号处理中,以实现不同频率范围的信号分离和处理。

具体而言,分频器可以根据需要将输入信号分成多个频带,使得每个频带可以单独进行处理和调节,以获得更好的音效和信号质量。

在音频系统中,分频器通常被用于分离低音频、中音频和高音频信号,并将其分配到对应的喇叭或扬声器上。

这样可以让每个喇叭或扬声器专注于处理特定频率范围内的信号,从而提高音质和音频的清晰度。

同时,在录音和混音过程中,使用分频器可以将不同频率范围内的乐器声音分离出来,使得后期处理更加精细和准确。

在电子信号处理中,分频器可以将输入信号分为不同的频带,使得对不同频率范围内的信号进行独立处理。

这种信号分离的方式常用于无线通信系统中,可以实现多频道传输和接收,提高信号传输的可靠性和效率。

此外,在图像处理和视频编码中,分频器也被用于将图像或视频信号按照空间频率分割成多个子带,以便进行压缩和处理。

总之,分频器可以根据输入信号的特性将其分割成多个频带,实现对不同频率范围内信号的独立处理和控制。

这在音频和电子信号处理中具有重要的应用价值,能够提高信号处理的效果和质量。

用Verilog语言实现奇数倍分频电路3分频5分频7分频

用Verilog语言实现奇数倍分频电路3分频5分频7分频

用Verilog语言实现奇数倍分频电路3分频5分频7分频Verilog是一种硬件描述语言(HDL),用于描述数字电路的行为和结构。

使用Verilog语言实现奇数倍分频电路可以分为以下几个步骤:1.定义输入和输出端口通过module关键字定义一个模块,并指定输入和输出端口的信号。

```verilogmodule OddDividerinput clk,output reg out_3x,output reg out_5x,output reg out_7x```2.定义局部变量和计数器定义一个局部变量和一个计数器,用于跟踪时钟周期并确定何时输出。

```verilogreg [2:0] count;```3.实现分频逻辑使用always块,根据计数器的值判断何时输出,并在输出端口上更新信号。

```verilogif (count == 3'b000) beginout_3x <= !out_3x;endif (count == 3'b001) beginout_5x <= !out_5x;endif (count == 3'b010) beginout_7x <= !out_7x;endcount <= count + 1;end```4.结束模块使用endmodule关键字结束模块定义。

```verilogendmodule完整的Verilog代码如下:```verilogmodule OddDividerinput clk,output reg out_3x,output reg out_5x,output reg out_7xreg [2:0] count;if (count == 3'b000) begin out_3x <= !out_3x;endif (count == 3'b001) begin out_5x <= !out_5x;endif (count == 3'b010) begin out_7x <= !out_7x;endcount <= count + 1;endmodule```以上代码实现了一个奇数倍分频电路,其中输入时钟信号为`clk`,输出分别是3倍分频的信号`out_3x`,5倍分频的信号`out_5x`和7倍分频的信号`out_7x`。

分频器 原理

分频器 原理

分频器原理分频器是一种电子电路装置,主要用于将输入的信号分为不同频率的部分。

其工作原理主要基于LC滤波器(电感和电容构成的滤波网络)来实现。

根据输入信号的频率特性,分频器可以将信号分为高频、中频和低频等不同部分,从而满足各种应用场景的需求。

分频器在音频领域中的应用较为常见,如在音频功率放大器中,分频器可以帮助将音频信号分为不同频率段,如高音、中音和低音等。

这样,各个频率段的信号可以分别经过相应的放大器处理,再传输给相应的扬声器进行播放,从而实现完整的声音还原。

分频器的工作原理如下:1.偶数分频:使用计数器在信号的上升沿或下降沿进行计数。

当计数器的值等于分频系数的一半或整数时,信号翻转。

例如,一个上升沿计数的计数器,每次计数到2时,输出信号翻转一次;每次计数到4时,输出信号再次翻转。

这种方法适用于偶数分频。

2.奇数分频:相较于偶数分频,奇数分频器的设计稍复杂。

一般采用上升沿计数,当计数到(N-1)/2时,输出信号翻转;计数到(N-1)时,输出信号再次翻转。

若要实现50%的占空比,可以通过“错位相或”的方法实现。

3.LC滤波器:分频器中的LC滤波器根据信号频率的不同,对信号进行筛选。

高通滤波器允许高频信号通过,阻止低频信号;低通滤波器则允许低频信号通过,阻止高频信号;带通滤波器则允许特定频率范围内的信号通过。

4.阻抗补偿网络:有些分频器中还会加入由电阻、电容构成的阻抗补偿网络,以使音箱的阻抗曲线更平坦,便于功放驱动。

分频器利用LC滤波器和计数器等电路元件,将输入信号分为不同频率部分,以满足各种应用需求。

在不同领域,分频器的具体实现方式可能有所不同,但其核心原理均基于LC滤波器和计数器。

奇数分频器设计实验报告

奇数分频器设计实验报告

奇数分频器实验报告1. 背景奇数分频器是一种电子电路模块,主要用于将输入的时钟信号进行分频,并输出比输入频率低的信号。

奇数分频器的主要应用场景包括计数器、时钟频率降低等。

2. 分析2.1 奇数分频器的工作原理奇数分频器通常采用了三角波类型的振荡器来产生输入时钟信号,并通过相应的逻辑门电路对时钟信号进行分频。

常见的奇数分频器包括模2、模4和模8等。

以模8奇数分频器为例,其工作原理如下:1.奇数分频器接收输入时钟信号,并通过一个振荡器产生三角波类型的输入信号。

2.输入信号经过逻辑门电路进行分频,产生分频后的信号。

3.输出信号经过滤波电路以去除杂散信号。

4.输出信号即为输入信号的1/8。

2.2 奇数分频器的主要特点奇数分频器的主要特点包括:•输入输出频率比例为奇数,如1/2、1/4、1/8等;•分频系数固定,无法调节;•输出信号的相位与输入信号相同;•输出信号的波形稳定,幅值与输入信号相同。

2.3 奇数分频器的设计要求为了设计一个稳定可靠的奇数分频器,需要满足以下要求:•选用合适的逻辑门电路,以实现所需的分频倍数;•设计合适的滤波电路,以去除杂散信号;•保证输入输出电路的匹配性,以确保信号的传输稳定性;•选择合适的元器件,以满足设计要求,并考虑成本和可获得性。

3. 实验步骤及结果3.1 实验步骤本实验以模8奇数分频器为例,设计了以下实验步骤:1.准备实验所需的元器件和设备。

2.搭建电路原型。

3.设计逻辑门电路,实现1/8分频。

4.测试电路,检查信号传输和波形稳定性。

5.调整滤波电路,优化输出信号质量。

6.记录实验数据。

3.2 实验结果在实验中,成功搭建了模8奇数分频器电路,并进行了测试。

实验结果表明,输入信号的频率为100kHz,输出信号的频率为12.5kHz,且波形稳定。

4. 结论在本次实验中,我们成功设计了一个模8奇数分频器,实现了1/8分频。

实验结果表明,输入信号经过分频后,输出信号的频率比例为奇数,并且波形稳定,符合设计要求。

分频器设计实验报告

分频器设计实验报告

分频器设计实验报告一、实验目的本次实验的主要目的是设计并实现一个分频器,以深入理解数字电路中频率分频的原理和实现方法,掌握相关的电路设计和调试技能。

二、实验原理分频器是一种数字电路,用于将输入的时钟信号的频率降低为原来的 1/N,其中 N 为分频系数。

常见的分频器有偶数分频器和奇数分频器。

偶数分频器的实现相对简单,可以通过计数器来实现。

当计数器计数值达到分频系数的一半时,输出信号翻转,从而实现偶数分频。

奇数分频器的实现则较为复杂,通常需要使用多个触发器和组合逻辑电路来实现。

在本次实验中,我们将分别设计一个偶数分频器(以 4 分频为例)和一个奇数分频器(以 3 分频为例)。

三、实验器材1、数字电路实验箱2、示波器3、逻辑分析仪4、集成电路芯片(如 74LS 系列芯片)四、实验步骤(一)4 分频器的设计与实现1、原理图设计使用 74LS161 四位二进制同步计数器作为核心器件。

将计数器的时钟输入端连接到输入时钟信号。

将计数器的输出端 Q2 和 Q0 通过与门连接到一个 D 触发器的时钟输入端。

将 D 触发器的输出端作为 4 分频器的输出。

2、硬件连接按照原理图在数字电路实验箱上进行芯片的插装和连线。

3、调试与测试输入一个频率稳定的时钟信号。

使用示波器观察输入时钟信号和输出分频信号的波形,验证是否实现了 4 分频。

(二)3 分频器的设计与实现1、原理图设计使用两个 D 触发器和一些组合逻辑门(如与门、或门等)来实现 3 分频。

第一个 D 触发器的输出作为第二个 D 触发器的输入。

通过组合逻辑门对两个 D 触发器的输出进行处理,得到 3 分频的输出信号。

2、硬件连接按照原理图在数字电路实验箱上进行芯片的插装和连线。

3、调试与测试输入一个频率稳定的时钟信号。

使用示波器观察输入时钟信号和输出分频信号的波形,验证是否实现了 3 分频。

五、实验结果(一)4 分频器实验结果通过示波器观察输入时钟信号和输出分频信号的波形,发现输出信号的频率为输入信号频率的 1/4,成功实现了 4 分频功能。

Verilog常用分频器的实现

Verilog常用分频器的实现

Verilog常用分频器的实现分频器是指使输出信号频率为输入信号频率整数分之一的电子电路。

在许多电子设备中如电子钟、频率合成器等,需要各种不同频率的信号协同工作,常用的方法是以稳定度高的晶体振荡器为主振源,通过变换得到所需要的各种频率成分,分频器是一种主要变换手段。

早期的分频器多为正弦分频器,随着数字集成电路的发展,脉冲分频器(又称数字分频器)逐渐取代了正弦分频器。

下面以Verilog HDL语言为基础介绍占空比为50%的分频器。

1.偶分频偶分频比较简单,假设为N分频,只需要计数到N/2‐1,然后时钟翻转、计数清零,如此循环就可以得到N(偶)分频。

代码如下。

module fp_even(clk_out,clk_in,rst);input clk_in,rst;output clk_out;reg [7:0] cnt;reg clk_out;`define N 6always@(posedge clk_in or negedge rst)beginif(!rst)begincnt<=0;clk_out<=0;endelse beginif(cnt==`N/2‐1)beginclk_out<=~clk_out;cnt<=0;endelse cnt<=cnt+1;endendendmodule2.奇分频实现奇数分频(N)分频,分别用上升沿到(N-1)/2,再计数到N-1;用下降沿计数到(N-1)/2,再计数到N-1。

得到两个波形,然后把它们相或即可得到N分频。

代码如下。

module fp_odd(clk_in,clk_out,rst,clk_neg,clk_pos);input clk_in,rst;output clk_out,clk_pos,clk_neg;reg [7:0] cnt_pos,cnt_neg;reg clk_pos,clk_neg;`define N 5always@(posedge clk_in or negedge rst) //从零到N‐1不停地循环计数(上升沿)beginif(!rst) cnt_pos<=0;else if(cnt_pos==`N‐1) cnt_pos<=0;else cnt_pos<=cnt_pos+1;endalways@(posedge clk_in or negedge rst)beginif(!rst) clk_pos<=0;else if( cnt_pos==(`N‐1)/2 ) clk_pos<=~clk_pos;else if(cnt_pos==`N‐1) clk_pos<=~clk_pos;endalways@(negedge clk_in or negedge rst) //从零到N‐1不停地循环计数(下降沿)beginif(!rst) cnt_neg<=0;else if(cnt_neg==`N‐1) cnt_neg<=0;else cnt_neg<=cnt_neg+1;endalways@(negedge clk_in or negedge rst)beginif(!rst) clk_neg<=0;else if( cnt_neg==(`N‐1)/2 ) clk_neg<=~clk_neg;else if(cnt_neg==`N‐1) clk_neg<=~clk_neg;endassign clk_out=clk_neg|clk_pos;endmodule3.任意占空比的任意分频在 verilog程序设计中,我们往往要对一个频率进行任意分频,而且占空比也有一定的要求。

奇偶分频电路verilog代码

奇偶分频电路verilog代码

奇偶分频电路verilog代码奇偶分频电路verilog代码1.偶数分频器偶数分频器只要在计数器为N/2-1时反转输出就⾏//4分频器module clk_div(input clk,input rst_n,output reg clk_div4);reg [3:0]count;parameter N=4;//若⽤integer i 采⽤always@(posedge clk or negedge rst_n)beginif(rst_n)begincount <=4'b0;endelse if(count==4'b1)begincount <=4'b0;endelse begincount <=count +4'd1;endendalways @(posedge clk or negedge rst_n)beginif(rst_n)beginclk_div4 <=1'b0;endelse if(count==4'b1)beginclk_div4<=~clk_div4;endelse beginclk_div4<=clk_div4;endendendmodule2.奇数分频器奇数分频器有两种,⼀种是占空⽐为50的⼀种是占空⽐⾮20的。

⾸先是占空⽐⾮50的,⽤错位异或实现module div5(input clk,input rst_n,output clk_div5);reg clk1;reg clk2;reg [2:0] count;always @(posedge clk or negedge rst_n) beginif(rst_n)begincount <=3'd0;endelse if(count==3'd4)begincount <=3'd0;endelse begincount <=count+1'b1;endendalways @(posedge clk or negedge rst_n) beginif(rst_n)beginclk1<=1'b0;endelse if(count==3'd4)beginclk1 <=~clk1;endelse beginclk1<=clk1;endendalways @(posedge clk or negedge rst_n) beginif(rst_n)beginclk2<=1'b0;endelse if(count==3'd2)beginclk2 <=~clk2;endelse beginclk2<=clk2;endendassign clk_div5 = clk2^clk1 ;endmodule关键是第⼀个clk等计数器=N-1跳,第⼆个在(N-1)/2跳接下来是50占空⽐的,⽤另⼀个下降沿实现module top(input clk,input rst_n,output clk_div);reg clk1;reg clk2;reg [2:0] count;always @(posedge clk or negedge rst_n) beginif(rst_n)beginclk1 <=1'd0;endelse if(count==3'd0)beginclk1 <=1'd1;endelse if(count==3'd2)beginclk1 <=1'b0;endendalways @(posedge clk or negedge rst_n) beginif(rst_n)begincount <=3'd0;endelse if(count==3'd4)begincount <=3'd0;endelse begincount <=count+1'b1;endendalways @(negedge clk or negedge rst_n) beginif(rst_n)beginclk2<=1'b0;endelse beginclk2<=clk1;endendassign clk_div = clk2 || clk1 ;endmodule关键在第⼀个于(N-1)/2的时候从1跳0,第⼆个下降沿触发,相当于第⼀个的后⼀级寄存器。

分频系数可调的分频器

分频系数可调的分频器

基础工程设计(论文)说明书题目:分频系数可调的分频器院(系):电子工程与自动化学院专业:光电信息工程学生姓名:***学号:**********指导教师:***2013年9月13日目录引言 (1)1 设计任务和要求 (1)1.1 设计要求 (1)1.2 设计思想和原理 (1)2 系统方案 (1)2.1 方案论证与选择 (1)3 系统框图 (1)4 硬件设计 (2)4.1 计数器的分频部分 (2)4.2 反馈电路部分 (2)4.3 后级信号处理 (3)4.4 显示分频系数部分 (3)5 系统调试及测定 (3)5.1 硬件调试方法及过程 (3)5.1.1 调试仪器 (3)5.1.2 调试过程 (3)5.2 调试及评定 (4)5.2.1 系统的调试 (4)5.2.2 仿真理论值 (4)6 实际结果测量及分析 (5)7 结论 (6)谢辞 (7)参考文献 (8)附录 (9)附录一电路原理图 (9)附录二设计PCB图 (10)附录三元件清单 (11)分频系数可调的分频器引言:分频器是数字系统设计中的一种基本电路。

通常用于对某个给定的频率进行分频,以得到我们所需要的频率。

根据不同设计的需要,我们会遇到偶数分频、奇数分频、半整数分频等,有时要求等占空比,有时要求非等占空比。

在同一个设计中有时要求多种形式的分频。

由计数器或计数器的级联构成各种形式的偶数分频及非等占空比的奇数分频,实现较为简单。

在本课题中要求的是可调系数的分频器,我们可以实现可调的偶数分频系数的非等占空比的分频器,较为简单实用。

采用计数器和门电路即可实现课题的要求。

1 设计任务和要求1.1 设计要求1) 分频系数在一定范围可调;2) 拟定分频器的组成框图;3) 画出分频器的整机逻辑电路图;4) 设计并安装各单元电路,要求PCB布线整齐、美观,便于调试。

1.2 设计思想和原理:通过计数器计数脉冲的个数,设置计数器的进制,从而产生计数脉冲,然后计数脉冲通过D触发器的二分频整形输出,形成稳定的方波输出。

通用分频器基本原理

通用分频器基本原理

通用分频器基本原理1.频率分析:通用分频器首先需要对输入信号进行频率分析,以便确定分频比例。

频率分析可以通过各种方式实现,其中最常见的方式是采用频率锁定环或者锁相环(PLL)电路。

频率锁定环基于输入信号和参考信号之间的相位差,通过负反馈控制,使得两个信号的频率保持一致。

通过频率锁定环可以精确测量输入信号的频率。

2.分频技术:通用分频器利用分频技术实现输入信号的分频输出。

分频技术主要有几种常见的实现方式:-频率除法:将输入信号的频率通过特定的整数倍除法器进行分频。

比如,将输入信号的频率除以2,3,4等整数倍,得到相应的分频输出。

频率除法电路通常由计数器和比较器组成,计数器计算输入信号的周期或频率,比较器将计数值与预设值进行比较,并产生输出信号的脉冲。

-直接数字频率合成(DDS):DDS是一种数字信号处理技术,通过数字计算和查表的方式生成输出信号。

输入信号经过数模转换后,通过频率累加器和相位累加器进行数字计算,得到相应的分频输出。

DDS可以实现高精度、高稳定性和快速切换的频率合成。

- 相位锁定环(PLL):PLL电路的输出是输入信号的分频版本,通过输出信号和参考信号之间的相位锁定,使得输出信号的频率与输入信号的频率成比例。

PLL主要由锁相环比较器、低通滤波器和VCO(Voltage-Controlled Oscillator)组成,通过反馈控制VCO的频率,使其与参考信号的频率保持一致。

总之,通用分频器的基本原理涉及到频率分析和分频技术。

频率分析通过频率锁定环对输入信号进行频率分析和测量,而分频技术则通过频率除法、DDS或PLL等方式,将输入信号按照特定比例进行分频输出。

这种分频技术的应用非常广泛,可以满足不同领域的需求。

任意数(整数、小数)分频器

任意数(整数、小数)分频器

任意数(整数、小数)分频器一、分频原理1.1偶数倍分频偶数倍分频通过计数器计数是很容易实现的。

如进行N倍偶数分频,那么可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2—1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数.以此循环下去.这种方法可以实现任意的偶数分频。

1.2奇数倍分频奇数倍分频通过计数器也是比较容易实现的,如进行三分频,通过待分频时钟上升沿触发计数器进行模三计数,当计数器计数到邻近值进行两次翻转,比如可以在计数器计数到1时,输出时钟进行翻转,计数到2时再次进行翻转。

即是在计数值在邻近的1和2进行了两次翻转.这样实现的三分频占空比为1/3或者2/3。

要实现占空比为50%的三分频时钟,可以通过待分频时钟下降沿触发计数,和上升沿同样的方法计数进行三分频,然后下降沿产生的三分频时钟和上升沿产生的时钟进行相或运算,即可得到占空比为50%的三分频时钟。

这种方法可以实现任意的奇数分频。

归类为一般的方法为:对于实现占空比为50%的N倍奇数分频,首先进行上升沿触发进行模N计数,计数选定到某一个值进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%奇数n分频时钟。

与此同时进行下降沿触发的模N计数,到和上升沿触发输出时钟翻转选定值相同值时,进行输出时钟时钟翻转,同样经过(N-1)/2时,输出时钟再次翻转生成占空比非50%的奇数n分频时钟。

两个占空比非50%的n分频时钟相或运算,得到占空比为50%的奇数n分频时钟。

如图1-1所示,是一个3分频器的仿真时序图。

图1—1 3分频器时序图1.3小数分频1。

3。

1原理小数分频有很多方法,基本原理都是一样,在若干分频周期中,使某几个周期多计或少计一个数,从而在整个周期的总体平均意义上获得一个小数分频比。

设:K为分频系数;N为分频系数的整数部分;X为分频系数的小数部分;M为输入脉冲个数;P为输入脉冲个数;n为小数部分的位数。

实验七 分频器电路设计

实验七  分频器电路设计

实验七、分频器电路设计一、实验目的1、学习任意分频器的设计方法;2、学习数控分频器的设计、分析和测试方法。

二、实验要求1、基本要求1、设计一个偶分频器2、设计一个2n分频器3、设计一个奇分频器4、设计一个半整数分频器5、设计一个数控分频器2、扩展要求1、设计一个任意N分频计数器。

N为奇数或偶数2、设计一个硬件电子琴电路三、实验原理1、偶数分频对时钟进行偶数分频,使占空比为50%。

只要使用一个计数器,在计数器的前一半时间使输出为高电平,在计数器的后一半时间使输出为低电平,即可得到偶分频时钟。

2、奇数分频对时钟进行奇数分频,使占空比为50%。

先对输入时钟的上升沿进行计数,让一个内部信号在前一半时间(分频系数除2取整)为高电平,后一半时间为低电平;再对输入时钟的下降沿进行计数,让另一个内部信号在前一半时间为高电平,后一半时间为低电平;然后将这内部两个信号相或后即得到奇数分频时钟。

3、2n分频器用一个M(2M>=f0)位的二进制计数器对输入时钟进行计数。

其第0位为输入时钟的二分频,第1位为输入时钟的四分频,第2位为输入时钟的8分频,依此类推,第n-1位为输入时钟的2n分频。

4、半整数分频器分频系数为N=0.5的整数倍的分频器电路可由一个异或门、一个模N的计数器和一个2分频构成。

通用半整数分频器电路组成如图7-1所示。

图7-1 通用半整数分频器电路框图与原理图5、数控分频器数控分频器的功能就是在输入端给定不同的输入数据时,将对输入的时钟信号有不同的分频比。

数控分频器一般是用计数值可并行预置的加法计数器完成的,方法是将计数溢出位与预置数加载输入信号相接即可。

四、实验步骤建立一个工程项目,路径如:D:\20050837\seventh ,项目名和顶层实体名为freq_div 。

1、设计一个分频系数可预置的偶分频器(如8分频器),并进行编译仿真。

2、设计一个2n 分频器(如输入频率为1024HZ ,输出频率为256HZ ,64Hz ,4Hz 等),并进行编译仿真。

VERILOG 分频原理

VERILOG 分频原理

VERILOG 分频原理众所周知,分频器是FPGA设计中使用频率非常高的基本设计之一,尽管在目前大部分设计中,广泛使用芯片厂家集成的锁相环资源,如altera 的PLL,Xilinx的DLL.来进行时钟的分频,倍频以及相移。

但是对于时钟要求不高的基本设计,通过语言进行时钟的分频相移仍然非常流行,首先这种方法可以节省芯片内部的锁相环资源,再者,消耗不多的逻辑单元就可以达到对时钟操作的目的。

另一方面,通过语言设计进行时钟分频,可以看出设计者对设计语言的理解程度。

因此很多招聘单位在招聘时往往要求应聘者写一个分频器(比如奇数分频)以考核应聘人员的设计水平和理解程度。

下面讲讲对各种分频系数进行分频的方法:第一,偶数倍分频:偶数倍分频应该是大家都比较熟悉的分频,通过计数器计数是完全可以实现的。

如进行N倍偶数分频,那么可以通过由待分频的时钟触发计数器计数,当计数器从0计数到N/2-1时,输出时钟进行翻转,并给计数器一个复位信号,使得下一个时钟从零开始计数。

以此循环下去。

这种方法可以实现任意的偶数分频。

第二,奇数倍分频:奇数倍分频常常在论坛上有人问起,实际上,奇数倍分频有两种实现方法:首先,完全可以通过计数器来实现,如进行三分频,通过待分频时钟上升沿触发计数器进行模三计数,当计数器计数到邻近值进行两次翻转,比如可以在计数器计数到1时,输出时钟进行翻转,计数到2时再次进行翻转。

即是在计数值在邻近的1和2进行了两次翻转。

这样实现的三分频占空比为1/3或者2/3。

如果要实现占空比为50%的三分频时钟,可以通过待分频时钟下降沿触发计数,和上升沿同样的方法计数进行三分频,然后下降沿产生的三分频时钟和上升沿产生的时钟进行相或运算,即可得到占空比为50%的三分频时钟。

这种方法可以实现任意的奇数分频。

归类为一般的方法为:对于实现占空比为50%的N倍奇数分频,首先进行上升沿触发进行模N计数,计数选定到某一个值进行输出时钟翻转,然后经过(N-1)/2再次进行翻转得到一个占空比非50%奇数n分频时钟。

通用分频器基本原理

通用分频器基本原理

通用分频器基本原理整数分频包括偶数分频和奇数分频,对于偶数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,实现整数分频。

分频器分频方法

分频器分频方法

1 整数分频
1.2 奇数分频 1.2.2 占空比为50%的分频 占空比为50%的分频 错位50%的3分频,分 别由时钟上升沿和下降沿触发计数,得到两个3 别由时钟上升沿和下降沿触发计数,得到两个3 分频的结果;在将两个结果进行相或运算,得 到占空比为50%的 到占空比为50%的3分频。
第八节 分频方法
1 整数分频; 整数分频; 1.1 偶数分频; 偶数分频; 1.2 奇数分频; 奇数分频; 2 小数分频; 小数分频; 2.1 分频比交错法
1 整数分频
1.1 偶数分频 偶数倍分频是最简单的分频模式,常用计 数器实现。如要进行N 数器实现。如要进行N倍偶数分频,那么可 由待分频时钟触发计数器计数,当计数器 从0计数到N/2-1时,输出时钟翻转,计数 计数到N/2器清零,以此循环下去。
2 小数分频
2.1 分频比交错法 在一定的时间间隔T 在一定的时间间隔T内,由不同的分频比电 路交叉着对输入信号进行分频,从而在T 路交叉着对输入信号进行分频,从而在T时 间内达到小数分频的目的。 如要实现8.66666分频,则以6 如要实现8.66666分频,则以6次分频为一个 周期,每周期进行两次9分频和4 周期,每周期进行两次9分频和4次8分频。
1 整数分频
1.2 奇数分频 1.2.1 占空比不为50%的分频 占空比不为50%的分频 如进行3 如进行3分频,通过待分频时钟上升沿触发 计数器进行模3计数,当计数器进行到临近 计数器进行模3计数,当计数器进行到临近 值进行两次翻转。例如:在计数器为1 值进行两次翻转。例如:在计数器为1时, 输出时钟翻转;当计数器为2 输出时钟翻转;当计数器为2时,再次翻转; 为三时不翻转,如此循环下去。此时不是 占空比为50%的分频。 占空比为50%的分频。 5分频呢? 1,4翻转

VHDL语言各种分频器的设计解析

VHDL语言各种分频器的设计解析

if(clkin”event and clkin=”1”) then
if(cnt<n-1) then
cnt <= cnt+1;
else
cnt <= 0;e Nhomakorabead if;
end if;
end process;
process(cnt) --依据计数值,把握输出时钟脉冲的高、低电平
begin
if(cnt<n/2) then
port(
clkin: IN std_logic;
clkout: OUT std_logic
);
End fdiv;
Architecture a of fdiv is
signal cnt: integer range 0 to n-1;
Begin process(clkin) --计数
begin
port(
clkin: IN std_logic;
clkout: OUT std_logic
);
End fdiv;
Architecture a of fdiv is
signal cnt: std_logic_vector(N-1 downto 0);
Begin
process(clkin)
ELSE
count <= count-1;
--模N计数器减法计数
clkout <= ”0”;
END IF;
END IF;
END PROCESS;
PROCESS(clkout)
BEGIN
IF(clkout”event AND clkout=”1”) THEN
div2 <= NOT div2; --输出时钟二分频

分频器

分频器

分频器对读者的假设已经掌握:∙可编程逻辑基础∙Verilog HDL基础∙使用Verilog设计的Quartus II入门指南∙使用Verilog设计的ModelSIm入门指南内容1 从计数器到分频器此处所说的分频器,即把输入时钟的频率降低后再输出时钟的模块。

今天我们只讨论等占空比的偶数分频和奇数分频,关于小数分频以及倍频将不做介绍,有兴趣的朋友可以自行研究。

在之之前我们先看下前面讲的模-m计数器。

代码1.1 模-m计数器(缺省为模-10计数器)根据这个模-m计数器,我们再写一个testbench。

代码1.2 模m-计数器的testbench(重新配置为模-10计数器)但是我在使用Quartus II + Modelsim_Altera仿真的时候出现了下面的错误提示。

代码2的第10行,变量N未定义,然后第11行用N来索引的q数组也没有定义。

奇怪了,我在Quartus II都能综合通过,而且RTL视图也是正确的,为什么Modelsim_Altera就不可以这样定义呢?咳,把常量(localparam)换成参数(parameter)即可。

代码1.3 改进后的模-m计数器(重新配置为模-10计数器)修改完,在Quartus II 里再综合一下。

接下来就是按照[文档].艾米电子 - 使用Verilog 设计的Quartus II入门指南再做一次仿真。

告诉大家一个技巧,如果执行完一次RTL 级或门级的仿真,那么Quartus II 会为我们的主模块及其testbench生成do 文件的。

这样假如有错误,就无需重新启动Modelsim_Altera ,只需重新load 一下do 文件即可。

(路径格式:Quarter II 工程文件夹\simulation\modelsim \mod_m_bin_counter_run_msim_rtl_verilog.do ) 下面看下RTL 级仿真波形。

下面讨论一下如何测量波形的长度,我们注意两个工具。

关于分频器的FPGA实现整理思路

关于分频器的FPGA实现整理思路

关于分频器的FPGA实现整理思路分频器是⽤的最⼴的⼀种FPGA电路了,我最初使⽤的是crazybingo的⼀个任意分频器,可以实现⾼精度任意分频的⼀个通⽤模块,他的思想在于⾸先指定计数器的位宽⽐如32位,那么这个计数器的最⼤值就是2^32=4294967296,假设系统时钟为50MHz,那么假如要想实现输出频率为fout,那么可以使⽤的频率控制字为:K满⾜关系:,那么设计计数器在每个时钟上升沿累加的值为K,当计数值为2^31时,clkout=1;否则clkout=0.最终即可以实现任意频率的输出,精度的计算⽅法为当K=1时,可以得到clkout=0.0116415321826934814453125Hz,也即是说可以输出的最⼩频率为0.011Hz此外我们最为常见的分频器分为以下4种分析:1.偶数分频最简单,要想得到分频系数为N的频率输出,设定⼀个计数器,这个计数器从零开始加1,当加到N/2-1时计数器清零,或者clkout翻转,以此循环,即可实现偶数倍分频。

2.奇数分频(分占空⽐不确定以及占空⽐50%)⽅法⼀:分频系数为N,占总⽐不确定:以三(N)分频为例,上升沿触发计数,计数器计数到1(N-1)/2时输出时钟翻转,计数到2(N-1)时再次翻转.代码为产⽣1/11占空⽐为⼗⼀分频时钟:在计数值为9和10时均反转时钟,是产⽣抽样脉冲的有效⽅法:always @(posedge clk or posedge rst) beginif(rst)begin//复位cnt<=0;clk_div11<=0;endelseif(cnt==9) beginclk_div11<=~clk_div11; //时钟翻转cnt<=cnt+1; //继续计数endelseif(cnt==10) beginclk_div11<=~clk_div11; //时钟翻转cnt<=0; //计数清零endelsecnt<=cnt+1;end占空⽐50% ,则可以在上⾯的基础上,加上⼀个下降沿触发计数,然后将上升沿和下降沿产⽣的时钟进⾏相或运算,即可得到奇数分频输出。

奇数分频电路

奇数分频电路

占空比为1:1的奇数分频电路的实现:
3. 利用如下电路图实现
半整数分频电路
1. 假设有一个5MHZ的时钟信号,但需要得到2MHZ的时钟,分频 比为2.5,此时可采用半整数分频器。 2、 原理 半整数分频器的设计思想:以6.5分频为例。要实现6.5分频,可 先设计一个模7计数器,在设计一个脉冲扣除电路,加在模7计数器之后 ,每来7个脉冲就扣除半个脉冲,即可实现分频系数为6.5的半整数分频 。采用类似的方法,可实现任意半整数分频器。图1为半整数分频器原 理图。通过异或门和2分频模块组成脉冲扣除电路,脉冲扣除正是输入 频率与2分频输出异或的结果。
倍频电路部分:首先假设输入频率CLK和D触发器的输出Q的初始状态均为高电平1。 经过逻辑运算, F1输出低电平0, 即D触发器的时钟为恒定电平, 其输出维持1不变。 现在假设输入频率CLK发生跳变, CLK跳变为低电平, 此时由于延时, D触发器的输 出Q仍然维持1一段时间, 在这段时间里, F1的电平跳变为1。当F1跳变时, D触发器 输出随之发生跳变,由1变为0, 此时再与CLK的低电平逻辑组合, F1的输出又跳变为 0。由此可以看出, CLK一次电平跳变, F1的电平跳变2次。
要实现65分频可先设计一个模7计数器在设计一个脉冲扣除电路加在模7计数器之后每来7个脉冲就扣除半个脉冲即可实现分频系数为65的半整数分频
分频电路的实现
分频是指将意单一频率信号的频率降 低为原来的1/N,就叫N分频。实现分频的 电路或装置称为“分频器”。 若N为偶数则为偶数分频,N为奇数则 为奇数分频。 通过分频可以得到所需要的频率。
Q1 0 0 1 Q0 0 1 0 Q*1 0 1 0 Q*0 1 0 0
1.
可以得出逻辑关系为:Q*0=Q’1Q’0 Q*1=Q’1Q0
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
教师评语及评分:
签名:年月日
本科学生实验报告
学号姓名
学院专业、班级
实验课程名称EDA技术实用教程
教师及职称
开课学期2013至2014学年下学期
填报时间2014年4月8日
云南师范大学教务处编印
实验序号408实来自名称奇数倍分频器的设计
实验时间
2014.4.8
实验室
信息学院110教室
一.实验预习
1.实验目的
(1)学会3分频器的设计和实现;
2.对实验现象、实验结果的分析及其结论
(1)奇数分频器的设计实际上就是将两个分频器或后所得,而这两个分频器只需将最终奇数分频器的高电平设置为N-1 : 1和1 : N-1即可,低电平保持与所得奇数分频器一致。
(2)奇数分频器的通用代码如下:
每次除了修改N的设置,还需将reg[x:0] S1,S2处的x根据N来进行修改,这个是它的缺点。
A:程序代码设计:
B:波形图验证:
5分频器
31分频器
2.对实验现象、实验结果的分析及其结论
9分频器:
61分频器:
二、实验内容
1.实验现象及结果
(1)实验现象如上所示,结果正确。
(2)奇数通用分频器的程序代码结果虽然正确,但还有可改善之处。
(2)这是在Quartus II 9.0软件下的测试结果,并没有在试验箱上进行验证。
(2)测试结果以及对结果进行分析。若有错则要从各个方面进行排错,直到测试结果正确
3.实验设备及材料
一台具有EDA设计软件的电脑,实现EDA设计的实体试验箱。
4.实验方法步骤及注意事项
实验步骤如下:
(1)3分频器的设计及实现
A:程序代码设计及编译结果:
B:波形图设计及实现:
二.实验内容
(2)奇数通用分频器的设计
(2)实现奇数通用分频器的设计。
2.实验原理、实验流程或装置示意图
实验原理:
(1)根据波形图设计三分频的程序
波形图如下:
(2)对3分频做修改,实现奇数通用分频器。
实验流程或装置示意图:
(1)新建工程------新建顶层文件------编写程序------编译------仿真验证------分配管脚------下载到试验箱
相关文档
最新文档