Hallo, kann jmd was mit dem Code anfangen?
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
Was macht assign buffer_next? Wofür steht rx_data : 4'h0?
|
Anzeige
|
verilog schnippselHallo, kann jmd was mit dem Code anfangen?
Was macht assign buffer_next? Wofür steht rx_data : 4'h0?
Gast
#2531978
WENN mode ungleich eth_pause, dann benutze rx_data(4 Bit breit) ansonsten setze 0000 4'h0 bedeutet: 4 Bit mit dem Zahlenwert 0 Hexadezimal Herbert Pehman schrieb: > Was macht assign Eine Suche hier im Forum bringt dir den Beitrag "Verilog Zuweisung". Interessant dort z.B. der letzte Beitrag. > 4'h0 4 Bits breit mit Wert hex 0 Das steht aber wirklich noch im allergrottigsten Verilog-Buch. Welches hast du? Ich habe gar kein Verilog Buch. Ich versuche nur ein Verilog-Projekt in mein VHDL-Projekt zu integrieren. Womit ich auch gleich auf meinen anderen Beitrag hinweisen möchte: Beitrag "Mc.Master Decoder zu Microblaze ?" Und stehen die buffer[x:y]? Werden alle buffer-Bereiche gleichzeitig mit rx_data beschrieben? Dieses Konstrukt
assign buffer_next = {
buffer[19:16],
buffer[31:28],
buffer[11:8],
buffer[23:20],
buffer[3:0],
buffer[15:12],
(mode != `ETH_PAUSE) ? rx_data : 4'h0,
buffer[7:4] };
heißt auf Deutsch: Weise dem Vektor buffer_next die Aneinanderhängung
der Werte buffer[19 bis 16], [31 bis 28] ... [7 bis 4] zu. In der Summe
stehen auf der rechten Seite des Gleichheitszeichens 8 mal 4 Bit, also
ist anzunehmen, dass buffer_next ein 32 Bit breiter Vektor ist. Falls
buffer_next noch breiter ist, werden die oberen Stellen mit 0 gefüllt,
falls es schmaler ist, werden die oberen Stellen der rechten Seite
ignoriert.
Deine Frage "Werden alle buffer-Bereiche gleichzeitig mit rx_data
beschrieben?" muss also mit Nein beantwortet werden. Nur die Bits [7:4]
von buffer_next werden mit rd_data beschrieben, und auch das nur dann,
wenn mode != `ETH_PAUSE, ansonsten mit 0.
Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|