Guten Morgen Lothar, die Berechnung ist wie folgt eingebunden:
1 | process(clk)
|
2 | begin
|
3 | if rising_edge(clk) then
|
4 | if (valid = '1') then
|
5 | sum <= sum + unsigned(data_a) * unsigned((count sll 1)+1) + unsigned(data_b) * unsigned (((count sll 1) + 1)+1);
|
6 | else
|
7 | sum <= (others => '0');
|
8 | end if;
|
9 | end if;
|
10 | end process;
|
Mit jedem Takt, während das valid-Signal '1' ist, ändern sich die
Eingangssignale data_a und data_b. Und ich möchte nun die Berechnung für
den Zeitraum valid '1' durchführen. Deshalb ist es wichtig zu wissen, ob
im nächsten Takt jedes mal das Ergebnis vorliegt, denn data_a und data_b
ändern sich Takt für Takt. In der Simulation/Testbench funktioniert es
jedenfalls. Wie siehts mit der Realität aus?