noips schrieb:
> Sind die Signale spi_buff_s(48 to 559) und
> spi_paket_s.Daten(0 to 63) zwei unterschiedliche Register oder einer?
Prinzipiell sind Signale erst mal einfach nur Verbindungen zwischen
hier und dort. Wenn dann aber ein Takt mit ins spiel kommt, muß der
Wert des Signals gespeichert werden. Und dann wird ein Register (aka.
Flipflop) nötig.
Auf jeden Fall ist es aber so, dass das hier eine eindeutige Richtung
angibt:
1 | signal a, b : std_logic;
|
2 | :
|
3 | a <= b;
|
Hier wird nicht einfach a mit b bidirektional verbunden. Ich kann also
nicht irgendwo a etwas zuweisen, und b bekommt "automatisch" den selben
Wert.
> In der synthetisierten Hardware ist das dann ein und derselbe Register.
> Richtig?
Abgesehen, davon, dass es kein Register sein muss: wenn du nur b etwas
zuweist, dann ist a und b derselbe (allerdings nicht bidirektionale)
"Draht".
Wenn es aber ein Register ist:
1 | signal a, b : std_logic;
|
2 | :
|
3 | process (clk) begin
|
4 | if rising_edge(clk);
|
5 | a <= b;
|
6 | end if;
|
7 | end process;
|
Dann ist a natürlich ungleich b!
Bzw: a ist der Wert, den b zum zeitpunkt des Taktes hatte.