Ich habe vorher ein 8 Bit um 8 Bit gemacht, aber es war nicht generisch. Ich kann nicht herausfinden, wie man den Code justiert, um es NxM Bit zu machen. Kann mir jemand helfen?Wie kann man einen generischen NxM-Array-Multiplikator mit Verilog erzeugen?
-1
A
Antwort
2
Sie müssen Parameter verwenden. Parameter sind grundsätzlich Eingangskonstanten und sind eine gute Möglichkeit, generischen Code zu schreiben. Sie sitzen zwischen dem Namen des Moduls und den Häfen in einer Liste, die wie die Portliste aussieht, wird aber von einem Hash voraus:
module <MODULE NAME> #(<SOME TYPE> <PARAMETER NAME>=<DEFAULT_VALUE>, ...) (<THE PORTS>);
Die Ports selbst deklariert werden können die Parameter angeben können. Es ist üblich, einen Parameter zu verwenden, um beispielsweise die Breite von Eingängen und Ausgängen zu definieren.
Hier ist ein Beispiel (ein MxN Multiplikator):
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
Also, es ist sehr einfach, wenn Sie glücklich sind nur Ihre Multiplikator zu synthetisieren. Wenn Ihr Multiplikator-Design struktureller ist, dann müssen Sie über generate
Schleifen lernen.
Sie werden Ihre Chancen auf eine Antwort erhöhen, wenn Sie Code hinzufügen und zeigen, was Sie versucht haben, es generisch zu machen. –
Parametrieren Sie Ihren Code? – wilcroft