集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
12
返回列表 发新帖
楼主: IPO

大侠们帮我看看,clkout波形出不来

[复制链接]
liqz 发表于 2010-11-1 23:24:11 | 显示全部楼层
module fenpin(
                    rst_n,
                    clkin,
                    clkout
                    );
                   
        input   rst_n;
        input         clkin;
       
          output         clkout;
         
          reg clkout;
          reg clk0,clk1,clk2;
          reg clk0_reg,clk1_reg,clk2_reg;
          reg [7:0] c0;
          reg [6:0] c1,
          reg [6:0] c2;
          reg [3:0] c3;

always @(posedge clkin or negedge rst_n)
begin
    if (!rst_n)
    begin
               clk0 <= 1'b0;
               clk0_reg <= 1'b0;
        c0 <= 8'd0;
    end
    else
    begin
            clk0_reg <= clk0;
            if(c0 < 8'd200)
                c0 <= c0 + 1'd1;
            else
            begin
                clk0 <= ~clk0;
                c0 <= 8'd0;
                   end
           end
end

always @(posedge clkin or negedge rst_n)
begin
    if (!rst_n)
    begin
               c1 <= 7'd0;
        clk1 <= 1'b0;
        clk1_reg <= 1'b0;
    end
    else
    begin
            clk1_reg <= clk1;
            if(clk0 & (!clk0_reg))
            begin
                    if(c1 < 8'd100)
                        c1 <= c1+1'b1;
                    else
                    begin
                        clk1 <= ~clk1;
                        c1 <= 7'd0;
                    end
            end
    end
end

always @(posedge clkin or negedge rst_n)
begin
    if (!rst_n)
    begin
               c2 <= 7'd0;
        clk2 <= 1'b0;
        clk2_reg <= 1'b0;
    end
    else
    begin
            clk2_reg <= clk2;
            if(clk1 & (!clk1_reg))
            begin
                    if(c2 < 8'd100)
                        c2 <= c2 + 1'b1;
                    else
                    begin
                        clk2 <= ~clk2;
                        c2 <= 7'd0;
                    end
            end
    end
end

always @(posedge clkin or negedge rst_n)
begin
    if (!rst_n)
    begin
               c3 <= 7'd0;
        clk_out <= 1'b0;
    end
    else
    begin
            if(clk2 & (!clk2_reg))
            begin
                    if(c3 < 4'd10)
                        c3 <= c3 + 1'b1;
                    else
                    begin
                        clk_out <= ~clk_out;
                        c3 <= 4'd0;
                    end
            end
    end
end

endmodule
格林凯 发表于 2010-11-2 11:33:08 | 显示全部楼层
路过………………
weibode01 发表于 2010-11-9 11:57:54 | 显示全部楼层
我发了好几个分频器的帖子啊,找一下来看吧
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-5 03:41 , Processed in 0.064751 second(s), 16 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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