【问题标题】:How to wire two modules in Verilog?如何在 Verilog 中连接两个模块?
【发布时间】:2009-11-10 00:51:05
【问题描述】:

我已经编写了两个模块 DLatch 和 RSLatch,我想编写 verilog 代码来加入这两个模块。

【问题讨论】:

    标签: module verilog


    【解决方案1】:

    说真的,您应该为自己准备一本 Verilog 手册或搜索一些在线资源。

    无论如何,这样的事情应该可以工作:

    module dff (
        input Clk,
        input D,
        output Q,
        output Qbar
      );
    
      wire q_to_s;
      wire qbar_to_r;
      wire clk_bar;
    
      assign clk_bar = ~Clk;
    
      D_latch dlatch (
        .D(D),
        .Clk(Clk),
        .Q(q_to_s),
        .Qbar(qbar_to_r)
      );
    
      RS_latch rslatch (
        .S(q_to_s),
        .R(qbar_to_r),
        .Clk(clk_bar),
        .Qa(Q),
        .Qb(Qbar)
      );
    
    endmodule
    

    【讨论】:

      【解决方案2】:

      您可能想查看Emacs AUTOWIRE

      【讨论】:

        【解决方案3】:

        您需要创建一个外部模块,其端口如原理图所示(D、Clk、Q、NQ)。在此模块中,您实例化两个子模块 DLatch 和 RSLatch,并适当地连接端口。 (您需要为内部互连声明额外的电线。)

        【讨论】:

        • 它的端口接线给我带来了麻烦。我会做类似分配 Qa = RSLatch(params) 的事情吗?但 RSLatch 返回 2 个输出,.我只是对命令式编程和 HDL 感到困惑。
        • RSLatch 不是一个函数,因此您不要以命令的方式调用它。无论如何,丹尼尔波说了什么。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多