Apsvērumi, kā pievienot reset iespēju FPGA dizains

The Great Gildersleeve: The Matchmaker / Leroy Runs Away / Auto Mechanics (Maijs 2019).

$config[ads_text] not found
Anonim

Apsvērumi, kā pievienot reset iespēju FPGA dizains


Šajā rakstā tiks apskatītas dažas no FPGA dizaina reset ievades pievienošanas sekām.

Šajā rakstā tiks apskatīti daži pamata apsvērumi konkrētas funkcionalitātes kodēšanai ar atiestatīšanas ievadi. Atmiņas resetācijas izmantošanas sekas dizainers var aizmirst, bet nepareiza atiestatīšanas stratēģija var viegli uzlikt smagas sankcijas. Atiestatīšanas iespējas var negatīvi ietekmēt FPGA dizaina ātrumu, platību un enerģijas patēriņu.

Pirms turpināt mūsu diskusiju, ir vērts uzsvērt vienu pamatprincipu: FPGAs ir programmējamās ierīces, taču tas nenozīmē, ka mēs varam programmēt katru funkciju FPGA. Šis pamatprincips tiks precizēts pārējā rakstā.

Uzmanīgi izlasiet detaļas, pirms pievienojat atiestatīšanas ievadi

1. attēlā parādīts D tipa flip-flop (DFF), kas pieejams Xilinx 7 sērijas FPGA.

1. attēls. Xilinx 7 sērijas FPGA sērijas FDRE D tipa flip-flop. Image pieklājīgi no Xilinx.

Xilinx bibliotēkas rokasgrāmatā šis DFF, kuram ir sinhronā atiestatīšana (R) un pulksteņa aktivizēšanas (CE) ievade, tiek saukts par FDRE (Flip-flop, D tips, sinhronais reset, ar pulksteņa aktivizēšanu). Šī elementa loģiskā tabula parādīta 2. attēlā.

2. attēls. Xilinx 7 sērijas FPGA koda FDRE D tipa flip flop loģiskā tabula. Image pieklājīgi no Xilinx.

Šeit R, CE, D, un C ir DFF ieejas, un tie atbilst attiecīgi atjaunošanai, pulksteņa aktivizēšanai, datu ievadīšanai un pulkstenim. X ir "neveiksme" un ↑ apzīmē pulksteņa augšupējo malu. Atjaunošana ir sinhronā, jo tā var atiestatīt izeju tikai pulksteņa augšdaļā.

Šis DFF ir dizaina elements, ko var izmantot kā lielāka dizaina bloku. Mēs varam to izmantot, lai reģistrētu vajadzīgo signālu. Un mēs varam brīvi izmantot reset un pulksteni panākt FDRE ieguldījumu, kā mēs vēlamies.

Mēs varam izvēlēties, vai mēs vēlamies izmantot pieejamo būvlaukuma funkciju, vai ne. Tomēr mēs nevaram pievienot konkrētajam būvobjektam neatbalstītu funkciju. Piemēram, apsveriet iepriekš minēto FDRE elementu. Šis dizaina elements atbalsta tikai sinhronu atiestatīšanu. Gadījumā, ja mums ir vajadzīgi gan asinhronie, gan sinhronie atiestatījumi, mēs nevarēsim izmantot FDRE flip flop. Šajā gadījumā sintēzes rīksi būs jāizmanto cits resurss, vai arī tas var pat izmantot esošo elementu kombināciju, lai realizētu vēlamo dizainu. Kā redzat, tiek noteikti fiksēto plusu zemfrekvences elementi, taču, tiklīdz šie dizaina elementi ir konfigurēti, mēs savienojam tos kopā, kā mēs vēlamies, un veidojam lielāku dizainu.

