集成电路技术分享

 找回密码
 我要注册

QQ登录

只需一步,快速开始

搜索
查看: 2330|回复: 2

8421BCD码的计数器,计数器要求0~ 999怎么写啊

[复制链接]
竹林听雨早晨 发表于 2010-11-27 14:08:41 | 显示全部楼层 |阅读模式
要用D触发器实现 而且是结构描述的 verilog语言  求求大家了  给我写一个吧
njithjw 发表于 2010-11-28 00:20:44 | 显示全部楼层
module cnt_999
    (
    input                   rst_n,
    input                   clk,

    output  wire    [11:0]  cnt
    );

reg     [3:0]   cnt0;
reg     [3:0]   cnt1;
reg     [3:0]   cnt2;
always @ (posedge clk or negedge)
begin
    if (rst_n == 1'b0)
        cnt0 <= 4'd0;
    else if (cnt0[3:0] >= 4'd9)
        cnt0 <= 4'd0;
    else
        cnt0 <= cnt0 + 4'd1;
end

always @ (posedge clk or negedge)
begin
    if (rst_n == 1'b0)
        cnt1 <= 4'd0;
    else if (cnt0[3:0] >= 4'd9)
    begin
        if (cnt1[3:0] >= 4'd9)
            cnt1 <= 4'd0;
        else
            cnt1 <= cnt1 + 4'd1;
    end
    else ;
end

always @ (posedge clk or negedge)
begin
    if (rst_n == 1'b0)
        cnt1 <= 4'd0;
    else if ((cnt0[3:0] >= 4'd9) && (cnt1[3:0] >= 4'd9))
    begin
        if (cnt2[3:0] >= 4'd9)
            cnt2 <= 4'd0;
        else
            cnt2 <= cnt2 + 4'd1;
    end
    else ;
end

assign cnt = {cnt2,cnt1,cnt0};

endmodule

不知道这样是不是可以?
weibode01 发表于 2010-11-28 08:13:48 | 显示全部楼层
还用了个,好腼腆啊。。哈哈
您需要登录后才可以回帖 登录 | 我要注册

本版积分规则

关闭

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

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

GMT+8, 2024-5-24 02:45 , Processed in 0.084100 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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