首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时钟分频器8

时钟分频器8
EN

Stack Overflow用户
提问于 2018-03-10 05:35:33
回答 1查看 1.3K关注 0票数 0

我有一个模块,可以按2点分隔。

代码语言:javascript
复制
module divider_by2 ( clk ,rst,out_clk );
    output reg out_clk;
    input clk, rst;

    always @(posedge clk)
    begin
        if (~rst) out_clk <= 1'b0;
        else out_clk <= ~out_clk;   
    end

endmodule

现在我想重用这个模块来制作8的分频器。

代码语言:javascript
复制
module top(clk, rst, out_clk);
    output reg out_clk;
    input clk, rst;

    wire out_clk1;
    wire out_clk2;

    divider_by2 obj1(clk, rst, out_clk1);
    divider_by2 obj2(out_clk1, rst, out_clk2);
    divider_by2 obj3(out_clk2, rst, out_clk);

endmodule

顶部模块的tb

代码语言:javascript
复制
module divtb ();
    wire out_clk;
    reg clk, rst;

    top topp(clk, rst, out_clk);

    initial begin
      $dumpfile("dd.vcd");
      $dumpvars(0, divtb);

      clk = 0;
      #1 reset = 1;
      #1 reset = 0;

     #125;
     $finish;
    end
   always
    #1 clk = !clk;
 endmodule

获取错误:

d.v:23: reg out_clk;不能由原语或连续赋值驱动。 d.v:23: error:输出端口表达式必须支持连续赋值。 d.v:23::divider_by2的端口out_clk在精化过程中连接到out_clk 2错误。

我该怎么办?

EN

回答 1

Stack Overflow用户

发布于 2018-03-10 08:02:51

您在divider_by2模块中有寄存器,所以不需要顶部模块中的寄存器来公开最后一个除法器的输出。

只需将该reg放到顶层模块的out_clk输出中即可。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49205724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档