Kā smalks piemērs tam, kā FPGA granularitāte var ietekmēt ieviešanu, ņemiet vērā, ka saskaņā ar iepriekš minēto loģisko tabulu FDRE reset (R) ievadei ir lielāka prioritāte salīdzinājumā ar pulksteņa aktivizēšanas (CE) ievadi (paziņojums par tabulas pirmajā rindā, kad R ir 1, CE nav nozīmes). Tagad pieņemsim, ka mūsu HDL kods izmanto DFF, izmantojot gan reset, gan clock enable inputs. Un ABL apraksts dod lielāku prioritāti CE ieejai, nevis R ievadei. Arī šajā gadījumā sintēzes rīksi būs jāizmanto resurss, kas nav FDRE, vai arī tam būs jāizmanto pieejamo bloku kombinācija, lai īstenotu vēlamo funkcionalitāti. Plašāku informāciju par šo piemēru skatiet šajā Xilinx baltā grāmatā.

Iepriekš minētā diskusija parāda, ka, lai efektīvi izstrādātu dizainu, mums rūpīgi jāizpēta FPGA dizaina elementi, tāpat kā mēs pirms tā izmantošanas izpētām atsevišķas sastāvdaļas datu lapu. Pārējā rakstā redzami daži citi šī principa piemēri.

Shift reģistrācijas meklējumu tabula (SRL16)

Xilinx sintēzes rīks var realizēt uz LUT balstītus pāreju reģistrus, kas ir daudz kompakti un ātrāk nekā struktūra, kas iegūta, vienkāršā kaskādes procesā izmantojot dažus DFF. Šie efektīvie maiņu reģistri, ko sauc par SRL, neatbalsta reset ievadi. Tāpēc, ja jūsu maiņu reģistrā patiešām nav nepieciešams atiestatīt, jums vajadzētu izvairīties no tā, lai sintēzes rīks varētu izdarīt secinājumu par efektīvu SRL īstenošanu maiņu reģistrā. Ja jūsu kods apraksta maiņu reģistru ar atiestatīšanu, XST īstenos dizainu, izmantojot DFF, vai arī izmantos kādu papildu loģiku par SRL, lai varētu atjaunot funkcionalitāti. RPM var secināt no vienkāršiem kontaktu operatoriem (skatiet XST lietotāja rokasgrāmatas 154. lpp.).

Bloķēt atmiņas

Līdzīgi kā SRL gadījumā, mēs nevaram atiestatīt bloķējošo RAM saturu, izmantojot precīzu atiestatīšanu. Tāpēc, kartējot dizainu bloku RAM, mums nevajadzētu izmantot atiestatīšanu. Šeit varat atrast detalizētāku informāciju.

Reizinātāji

Atšķirībā no SRL vai bloķēšanas RAM, kas neatbalsta atiestatīšanu, dažiem moduļiem, piemēram, reizinātājiem, ir ierobežojumi resetācijas tipam. Šie moduļi atbalsta tikai sinhronu atiestatīšanu. Par noteiktu koeficientu, aizstājot asinhrono reset ar sinhrono stratēģiju, var palielināt darbības biežumu par diviem vai vairākiem koeficientiem.

Rezumējot, nepareiza atiestatīšanas stratēģija neļauj sintezēšanas rīklam efektīvi izmantot FPGA pieejamos optimizētos moduļus. Tas var negatīvi ietekmēt dizaina platību, jaudu un ātrumu. Tagad aplūkosim dažus piemērus, kuros sintēzes programmatūra izmanto DFF atiestatīšanas portu, lai veiktu dažus optimizējumus.

Iestatīšanas / atiestatīšanas ieeju izmantošana, lai optimizētu ieviešanu

Parasti ieteicams pēc iespējas vairāk izvairīties no ievadīto un atiestatīšanas ievades. Tas palīdz sintēzes rīksi piemērot optimizāciju, ja tiek pārbaudīti DFF iestatījumu / atiestatīšanas ieejas, lai vienkāršotu ieviešanu. Lai precizētu, pieņemsim, ka mēs vēlamies ieviest shematiskos attēlus, kas parādīti 3. attēlā.

3. attēls. Konkrēts gadījums, ko var optimizēt sintēzes programmatūra. Attēls, pateicoties Advanced FPGA Design.

