Verilog
Verilog is een hardwarebeschrijvingstaal (HDL) en wordt gebruikt om elektronische systemen te modelleren. Verilog is gestandaardiseerd als IEEE 1364 en wordt vo…
Verilog is een hardwarebeschrijvingstaal (HDL) en wordt gebruikt om elektronische systemen te modelleren. Verilog is gestandaardiseerd als IEEE 1364 en wordt vooral gebruikt bij het ontwerpen en de verificatie van digitale circuits op het register-transferniveau van abstractie. Het wordt ook gebruikt bij de verificatie van analoge schakelingen en mixed-signalcircuits.
Voorbeeld
Een kort hello world-programma ziet er als volgt uit:
module main;
initial
begin
$display("Hello world!");
$finish;
end
endmodule
Dit is een eenvoudige beschrijving van twee flipflops:
module toplevel(clock,reset);
input clock;
input reset;
reg flop1;
reg flop2;
always @ (posedge reset or posedge clock)
if (reset)
begin
flop1 <= 0;
flop2 <= 1;
end
else
begin
flop1 <= flop2;
flop2 <= flop1;
end
endmodule
De operator "<=" in Verilog vloeit voort uit het feit dat dit een hardwarebeschrijvingstaal is en geen gewone procedurele programmeertaal. Deze operator stelt een "niet-blokkerende toewijzing" voor. Het resultaat van deze toewijzing is pas zichtbaar in de volgende simulatiecyclus. Als gevolg hiervan is de volgorde van de toewijzingen onbelangrijk en zal het simulatieresultaat altijd hetzelfde zijn. De twee flip-flops zullen bij elke klokcyclus hun waarden omwisselen.
De andere operator voor toewijzingen is "=" en stelt een blokkerende toewijzing voor. Als men dit soort toewijzing gebruikt, wordt de waarde van het linker lid onmiddellijk aangepast. Als in het bovenstaande voorbeeld de blokkerende "="-operator gebruikt zou zijn, zouden de waarden van flop1 en flop2 niet omgewisseld worden. In plaats daarvan zou, net als in een traditionele programmeertaal, de waarde van flop 1 gelijk worden aan flop 2.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.