在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1435|回复: 2

[求助] 模9计数器实现简单的9分频计数器,占空比为5/9

[复制链接]
发表于 2022-4-5 00:46:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x

但是功能仿真一直提示counter_9 值不确定,有没有大佬知道这是什么原因造成的呢?

module top_temp(
     clk,
     rst,
     rd_clk,
     wr_clk
);

input clk;
input rst;
output reg rd_clk;
output reg wr_clk;

reg [4:0] counter_9;

always @ ( posedge clk )
begin
if( rst || counter_10==4'b1001)
    counter_10 <= 4'b0000;
else
    counter_10 <= counter_10+1;
end

always @ ( posedge clk )
begin
if( rst || counter_9==4'b1000)
    counter_9 <= 4'b0000;
else
    counter_9 <= counter_9+1;
end  


//div9 rd_clk
always @ ( posedge clk )
begin
if( rst ) begin
rd_clk <= 1'b0;
end
else begin
case(counter_9)
    4'd0 : rd_clk <= 1'b0;
    4'd1 : rd_clk <= 1'b0;
    4'd2 : rd_clk <= 1'b0;
    4'd3 : rd_clk <= 1'b0;
    4'd4 : rd_clk <= 1'b1;
    4'd5 : rd_clk <= 1'b1;
    4'd6 : rd_clk <= 1'b1;
    4'd7 : rd_clk <= 1'b1;
    4'd8 : rd_clk <= 1'b1;
default : rd_clk <= 1'b0;
endcase
end
end



发表于 2022-4-5 02:15:43 | 显示全部楼层




  1. module top_temp(
  2.                 clk,
  3.                 rst,
  4.                 rd_clk,
  5.                 wr_clk
  6.                 );

  7.    input clk;
  8.    input rst;
  9.    output reg rd_clk;
  10.    output reg wr_clk;

  11.    reg [3:0]  counter_9;
  12.    reg [3:0]  counter_10;
  13.   
  14.    always [url=home.php?mod=space&uid=1769321]@[/url] ( posedge clk ) begin
  15.       if( rst || counter_10==4'b1001)
  16.         counter_10 <= 4'b0000;
  17.       else
  18.         counter_10 <= counter_10+1;
  19.    end

  20.    always @ ( posedge clk ) begin
  21.       if( rst || counter_9==4'b1000)
  22.         counter_9 <= 4'b0000;
  23.       else
  24.         counter_9 <= counter_9 +1;
  25.    end  

  26.    //div9 rd_clk
  27.    always @ ( posedge clk ) begin
  28.       if ( rst ) begin
  29.          rd_clk <= 1'b0;
  30.       end
  31.       else begin
  32.          case(counter_9)
  33.            4'd0 : rd_clk <= 1'b0;
  34.            4'd1 : rd_clk <= 1'b0;
  35.            4'd2 : rd_clk <= 1'b0;
  36.            4'd3 : rd_clk <= 1'b0;
  37.            4'd4 : rd_clk <= 1'b1;
  38.            4'd5 : rd_clk <= 1'b1;
  39.            4'd6 : rd_clk <= 1'b1;
  40.            4'd7 : rd_clk <= 1'b1;
  41.            4'd8 : rd_clk <= 1'b1;
  42.            default : rd_clk <= 1'b0;
  43.          endcase
  44.       end // else: !if( rst )
  45.    end // always @ ( posedge clk )
  46. endmodule // top_temp

  47. module test();
  48.    reg clk,rst;
  49.    wire rd_clk;
  50.    wire wr_clk;

  51.    top_temp top_temp(// Outputs
  52.                      .rd_clk            (rd_clk),
  53.                      .wr_clk            (wr_clk),
  54.                      // Inputs
  55.                      .clk               (clk),
  56.                      .rst               (rst));
  57.    initial begin
  58.       clk =0;
  59.       rst=1;
  60.       #33 rst=0;
  61.       #500 $finish;
  62.    end
  63.    always #5 clk = ~clk;
  64.    
  65. endmodule // test



复制代码


Works OK!
 楼主| 发表于 2022-4-10 12:27:55 | 显示全部楼层


感谢感谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

×

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-5-19 21:27 , Processed in 0.018525 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表