您当前的位置: 首页 > 

FPGA硅农

暂无认证

  • 2浏览

    0关注

    282博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

FPGA奇数分频的实现

FPGA硅农 发布时间:2022-02-07 13:29:08 ,浏览量:2

在FPGA开发中,我们往往需要对时钟进行分频,得到满足我们需求的时钟频率。尽管这些分频的工作完全可以由PLL等ip核完成,但通过verilog语言同样也可以实现。在本博客中,我们仅讨论整数倍分频。

偶数倍分频

偶数倍分频的实现较为简单,一般是设置一个计数器,从0开始计数,达到N-1后又重新归零,分频的时钟信号在(N/2-1)时翻转。

奇数倍分频 三分频

分别设置两个模3计数器cnt1,cnt2,以及两个中间信号clk1,clk2,clk1信号在clk信号的上升沿且cnt1=0或2的时候翻转,而clk2信号在clk信号的下降沿且cnt2=0或2的时候翻转,最后clk1和clk2信号相或,得到最终的结果clk_div3,即实现了三分频的效果。 以下是实现的Verilog代码:

`timescale 1ns / 1ps
//
// Company: 
// Engineer: 
// 
// Create Date: 2022/02/07 12:32:58
// Design Name: 
// Module Name: odd_clkdiv
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//


module odd_clkdiv(
input wire rst,
input wire clk,
output wire clk_div3
    );
reg [3:0] cnt1;
reg [3:0] cnt2;
reg clk1;
reg clk2;

assign clk_div3=clk1 | clk2;
//cnt1
always@(posedge clk,posedge rst)
if(rst)
    cnt1            
关注
打赏
1658642721
查看更多评论
0.0382s