3. attēlā, kad "Signāls A" ir loģisks, DFF izeja augs pulksteņa malā neatkarīgi no kombinētās shēmas "Comb Logic" izejas. Tāpēc, kā parādīts 4. attēlā, sintēzes programmatūra var novērst VR vārtus un piemērot DFF sinhrono iestatījumu ievadītajam signālam A. Tagad, kad "Signāls A" ir loģisks, DFF pulksteņa malā tiks iestatīts augsts. Pretējā gadījumā izlaidi noteiks kombinētā kontūra "Comb Logic". Jaunais dizains dod vēlamo funkcionalitāti, taču tagad VR vārti tiek likvidēti un var uzlabot gan dizaina ātrumu, gan platību.

4. attēls. Optimizēta ķēdes forma 3.attēlā. Attēls, pateicoties Advanced FPGA dizains.

Interesanti ir atzīmēt, ka dažreiz sintēzes rīks var nolemt veikt iepriekšminētās optimizācijas otrādi un ieviest 4. attēlā redzamo shematisko attēlu, kā parādīts 3. attēlā! Tas ir saistīts ar faktu, ka 7 sērijās visās DFF šķēlēs ir vienādas CK, SR (set / reset) un CE signāli. Tas nozīmē, ka DFF, kura SR ievade ir savienota ar "Signālu A", nevar būt tajā pašā šķēlei, kurai ir DFF ar tās SR ievadi, kas pieslēgta citam signālam, nevis "Signal A". Ja vadības signāli, ti, CK, SR un CE, nav vienādi, DFF ir jāievieto dažādās šķēlēs. Tas var izraisīt neefektīvu šķēļu izmantošanu konstrukcijā, kurā tiek izmantoti daudzi zemas frekvences atskaites signāli. Patiesībā katrs zemas frekvences atskaites signāls izmantos dažus šķēles DFF un atlikušos DFF fragmentus tiks izšķiesti. Šādos gadījumos sintēzes rīks var ieviest 4. attēlā redzamo shematisko elementu, kā parādīts 3. attēlā. Šis process novedīs pie DFF, kuri neizmanto reset reset. Rezultātā šie DFF var kopēt tos pašus vadības signālus un tos var ievietot vienā un tajā pašā šķēlēs. Tādēļ tiks uzlabota ierīces izmantošana.

3. un 4. attēlā mēs redzējām, ka VR vārti, kam seko DFF, var tikt aizstāti ar DFF, kas izmanto iestatīto ievadi. Tāpat mēs varam aizstāt AND vārtus, pēc tam DFF ar DFF, kas izmanto reset ievadi (sk. 5. attēlu).

Attēls. Image courtesy of Xilinx.

5. attēlā SRVAL atribūts norāda DFF izejas vērtību pēc SR ievades apstiprināšanas. Tāpēc, lai vidējais DFF kreisajā pusē, SR ievade ir norādīta kā iestatīts ports. Taču apakšējā DFF kreisajā pusē SR ievade faktiski ir reset input. Augšējā DFF neizmanto atiestatīšanas ievadi.

Kreisajā pusē esošos trīs DFF nevar ievietot vienā un tajā pašā šķēlēs, jo tiem ir dažādi vadības signāli. Tomēr, apspriežot iepriekš aprakstītos reklāmguvumus, mēs iegūstam trīs DFF ar tādu pašu kontroles signālu kopu. Tādējādi mēs varam ievietot trīs DFF vienā un tajā pašā šķēlēs. Ņemiet vērā, ka iepriekš minētie reklāmguvumi nav derīgi ar asinhroniem iestatīšanas / atiestatīšanas signāliem. Tāpēc parasti tiek ieteikts izmantot sinhronus iestatīšanas / atiestatīšanas signālus, nevis asinhronos.

Atsauces

  • Kā es varu atiestatīt manu FPGA? ar Srikanth Erusalagandi, Xilinx.
  • Iegūstiet savas prioritātes tiesības - padarot savu dizainu līdz 50% mazāku, ko Ken Chapman, Xilinx.
  • Izvērstā FPGA dizains: arhitektūra, ieviešana un optimizācija, ko izstrādājis Steve Kilts.
  • HDL kodēšanas prakse, lai paātrinātu Philippe Garroult, Xilinx dizaina veiktspēju.
  • Iegūstiet labu informāciju par reset: Think Local, Not Global - Ken Chapman, Xilinx.

Lai apskatītu pilnu manu rakstu sarakstu, lūdzu, apmeklējiet šo lapu.