Hallo zusammen,
ich bin auf der Suche nach einer Lösung, wie ich eine Multiplikation in
zwei Takte aufteilen kann, weil mein Timing nicht mehr mitspielt.
1 | if rising_edge(clk) then
|
2 | if START = '1' then
|
3 | product <= a * b;
|
4 | DONE <= '1';
|
5 | else
|
6 | DONE <= '0';
|
7 | end if;
|
8 | end if;
|
So habe ich es aktuell gestaltet und Quartus implementiert auch
automatisch einen Multiplizierer-Block, aber in einem Takt (75MHz) ist
das leider nicht mehr umsetzbar, weil a und b zu breit sind.
Wie kann ich vielleicht mit Hilfe eines Zwischenregisters diese
Multiplikation aufdröseln, ohne dass ich mein START und DONE Signal
verliere?
Vielen Dank!
Frank