Kurš saprot laika Verilog

S

sutapanaki

Guest
Čau,

Man vajag dažas palīdzēt ar šādu Verilog kodu.Ja kāds saprot, lūdzu, atbildēt:
Pulkstenis ražošanā:1: vienmēr
2: sākt
3: # 50 CLK <= 1'b0;
4: # 50 CLK <= 1'b1;
5: endLaiks Verilog:Event laika kontrole:6: vienmēr @ (posedge CLK)
7: sākt
8: ja (CLK === 1'b1)
9: clk1 <= CLK;

10: gala

Jautājums ir: laikā 100 un saskaņā 6: un 9: to, kas ir vērtība CLK?
Par CLK būtu plānots pāreju uz vienu beigās laika # 100, ja ne?

 
Es domāju, ka jums ir jābūt "sākotnējo bloks", lai noteiktu vērtīgu par pulksteni sākumā sākot savu verylog.isn 't tā taisnība?

 
Nē, es nedomāju, ka man ir nepieciešams sākotnējais bloks šajā gadījumā, jo CLK piešķir fiexd vērtības 1'b0 un 1'b1.Mans jautājums ir par to, lai izpildes laikā vienu reizi solis.
Attiecībā kods Man ir tas pats, piemēram, šādi:

1: vienmēr
2: sākt
3: # 50 CLK <= 1'b0;
4: # 50 CLK <= 1'b1;
5: end6: vienmēr @ (posedge CLK)
7: sākt
8: ja (CLK === 1'b1)
9: clk1 <= CLK;

10: galalaiks 50: CLK = 1'bx;
/ / line 3: CLK ir scheduel, lai iegūtu vērtību 1'b0 beigās timestep 50;

laiks 50: CLK = 1'b0;
/ / line 4: pāreja 1'bx-> 1'b0 nav triger @ (posedge CLK) un piešķiršana izpilda beigās, laika posmālaiks 100: CLK = 1'b0;
/ / line 3: CLK ir scheduel, lai iegūtu vērtību 1'b0 beigās timestep 100;

laiks 100: CLK = 1'b0;
/ / line 5: pāreja 1'b0 -> 1'b1 trigers @ (posedge CLK)

laiks 100: CLK = 1'b1;
/ / line 6: Jaunievēlētā schedualed gadījumā izpilda tajā pašā laikā solis 100, bet CLK jau ir mainījusies vērtība.Kāpēc?

Tā kā grāmatas viņi saka, ka ārpuskopienas Bloķējot piešķiršana "<=" izpilda, kā iepriekšējā gadījumā, pēc tam, kad visi blockin piešķirēs schedualed šim laika posms ir izpildīts.Pat nesen trigered notikumiem.

 
Sutapanaki,

Jūsu pulkstenis būs nedefinētiem (1'bx), līdz laiks 50 vienības intervālos (kā noteikts ar "termiņā simulācijas direktīva).Šobrīd tas būs neliels.100 vienības intervāliem pulksteni būs pāreju uz augsta līmeņa ...Tas ir tas

<img src="http://www.edaboard.com/images/smiles/icon_smile.gif" alt="Smaids" border="0" />
 
Jā, es zinu, ka.Hoever, mans jautājums nav par to.Kā jau teicu, pirms man ir nepieciešams, lai saprastu par rīkojuma izpildes laikā vienu reizi solis.
Lūdzu, izlasīt manu iepriekšējo post līdz beigām.thnx

 
I deklarēto CLK un clk1 kā reg, un vadīja to Modelsim:

CLK: sākas kā X, pie t = 50ns tas ir zems, t = 100ns tas ir augstas, t = 150ns tas ir zems, un joprojām toggling uz visiem laikiem ir 10 MHz.

clk1: sākas kā X, pie t = 100ns tas ir augsts un joprojām ir ļoti augsts, uz visiem laikiem.

Tas, šķiet, smalka man.Vai jūs gaida dažādas uzvedības?

 
laikā 100 un saskaņā 6: un 9: vērtība CLK ir "1"
Par CLK būtu plānots pāreju uz vienu beigās laika multi ir # 100.

Kodu jums wrote ir uzvedības kods.

 
Hi echo47,

Es ceru, ka dažādu uzvedību, kuras nosaka šādi:

1: vienmēr
2: sākt
3: # 50 CLK <= 1'b0;
4: # 50 CLK <= 1'b1;
$ displejs ($ laiks, "CLK% b", CLK);

/ / šeit CLK būs CLK == 1'b0 dēļ, kas nav bloķēšana piešķiršana

5: end6: vienmēr @ (posedge CLK)
7: sākt
$ displejs ($ laiks, "CLK% b", CLK)

/ * Es gaidīju dažādas uzvedības šeit: Es ceru, CLK == 1'b0.
Tā kā ir minēts iepriekš.
Tas ir tas, ko es gaidīt no valsts, kas nav bloķēšana piešķiršana, kad timestep (100) nav pabeigta yet.
Par imitācijai liecina CLK == 1'b1.
Tāpēc nav bloķēšana piešķiršana tiek izpildīts ne beigās, laika solis, bet kaut kur midle - pirms tā notikuma trigers.
Šī pārsteigumiem mani * /8: ja (CLK === 1'b1)
9: clk1 <= CLK;

10: gala

 
Man ir ieguvuši ļoti labas atbildes uz manu jautājumu.Par tiem, kas ieinteresēti redzēt saiti:
http://groups.google.com/groups?hl=en&lr=&ie=UTF-8&newwindow=1&selm=sdd4qn49f4e.fsf% 40shell01.TheWorld.com

 
Jums var būt oficiālajā Verilog standarta, IEEE Std 1364-2001.Tas ir pilns ar šiem datiem.
Tas ir MCU Fileman ar Specifikācijas / IEEE.

 

Welcome to EDABoard.com

Sponsor

Back
Top