如何在 Verilog 中通信三个(或更多)模块?

How to communicate three (or more) modules in Verilog?

我要通信三个模块,一个是控制单元,第二个是运算单元,第三个是Ram-like内存。

我是初学者,我知道我可以通过在另一个模块中实例化一个模块来连接两个模块。例如控制单元内的 ALU 端口。

我现在要做的是从 RAM 中提取数据并将其发送到 ALU,前提是控制单元要求它这样做。

所以我似乎必须实例化相同的模块,控制单元的一些端口和 ALU 的一些(数据)。

// In the Control Unit part of the port of the same instantiation

RAM_U RAM_U_inst1 (
.read (read)
);


// In the ALU module the other part

RAM_U RAM_U_inst1 (
.data (data)
);

在这种情况下,当RAM_U收到读取命令时,它会将数据发送到ALU。

这是执行此操作的正确方法吗? FPGA 可综合

请不要这样做,要么在名为 module micro_controller(....) 的单个顶级模块中创建所有模块的实例。

What I want to do now is to extract a data from the RAM and send it to the ALU, only if Control Unit ask it to do it.

控制单元会给RAM地址,并从RAM中取出数据,然后提供给ALU,现在ALU或RAM写入产生的结果也可以由控制单元完成。

你看得懂吗?