Gesendet wird es wohl schon in der richtigen Reihenfolge. Kannst ja in
der Simulation nachsehen.
Würde sagen, das die Funktion rx_stimulus_send_column die Daten als
big-endian erwartet (Was für Internet/Ethernet nicht verwunderlich ist).
Moin,
Und fuer was ist das 2. Argument bei rx_bla_column()?
Soll vielleicht getestet werden, was passiert, wenn der Takteinlauf
etwas kuerzer ist?
Hab' das irgendwo schonmal gesehen, dass irgendein MAC auch mit weniger
als 7 mal 0x55 als Takteinlauf zufrieden ist.
Gruss
WK
pietro_lockvogel schrieb:> // send preamble> rx_stimulus_send_column(32'h555555FB, 4'b0001);> rx_stimulus_send_column(32'hD5555555, 4'b0000);> warum wird in der testbench 0x55 55 55 55 FB und dann 0x D5 55 55 55> gesendet.
Du solltest dich da schon mal fragen: warum überhaupt D5, wenn der SFD
doch 10101011 und damit optisch eigentlich AB ist?
Konterfrage: welches der 4 Bytes erscheint tatsächlich zuerst auf dem
Bus?
Du vermutest offenbar, dass es das MSByte ist. Was, wenn es das LSB
ist und dort sogar mit dem rechten Bit begonnen wird?
Zitat von https://de-academic.com/dic.nsf/dewiki/1324552
1
Aufbau
2
Ethernet überträgt die Bits seriell grundsätzlich beginnend mit dem
3
untersten, niedrigstwertigen Bit (der „Einerstelle“) eines Bytes. Das
4
bedeutet, dass beispielsweise das Byte 0xD5 als Bitsequenz (links nach
5
rechts) „10101011“ auf die Reise geht.
Dann wird das FB = 11111101 zu 10111111. Und die 55 werden zu 10101010.
Die D5 = 11010101 werden zum 10101011 (die findest du dann wieder
überall als SFD: https://www.google.com/search?q=sfd+10101011).
Und auf dem Bus sieht das zeitlich von links nach rechts so aus, dass
erst ein korruptes erstes Byte kommt, dem dann viele 1010 zur
Synchronisierung folgen, und zum Schluss der SFD:
10111111 10101010 10101010 10101010 10101010 10101010 10101010 10101011
Dergute W. schrieb:> Hab' das irgendwo schonmal gesehen, dass irgendein MAC auch mit weniger> als 7 mal 0x55 als Takteinlauf zufrieden ist.
Der muss das abkönnen, denn diese Bitmuster sind dafür gedacht, dass
sich die PLL auf die Sendefrequenz einregeln kann.
pietro_lockvogel schrieb:> ich kapier zwar nichts
Ist nicht schlimm, kann man ja ändern.
Wie gesagt: du musst dir mal anschauen, wie die aufgerufene Funktion
funktioniert. Und natürlich auch, wie das Ethernet auf den unteren
Layern abläuft.
Lothar M. schrieb:> 10111111 10101010 10101010 10101010 10101010 10101010 10101010 10101011
korrupt ,55,55,55,55,55,55, SFD 5D
ach so dann versteht der MAC, dass die Preamble zwar falsch ist, aber
noch genug richtig ist, um mit dem Frame arbeiten zu können oder was?
Lothar M. schrieb:> Der muss das abkönnen, denn diese Bitmuster sind dafür gedacht, dass> sich die PLL auf die Sendefrequenz einregeln kann
Der RX-MAC schaut nur auf den Start mit SFD. Die Preamble wird ignoriert
und ist für den PHY gedacht (CDR, AGC, Bias,..).
Der TX-MAC generiert das Frame inklusive vollständiger Preamble für die
Übertragung.