Signed Fractional Multiplikation in Verilog

Gast #1915602
Lesenswert?

Einen schönen guten Abend,
ich sitze hier und spiele mit meinem neuen Xilinx Bord rum meine Verilog 
und VHDL Kenntnisse nach über zehn Jahren mal wieder etwas aufzupeppeln. 
Mein Problem betrifft folgendes:

Ich habe zwei vorzeichenbehaftete 18-bit Zahlen im Format Q2.16, die ich 
nun (in Verilog) multiplizieren möchte. Ich habe hier ein Codesegment 
aus alten Studi-Zeiten gefunden, welches ich in diesem Zusammenhang 
nicht mehr ganz nachvollziehen kann.


1
module signed_multiplication (out, d_a, d_b);
2

3
  output [17:0]  out;
4
  input signed [17:0] d_a;
5
  input signed [17:0] d_b;
6
  
7
  wire signed  [17:0]  out;
8
  wire signed  [35:0]  mult_out_temp;
9

10
  assign mult_out_temp = a * b;
11
  assign out           = {mult_out[35], mult_out_temp[32:16]};
12
endmodule

Bit-35 ist mein Vorzeichen, so weit klar. Warum fange ich jedoch mit Bit 
32 an was den restlichen Teil betriftft ? Danke,
Oli

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren