【发布时间】:2017-11-27 18:52:33
【问题描述】:
我不太清楚如何制作一个允许一个模块的输出(B)成为另一个模块(C)的输入的模块。
【问题讨论】:
-
看来 OP 已经知道模块有输入和输出。但不了解如何实例化模块和建立连接(分配/驱动程序到源的流程)是 SystemVerilog 中一个非常广泛的主题。
我不太清楚如何制作一个允许一个模块的输出(B)成为另一个模块(C)的输入的模块。
【问题讨论】:
1) 你需要用输入和输出端口声明你的模块
module A(input clk, input sig, output out);
.. do somethign here
endmodule
module B(input clk, output val);
... do something to generate val.
endmodule
2) 您需要在顶层实例中创建实例层次结构,实例化这些模块。后者将声明应该用于连接这两者的电线:
module top(output topout);
wire clk;
wire sig;
wire out;
A a(clk, sig, topout);
B b(clk, sig);
endmodule
因此,在上面的示例中,模块B 的实例b 的输出端口val 分配给顶级模块的线sig。同一根线sig连接到模块A的实例a的输入端口sig。
实例a的输出端口out也连接到顶层模块的输出端口topout端口。
在这两种情况下,clk 线都连接到两个输入端口:实例a 和实例b。
这是基本思想。
【讨论】: