Hi,
der folgende Code soll eine Operation, hier Minimum, durchführen, das
Ergebnis in ein FF packen und im nächsten Zyklus ausgeben.
Allerdings kann man bei der Simulation erkennen das von TwoIN bis TwoFF
schon ein ClkZyklus vergeht und dann noch einer von TwoFF bis TwoOUT.
Meine Vermutung ist, dass in der Simulation neue Daten am Eingang(TwoIN)
erst bei T + deltaT anliegen und noch mit den Daten zum Zeitpunkt T
gerechnet wird. Kann dies wer bestätigen oder mich berichtigen?
Danke!
1 | signal sMinTemp : STD_ULOGIC_VECTOR(gDataWidth - 1 downto 0); --FF
|
2 | begin
|
3 | process (iAppClock, iAppReset, iAppEnable) is
|
4 | begin
|
5 | if (rising_edge(iAppClock)) then
|
6 | if (iAppReset = '1' or iAppEnable = '0') then
|
7 | sMinTemp <= (others => '-');
|
8 | oMin <= (others => '-');
|
9 | else
|
10 | oMin <= sMinTemp; --OUT
|
11 | if (unsigned(iDatumA) <= unsigned(iDatumB)) then
|
12 | sMinTemp <= iDatumA; --IN
|
13 | else
|
14 | sMinTemp <= iDatumB; --IN
|
15 | end if;
|
16 | end if;
|
17 | end if;
|
18 | end process;
|