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?

Était-ce utile?

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
scroll top