如何在 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写入产生的结果也可以由控制单元完成。
你看得懂吗?
我要通信三个模块,一个是控制单元,第二个是运算单元,第三个是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写入产生的结果也可以由控制单元完成。
你看得懂吗?