IPO 发表于 2010-10-25 13:53:35

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

module fenpin(clkin,clkout);
input clkin;
output clkout;
reg clkout;
reg clk0,clk1,clk2;
reg c0,c1,c2;
reg c3;
always @(posedge clkin) begin
    if(c0<8'd200) c0<=c0+1;
    else begin clk0<=~clk0; c0<=0;end end
always @(clk0) begin
    if(c1<8'd100) c1<=c1+1;
    else begin clk1<=~clk1;c1<=0; end end
always @(clk1) begin
    if(c2<8'd100) c2<=c2+1;
    else begin clk2<=~clk2;c2<=0; end end
always @(clk2) begin
    if(c3<4'd10) c3<=c3+1;
    else begin clkout<=~clkout;c3<=0; end end
endmodule
大侠们帮我看看,clkout波形出不来

IPO 发表于 2010-10-25 13:53:55

肯定没波形出来

IPO 发表于 2010-10-25 13:54:29

为什么呀?
哪里出问题了呀

IPO 发表于 2010-10-25 13:54:48

C0一直在计数
C0到了200,clk0还没翻转,C0就被清零了
翻转清0 是同时的
这是非阻塞赋值

liyujie 发表于 2010-10-25 14:26:19

分频器不是这样写的

天蝎诀 发表于 2010-10-26 19:05:07

后面几个敏感列表应该写成always@(posedgeclk0)

smallwind1 发表于 2010-10-27 22:14:34

你这个是分频器?真的很少见这样写的

smallwind1 发表于 2010-10-27 22:21:16

其实你可以再换一个方法试试,可能c0一直处于高阻态,这样的话,开始的条件可能一直就没进行,还有就是你可以看看其它的波形,clk1,clk2,他们的值都有变化吗?一步步找原因

njithjw 发表于 2010-11-1 22:32:45

`timescale 1ns/1ns
module fenpin(
    rst_n,
    clkin,
    clkout
    );
input   rst_n;
input clkin;
output clkout;
reg clkout;
reg clk0,clk1,clk2;
reg c0,c1,c2;
reg c3;

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

always @(posedge clk0 or negedge rst_n)
begin
    if (rst_n == 1'b0)
    begin
      c1<=0;
      clk1<= 1'b0;
    end
    else if(c1<8'd100)
      c1<=c1+1;
    else
    begin
      clk1<=~clk1;
      c1<=0;
    end
end

always @(posedge clk1 or negedge rst_n)
begin
    if (rst_n == 1'b0)
    begin
      c2<=0;
      clk2<=1'b0;
    end
    else if(c2<8'd100)
      c2<=c2+1;
    else
    begin
      clk2<=~clk2;
      c2<=0;
    end
end

always @(posedge clk2 or negedge rst_n)
begin
    if (rst_n == 1'b0)
    begin
      c3<=0;
      clkout<=1'b0;
    end
    else if(c3<4'd10)
      c3<=c3+1;
    else
    begin
      clkout<=~clkout;
      c3<=0;
    end
end

endmodule

liqz 发表于 2010-11-1 23:03:38

回复 9# njithjw


    用这么多时钟,你这个设计的时序怎么去约束?
页: [1] 2
查看完整版本: 大侠们帮我看看,clkout波形出不来