集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 1135|回复: 1

单数分频器verilog-fpga代码

[复制链接]
zxopen88 发表于 2012-6-6 10:00:35 | 显示全部楼层 |阅读模式
三分频电路:


module clk_div3(clk,reset,divclk);

input  clk;

input  reset;

output reg divclk;reg[1:0] cnt1;

always@(posedge clk or negedge reset)

begin

    if(!reset) cnt1 <=0;

    else if(cnt1 < 2'b10) cnt1<= cnt1 + 1'b1;

    else cnt1 <=0;

endreg[2:0] cnt2;

always@(negedge clk or negedge reset)

begin

    if(!reset) cnt2 <=0;

    else if(cnt2 < 2'b10) cnt2<= cnt2 + 1'b1;

    else cnt2 <=0;

endalways@(*)

begin

     if(cnt2<2'b10 && cnt1<2'b10)  divclk <=1'b1;

     else divclk <=1'b0;

endendmodule
复制代码


五分频电路:


module clk_div5(clk,reset,divclk);

input  clk;

input  reset;

output reg divclk;reg[2:0] cnt1;

always@(posedge clk or negedge reset)

begin

    if(!reset) cnt1 <=0;

    else if(cnt1 < 3'd4) cnt1<= cnt1 + 1'b1;

    else cnt1 <=0;

endreg[2:0] cnt2;

always@(negedge clk or negedge reset)

begin

    if(!reset) cnt2 <=0;

    else if(cnt2 < 3'd4) cnt2<= cnt2 + 1'b1;

    else cnt2 <=0;

endalways@(*)

begin

     if(cnt2<3'd3 && cnt1<3'd3)  divclk <=1'b1;

     else divclk <=1'b0;

endendmodule
复制代码


七分频电路


module clk_div7(clk,reset,divclk);

input  clk;

input  reset;

output reg divclk;reg[2:0] cnt1;

always@(posedge clk or negedge reset)

begin

    if(!reset) cnt1 <=0;

    else if(cnt1 < 3'd6) cnt1<= cnt1 + 1'b1;

    else cnt1 <=0;

endreg[2:0] cnt2;

always@(negedge clk or negedge reset)

begin

    if(!reset) cnt2 <=0;

    else if(cnt2 < 3'd6) cnt2<= cnt2 + 1'b1;

    else cnt2 <=0;

endalways@(*)

begin

     if(cnt2<3'd4 && cnt1<3'd4)  divclk <=1'b1;

     else divclk <=1'b0;

endendmodule
复制代码
fxwmeic 发表于 2012-6-13 22:13:57 | 显示全部楼层
只能作为仿真练习,实际工程无用。因为时钟上升下降边沿同时用
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

QQ|小黑屋|手机版|Archiver|集成电路技术分享 ( 京ICP备20003123号-1 )

GMT+8, 2024-7-1 05:17 , Processed in 0.064009 second(s), 20 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表