Det er tommelfinger regelen u bør ikke bruke et = # 5 b;
u kan bruke # 5 a = b;
fordi det blokkerer uttalelse.
1.it blokker b-verdien på 5 sekunder og gi den til en
2.a = b verdi skje etter 5 sekunder.
simillary for non-blocking uttalelse sin omvendt
u må følge en <= # 5b
fordi den wont blokk tilsvarende påstander
A. # 5 a = b, etter 5 tidsenhet, simulator utføre tilordne verdien av B til A.
B. a = # 5 b, når simulatoren effektuere dette utsagnet,
beholde den gjeldende verdien av b, og deretter tildele denne keeped verdi til en etter 5 tidsenhet.
Det er likt med "<=".Vennlig hilsen
Jarod
Dette er de måter en modell transport forsinkelse og treghet forsinkelser i Verilog simulator.
Hvis ur er kjent med VHDL du får det!
Jeg antar tidsskala som 1ns
# 1 a <= b / This modeller transport forsinkelsen b vises på 'a' after 1 ns
a <= # 1 b / / Dette modeller treghet forsinkelsen 'a' følger 'b' etter 1 ns forsinkelse i additin til dette
noen puls <1ns får filtrere ut på 'a'
PLAESE se linken nedenfor for VHDL!
http://www.gmvhdl.com/delay.htm
forskjellen er at i det første tilfellet evalueringen av RHS skjer umiddelbart, men assigment etter 1 ns.I det andre tilfellet evalueringen seg ferdig etter 1 ns
Evaluering av oppdraget er forsinket med timingen kontroll.
RHS uttrykk evaluert.
Oppdraget er planlagt dvs. en <--- b (t 1)
2) a <= # 1 b
RHS uttrykk evaluert.
Oppdraget er forsinket med timingen kontroll og er planlagt i slutten av køen.
Flyten fortsetter.
a <- b ved simulering tiden t 1
1 # N a <= b
Legge til forsinkelser på venstre side (LHS) i nonblocking oppdrag å modellere combinational logikken er feil.
Code:modul adder_t2 (co, sum, a, b, ci);
AlexWan er riktig, er at en dårlig koding stil når det brukes i combinational logikk modellering.Takk for Alex!
se nedenfor:
/ *
dårlig koding stil eksempel
* /
modul adder_t2 (co, sum, a, b, ci);
output co;
output [3:0] sum;
input [3:0] a, b;
input ci;
reg co;
reg [3:0] sum;
alltid @ (a eller b eller ci)
# 12 (co, summen) <= a b CI; / dårlig non-blokk oppgave forsinkelse koding stil
endmodule
module TB;
reg [3:0] a, b;
reg ci;
wire [3:0] sum;
wire co;
adder_t2 dut (. co (co). sum (sum). a (a),. b (b). ci (CI));
innledende
begynne
# 0 (a, b, ci) = (4'h1, 4'h1, 1'h0);
# 50;
# 11 (a, b, ci) = 4'h2, (4'h5, 1'h1);
# 5 (a, b, ci) = (4'he, 4'h0, 1'h1);
# 9 (a, b, ci) = (4'h5, 4'h1, 1'h0);
# 50;
$ display ( "god natt");
$ stopp;
slutt
endmodule
/////////////////////////////////////////
uventet oppførsel vil bli sett.
etter a / b / ci endres, (co, summen) <= a b ci; er planlagt på 12 tidsenhet senere, før den tid kommer, noen endring av a / b / CI vil påvirke ( co, sum), slik at forsinkelsen er ikke # 12.
This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
By continuing to use this site, you are consenting to our use of cookies.