sasinop 发表于 2012-6-21 15:53:33

这段代码是个啥意思?

reg      clk_cnt;
always @ ( posedge clk or negedge rst_n)
    if (!rst_n )
      clk_cnt <= 24'd0;
    else
      clk_cnt <= clk_cnt + 1'b1;

wireclk_6mhz = (clk_cnt||(clk_cnt&&clk_cnt));                     
wireclk_4hz= (clk_cnt&&clk_cnt);

猜了一下应该是分频吧

都有误差呀

NJ8888 发表于 2012-6-21 16:03:19

啥叫有误差?比较对象那个?

kebaojun305 发表于 2012-6-21 16:05:31

是分频的楼主你说的 误差    不知所云。

sasinop 发表于 2012-6-21 16:47:25


clk是50MHZ

wireclk_6mhz = (clk_cnt||(clk_cnt&&clk_cnt));

即上面的左右,不完全相等呀,,也就是说 右边的把50M分频后的时钟周期,,不等于 1/6Mhz

NJ8888 发表于 2012-6-21 16:59:45

上面时钟方式不好,有毛刺.最好再用CLK打一下

Nuker 发表于 2012-6-21 21:19:06

clk_6mhz 实际上是8分频(6.25Mhz),占空比1:7
clk_4hz 实际上是2^24分频(2.98Hz),占空比1:3
这种写法真是{:sweat:}

sasinop 发表于 2012-6-22 09:28:18

Nuker 发表于 2012-6-21 21:19 static/image/common/back.gif
clk_6mhz 实际上是8分频(6.25Mhz),占空比1:7
clk_4hz 实际上是2^24分频(2.98Hz),占空比1:3
这种写 ...

是不是可以认为和实际想要的
6MHZ
4HZ
的还是有差距的呀?

就是说,不是真实的 6MHZ的时钟周期?

Nuker 发表于 2012-6-22 17:59:32

仿真一下你就知道了

source.ant 发表于 2012-6-24 21:12:34

对了 做个testbench测试一下就出来了
页: [1]
查看完整版本: 这段代码是个啥意思?