Forum: FPGA, VHDL & Co. signed * unsigned


von Gabriel (Gast)


Lesenswert?

Hallo zusammen -

Ich habe eine Frage bzgl. signed und unsigned.

Ich verwende folgende libraries:

ieee.std_logic_1164.all;
ieee.std_logic_arith.all;
ieee.std_logic_unsigned.all;

ist es da erlaub, wenn ich folgendes statement benutze?

parama <= signed(a) * unsigned(b);

Grund dafür: a ist ein signed parameter, b ein unsigned.
Das Ergebnis ist auch signed.

Grüße,
Gabriel

von Christian R. (supachris)


Lesenswert?

Warum nicht? Wenn param breit genug ist....zumindest erzeugts keinen 
Fehler. Was spricht dagegen, das mal zu simulieren?

von Gabriel (Gast)


Lesenswert?

klar funktionierts in der simulation. weiss aber nicht ob man beide 
ausdrücke gleichzeitig in solch einem statement verwenden soll/darf, und 
was das synthese tool draus macht.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> und was das synthese tool draus macht.
Du könntest dir mal die RTL-Schematics ansehen  :-o
Aus dem Unsigned wird ein Signed gemacht und ein 
Signed-Multiplizierer instantiiert. Für 2 Stück 7-Bit Eingangsvektoren 
sieht das so aus:
1
Macro Statistics
2
# Multipliers                                          : 1
3
 9x8-bit multiplier                                    : 1

BTW:
Mit numeric_std wäre die Frage nicht aufgekommen, denn hier mußt du das 
explizit machen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.