Valsts mašīnbūves dizains

Rallijs Latvija - 2012 preses konference (Jūnijs 2019).

$config[ads_text] not found
Anonim

Raksta autors Ray Salemi

Valsts mašīnas ir digitālā dizaina pamats. Galu galā mēs visi sasniedzam punktu, kur mums ir jāpārvalda mūsu digitālais algoritms, un mēs gandrīz vienmēr vēršamies pie valsts mašīnas, lai veiktu darbu.

Tāpēc daudzi EDA instrumenti atzīst, kad RTL dizainers izveido valsts mašīnu un izmanto šo informāciju, lai uzlabotu to simulācijas un sintēzes rezultātus. Kad rīks atpazīst valsts dizainparaugu, tas var nodrošināt funkciju sarakstu, kas nav pieejams vispārējai loģikai. Piemēram, sintēzes rīki var mainīt valsts iekārtas kodējumu, lai uzlabotu sintēzes rezultātus, bet simulatori var padarīt valsts mašīnu un nodrošināt atkļūdošanas un pārklājuma informāciju. Instrumenti, piemēram, Mentor Precision High-Reliability sintēzes dzinējs, pat var pievienot kļūdas labošanas informāciju, lai valsts mašīna varētu darboties ar vienreizēju notikumu traucējumiem un pārietu uz nākamo pareizo stāvokli.

Tomēr neviena no šīm funkcijām nedarbosies, ja programmatūra nevar atpazīt valsts iekārtu. Kaut gan EDA rīks ražo dažādus valsts mašīnēšanas kodēšanas stilus, joprojām ir iespējams rakstīt kodu, ko nevar atpazīt kā valsts ierīci, vai nu programmatūras rīki, vai cilvēki.

Šī ir pirmā no rakstu sērijām, kas šodien runās par valsts mašīnu. Mēs gatavojamies sākt ar visvienkāršāko tēmu, nosaucot mūsu valstis un identificējot valsts mainīgo.

Katrā valsts mašīnā ir reģistrs, kurā ir valsts. Šis reģistrs baro loģiku, kas rada valsts mašīnas izvadi. Reģistrs arī apvieno ar ievades signāliem, lai noskaidrotu nākamo stāvokli. Šajā rakstā mēs izpētīsim, kā kodēt valsts iekārtu, lai atvieglotu atkļūdošanu un atkārtotu izmantošanu. Piemēram, mēs izmantosim vienkāršu fiksētā gaismas stāva ierīci:

Pirmā lieta, ko jūs pamanīsit par šo valsts iekārtu, ir tā, ka valstīm ir aprakstoši nosaukumi. Mašīna atrodas automašīnu_go stāvoklī, līdz kāds nospiež pogu walk_request. Tad tas palēnina automašīnas, aptur tās un ļauj gājējiem staigāt. Pēc tam tas brīdina cilvēkus, ka gaisma gatavojas atgriezties zaļā krāsā, un pēc tam iet uz zaļo. Šī ir vienkārša ilustrējoša valsts mašīna. Reālās pasaules valsts mašīna mums vajadzētu izmantot counter, lai saglabātu valstis katrā valstī pietiekami ilgi, lai būtu lietderīgi.

Mēs vēlamies uztvert valsts nosaukumu lasāmību mūsu kodā. Tas atvieglos atkļūdošanu, un mēs varēsim novietot valsts mainīgos lielumus dažu simulatoru skatlogos, lai redzētu pašreizējo stāvokli viļņu formā. Mēs varam izveidot šo vārdu uz valsti kartēšanu VHDL un Verilog (SystemVerilog pieeja ir līdzīga VHDL).

VHDL izveidojam valsts veidu, kurā uzskaitīti valstu nosaukumi. Tad mēs paziņojam, ka mūsu valsts mainīgie ir valsts tipa. Kods izskatās šādi:

Līnijas 45-50 norāda VHDL veidu, ko sauc par state_type, un izveido vērtības, kuras var ievietot šajā tipā. Tas kalpo diviem mērķiem: tas padara valsts mašīnu viegli nolasāmu, un tas ļauj kompilatoram sagūstīt gadījumus, kad jūs nepareiza vērtība. Tas ir grūtāk izdarīt, ja jūs izmantojat neapstrādātus numurus jūsu valsts veidiem.

Ievērojiet, ka šis kods nenorāda valsts iekārtas kodēšanu; tas atstāj kodēšanu līdz sintēzes rīka vai atbilstoši dizainera vajadzībām. Dizaineris var pateikt sintēzes rīku, lai kodētu šo valsts iekārtu kā vienu karsto, ja vajadzēja noķert atsevišķu notikumu sarežģījumus vai atļaut kļūdas labošanas kodus. Vai arī dizainers varētu izmantot sintēzes rīku, lai izmantotu bināro kodējumu kompaktākam risinājumam.

Mēs varam izdarīt līdzīgu lietojumu ar Verilog:

Šis kods izmanto Verilog parametrus, lai pievienotu vārdus numuriem, un pēc tam vēlāk kods var izmantot vārdus, lai numurus ievietotu stāvokļa diagrammā. Šajā piemērā minētie skaitļi ir ieteicamie valstu kodi. Lielākā daļa sintēzes rīku var ignorēt šos valsts kodējumus, lai izveidotu jebkuru kodējumu, ko dizainers vēlas redzēt.

Lai iegūtu pilnīgumu, šeit ir viena un tā pati lieta SystemVerilog. Ievērojiet, ka SystemVerilog ir pieņēmusi VHDL neskaitāmu pieeju:

Visi šie valsts iekārtas rakstīšanas veidi padara daudz vieglāk rakstīt nākamās valsts loģiku un izejas loģiku. Šeit ir nākamā valsts loģika šai valsts iekārtai, kas rakstīta Verilog un VHDL:

Tas ir ļoti viegli lasāms - daudz vieglāk, nekā tad, ja mēs roku nosaucam par valstīm "s0" un "s1", kā esmu redzējis kādā kodā. Tagad, kad sešus mēnešus atgriezīsities pie šīs valsts mašīnas, jūs atcerēsities to, ko darījāt, kad to izveidojāt.

Šodien mēs apskatījām veidus, kā izveidot sintēzi draudzīgas valsts mašīnas, kuras ir viegli saprotamas un atkārtoti izmantojamas. Nākamajā rakstā mēs apskatīsim kodēšanas metodes Mealy un Moore valstij un mūsu iespējas sadalīt nākamās valsts loģiku un izejas loģiku.

Saistītie elektriskie ceļveži un izstrādājumi

MEKLĒŠANA: raksti, programmatūra un ceļveži