-1

我以前做过 8 位 x 8 位,但它不是通用的。我不知道如何调整代码以使其成为 NxM 位。谁能帮我?

4

1 回答 1

2

您需要使用参数。参数基本上是输入常量,是编写通用代码的好方法。它们位于模块名称和列表中的端口之间,该列表看起来像端口列表,但前面有一个哈希:

module <MODULE NAME> #(<SOME TYPE> <PARAMETER NAME>=<DEFAULT_VALUE>, ...) (<THE PORTS>);

端口本身可以使用参数声明。例如,通常使用参数来定义输入和输出的宽度。

这是一个示例(使用 MxN 乘数):

module MULT #(integer M=8, integer N=8) (input [M-1:0] A, [N-1:0] B, [(M+N)-1:0] F);

  assign F = A * B;

endmodule

http://www.edaplayground.com/x/2Bvx

因此,如果您乐于合成您的乘数,这将非常容易。如果您的乘法器设计更具结构性,那么您将不得不了解generate循环。

于 2016-04-01T17:34:37.317 回答