如何在Verilog中传达三个(或更多)模块?

时间:2016-03-23 09:07:12

标签: verilog fpga

我想传达三个模块,一个是控制单元,第二个是算术单元,第三个是类似Ram的内存。

我是初学者,我知道我可以通过在另一个内部实例化来连接两个模块。例如,控制单元内的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可合成

1 个答案:

答案 0 :(得分:4)

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

  

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

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

enter image description here

你能理解吗?