我以前做过 8 位 x 8 位,但它不是通用的。我不知道如何调整代码以使其成为 NxM 位。谁能帮我?
问问题
1202 次
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 回答