Hi, ich habe in einem Verilog Programm folgendes gefunden:
1 | error <= 15'h0 ; |
und
1 | kp_reg <= {29-PSR{1'b0}}; |
Wo ist da der Unterschied in der Zuweisung, ist doch beidesmal alles auf Null oder?!
|
Forum: FPGA, VHDL & Co. Verilog ZuweisungHi, ich habe in einem Verilog Programm folgendes gefunden:
und
Wo ist da der Unterschied in der Zuweisung, ist doch beidesmal alles auf Null oder?! error=0 wenn error 16 bit gross und kp_reg=0 wenn kp_reg 30 bit gross ist. ansonsten bleiben die übrigen so wie sie sind. > Wo ist da der Unterschied in der Zuweisung, ist doch beidesmal alles auf
Null oder?!
Ja, man könnte auch:
schreiben. Die Zeilen, die du gefunden hast haben halt den Vorteil, dass
du sofort weist wieviele Bits breit "error" ist, und dass man sehr
schnell andere Hexzahlen ausprobieren kann, oder beim zweiten Beispiel
mal schnell die unteren 29-PSR Bits auf 1 setzen kann zum testen.
Was der kleine peter da geschrieben hat stimmt übrigens nicht.
> ansonsten bleiben die übrigen so wie sie sind.
Wenn mit "die übrigen" allfällige höhere Bits gemeint sind, so werden
diese auf 0 gesetzt. Um sie unverändert zu lassen müsste man einen
Bitbereich im Zielregister der Zuweisung angeben. z.B:
Andi kp_reg <= {29-PSR{1'b0}}; Wenn du hier kp_reg mit 32Bit hast, werden nur die Bits 29-0 auf 0 gesetzt, so einfach ist das. Gruss Peter Zz schrieb: > kp_reg <= {29-PSR{1'b0}}; ... ich habe mal vor ueber 10 Jahren Verilog gemacht. Ernsthafte Frage: Was macht dieses Statement? Ich hab' null Plan... peter schrieb: > kp_reg <= {29-PSR{1'b0}}; > > Wenn du hier kp_reg mit 32Bit hast, werden nur die Bits 29-0 auf 0 > gesetzt, so einfach ist das. falsch. wenn die linke Seite der Zuweisung länger ist als die rechte, wird mit 0 aufgefüllt. berndl schrieb: > Peter Zz schrieb: >> kp_reg <= {29-PSR{1'b0}}; > ... ich habe mal vor ueber 10 Jahren Verilog gemacht. > Ernsthafte Frage: Was macht dieses Statement? Ich hab' null Plan... localparam PSR = 5; kp_reg <= {29-PSR{1'b0}}; --> kp_reg <= {24{1'b0}}; --> kp_reg <= 24'b0; Lattice User schrieb: .... > localparam PSR = 5; > kp_reg <= {29-PSR{1'b0}}; > --> > kp_reg <= {24{1'b0}}; > --> > kp_reg <= 24'b0; Ah ja, danke! Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
|
|