- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Hi all. Just found out that Quartus does not instantiate hard block multiplier if multiplication is done by a constant. Even if i define multstyle = "dsp", why?
Link kopiert
4 Antworten
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
--- Quote Start --- Hi all. Just found out that Quartus does not instantiate hard block multiplier if multiplication is done by a constant. Even if i define multstyle = "dsp", why? --- Quote End --- what value is your constant?
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
With a constant there are some sizable reductions that can be done during synthesis to make it more palatable in logic. That being said, if you have a DSP block available, why not use it. Perhaps try keeping the constant, e.g.
(* keep *) wire mult_const; assign mult_const = 16'ha9a9; I'm guessing something like that will get it to synthesize a DSP.- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
If the constant value is 2^n, then the result is simply a bitshift.
Similarly, if it has just a couple of bits set, it may be easier just to create an adder.- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Thanx for fast reply, however it was a simple typo, so now synthesis multstyle works fine :). So not to create one more thread, ill ask here, for example i need to partially connect some modules output (let it be 8 most significant bits of 16). The straightforward solution is:
mult mult_inst(
.a(a_8bit),
.b(b_8bit),
.res(c_16bit)
);
assign c_8bit = c_16bit
May there be more elegant approach (without this intermediate wire) ?

Antworten
Themen-Optionen
- RSS-Feed abonnieren
- Thema als neu kennzeichnen
- Thema als gelesen kennzeichnen
- Diesen Thema für aktuellen Benutzer floaten
- Lesezeichen
- Abonnieren
- Drucker-Anzeigeseite