Question
Ce qui suit est un code ModelSim:
begin
tb_in_top = 0;
#5 tb_in_top = 4'b0000;#5 tb_in_top = 4'b0001;
#5 tb_in_top = 4'b0010;#5 tb_in_top = 4'b0011;
#5 tb_in_top = 4'b0100;#5 tb_in_top = 4'b0101;
#5 tb_in_top = 4'b0110;#5 tb_in_top = 4'b0111;
#5 tb_in_top = 4'b1000;#5 tb_in_top = 4'b1001;
#5 tb_in_top = 4'b1010;#5 tb_in_top = 4'b1011;
#5 tb_in_top = 4'b1100;#5 tb_in_top = 4'b1101;
#5 tb_in_top = 4'b1110;#5 tb_in_top = 4'b1111;
#100 $finish;
end
Que signifie le # 5 et # 100 représentent? Ces chiffres sont en ligne? Y at-il quelque chose de mal avec ce code?
La solution
Il est pas le code "ModelSim" pas plus que quelque chose est le code "Visual Studio". Il est Verilog .
Le jeton #
signifie un retard dans nanosecondes.
Alors, que ce moyen de code est:
- A t = 0, ensemble tb_in_top à tous les 0.
- A t = 5 ns, ensemble tb_in_top à la valeur binaire de 4 bits 0000.
- A t = 10 ns, ensemble tb_in_top à la valeur binaire de 4 bits 0001.
- A t = 15 ns, ensemble tb_in_top à la valeur binaire de 4 bits 0010.
- A t = 20 ns, ensemble tb_in_top à la valeur binaire de 4 bits 0011.
(... continuer à compter jusqu'à, incrémenter tb_in_top par 1 tous les 5 ns ...)
- A t = 80 ns, ensemble tb_in_top à la valeur binaire de 4 bits 1111.
- A t = 180 ns, mettre fin à la simulation.
Oui, Verilog a des boucles de for
, et oui, cela devrait être un.
Addendum
La boucle de for
ressemblerait à ceci:
integer index;
reg [3:0] tb_in_top;
begin
tb_in_top = 0;
for(index = 0; index < 16; index = index + 1)
begin
#5 tb_in_top = tb_in_top + 4'h1;
end
#100 $finish;
end
Enfin, notez que Verilog qui utilise l'opération de temporisation de #
ne peut pas être synthétisé à la logique; il ne peut être utilisé pour la simulation.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow