Lielu FPGA projektu izstrādes piemēri. Par projektu dokumentēšanu plisam. asociatīvā atmiņa. Organizācija, izlases metode, atšķirības no adrešu atmiņas

💖 Patīk? Kopīgojiet saiti ar draugiem

Iedomājieties, ka procesors tā vietā, lai izpildītu noteiktu instrukciju kopu, tiks pārbūvēts katrai programmai un pārvērstu algoritmu tieši par aparatūru. Tā darbojas FPG. Šodienas rakstā es paskaidrošu, kā tas vispār ir iespējams, un iepazīstināšu jūs ar dažādām FPGA projektēšanas metodēm.

Lai sāktu, jums ir nedaudz jāsaprot ASIC darbības digitālā loģika, taču ir ļoti grūti un dārgi sākt ar tiem, un labāk ir sākt ar FPGA.

Kas ir FPGA?

FPGA apzīmē lauka programmējamo vārtu masīvu (lietotāja programmējamo vārtu masīvu, FPGA). Vispārīgākā gadījumā tās sauc par FPGA - programmējamām loģikas integrālajām shēmām.

Ar FPGA palīdzību jūs varat izveidot digitālās mikroshēmas šī vārda tiešākajā nozīmē, sēžot mājās ar pieejamu atkļūdošanas dēli uz galda un izstrādātāja programmatūru par vairākiem tūkstošiem zaļo rubļu. Taču ir arī bezmaksas iespējas. Piezīme: tas ir projektēšana, nevis programmēšana, jo izejā mēs iegūsim fizisku digitālo shēmu, kas izpilda noteiktu algoritmu aparatūras līmenī, nevis procesora prog.

Tas darbojas šādi. Ir jau gatava iespiedshēmas plate ar interfeisu komplektu, kas ir savienoti ar plates uzstādītu FPGA mikroshēmu, kaut kas līdzīgs tādai foršai datu centra platei vai šī atkļūdošanas plate apmācībai.

Kamēr mēs nekonfigurēsim FPGA, mikroshēmā vienkārši nav loģikas, lai apstrādātu datus no saskarnēm, un tāpēc, protams, nekas nedarbosies. Bet dizaina rezultātā tiks izveidota programmaparatūra, kas pēc ielādes FPGA izveidos mums nepieciešamo digitālo shēmu. Tādā veidā jūs varat izveidot 100G Ethernet kontrolieri, kas saņems un apstrādās tīkla paketes.

Svarīga FPGA iezīme ir iespēja pārkonfigurēt. Pieņemsim, ka tagad mums ir nepieciešams 100 G Ethernet kontrolieris, un pēc nedēļas to pašu plati varēs izmantot četru neatkarīgu 25 G Ethernet saskarņu ieviešanai.

Tirgū ir divi FPGA mikroshēmu ražotāja līderi: labi zināmais Intel un Xilinx. Viņi kontrolē 58 un 42% tirgus. Xilinx dibinātāji izgudroja savu pirmo FPGA mikroshēmu tālajā 1985. gadā. Intel tirgū ienāca pavisam nesen – 2015. gadā, absorbējot Altera, kas dibināta vienlaikus ar Xilinx. Altera un Xilinx tehnoloģijas daudzējādā ziņā ir līdzīgas, tāpat kā izstrādes vide. Biežāk nekā nē, esmu strādājis ar Xilinx produktiem, tāpēc nebrīnieties, redzot viņu pastāvīgi pieminētu rakstā.

FPGA plaši izmanto dažādās jomās: plaša patēriņa elektronikā, telekomunikāciju iekārtās, akseleratora plates izmantošanai datu centros, robotikā, ASIC prototipu veidošanā. Tālāk es apskatīšu pāris piemērus.

Apskatīsim arī tehnoloģiju, kas nodrošina aparatūras pārkonfigurēšanu, iepazīsimies ar projektēšanas procesu un analizēsim vienkāršu aparatūras skaitītāja ieviešanas piemēru Verilog valodā. Ja jums ir kāda FPGA atkļūdošanas plate, jums vajadzētu būt iespējai to kopēt pats. Ja nav dēļa, jūs joprojām varat iepazīties ar Verilog, simulējot ķēdes darbību datorā.

Kā darbojas FPGA

FPGA mikroshēma ir tā pati pielāgotā ASIC mikroshēma, kas sastāv no tiem pašiem tranzistoriem, kurus izmanto, lai saliktu flip-flops, reģistrus, multipleksorus un citus loģiskos elementus parastajām shēmām. Protams, nav iespējams mainīt šo tranzistoru savienojuma secību. Bet arhitektoniski mikroshēma ir uzbūvēta tik viltīgi, ka var mainīt signālu pārslēgšanu starp lielākiem blokiem: tos sauc par CLB - programmējamiem loģikas blokiem.

Varat arī mainīt CLB veikto loģisko funkciju. Tas tiek panākts, pateicoties tam, ka visa mikroshēma ir caurstrāvota ar konfigurācijas atmiņas šūnām Static RAM. Katrs šīs atmiņas bits vai nu kontrolē kādu signāla pārslēgšanas taustiņu, vai arī ir daļa no loģiskās funkcijas patiesības tabulas, ko īsteno CLB.

Tā kā konfigurācijas atmiņa ir veidota, izmantojot Static RAM tehnoloģiju, pirmkārt, ieslēdzot FPGA, ir jākonfigurē mikroshēma, otrkārt, mikroshēmu var pārkonfigurēt gandrīz bezgalīgi daudz reižu.

Ļoti vienkāršota 2D mikroshēmas struktūra bez konfigurācijas atmiņas

CLB atrodas komutācijas matricā, kas nosaka savienojumus CLB ieejām un izejām.

Pārslēgšanas matricas diagramma

Katrā vadītāju krustpunktā ir seši pārslēgšanas taustiņi, ko kontrolē savas konfigurācijas atmiņas šūnas. Atverot dažus un aizverot citus, ir iespējams nodrošināt dažādu signālu pārslēgšanu starp CLB.

CLB

CLB ļoti vienkārši sastāv no bloka, kas definē Būla funkciju no vairākiem argumentiem (to sauc par uzmeklēšanas tabulu — Look Up Table, LUT) un trigera (flip-flop, FF). Mūsdienu FPGA LUT ir sešas ieejas, bet vienkāršības labad attēlā parādītas trīs. LUT izvade tiek ievadīta CLB izvadā vai nu asinhroni (tieši) vai sinhroni (izmantojot FF flip-flop, kas darbojas sistēmas pulkstenī).

LUT ieviešanas princips

Interesanti paskatīties uz LUT ieviešanas principu. Pieņemsim, ka mums ir kāda Būla funkcija y = (a & b) | ~c. Tās shematisks attēlojums un patiesības tabula ir parādīta attēlā. Funkcijai ir trīs argumenti, tāpēc tai ir 2^3 = 8 vērtības. Katrs no tiem atbilst savai ieejas signālu kombinācijai. Šīs vērtības aprēķina FPGA programmaparatūras izstrādes programma un ieraksta īpašās konfigurācijas atmiņas šūnās.

Katras šūnas vērtība tiek ievadīta tās LUT izejas multipleksora ieejā, un Būla funkcijas ievades argumenti tiek izmantoti, lai izvēlētos vienu vai otru funkcijas vērtību. CLB ir vissvarīgākais FPGA aparatūras resurss. CLB daudzums mūsdienu FPGA mikroshēmās var atšķirties un ir atkarīgs no mikroshēmas veida un jaudas. Xilinx ir CLB kristāli no aptuveni četriem tūkstošiem līdz trīs miljoniem.

Papildus CLB FPGA iekšpusē ir vairāki svarīgi aparatūras resursi. Piemēram, aparatūras reizināšanas-akumulācijas bloki vai DSP bloki. Katrs no tiem var veikt 18 bitu skaitļu reizināšanu un saskaitīšanu katrā ciklā. Augstākās klases kristālos DSP bloku skaits var pārsniegt 6000.

Vēl viens resurss ir iekšējās atmiņas bloki (Block RAM, BRAM). Katrā blokā var saglabāt 2 KB. Šādas atmiņas kopējā ietilpība atkarībā no kristāla var sasniegt no 20 KB līdz 20 MB. Tāpat kā CLB, BRAM un DSP bloki ir savienoti ar komutācijas matricu un caurstrāvo visu mikroshēmu. Sasaistot CLB, DSP un BRAM blokus, var iegūt ļoti efektīvas datu apstrādes shēmas.

FPGA priekšrocības

Pirmajā FPGA mikroshēmā, ko Xilinx izveidoja 1985. gadā, bija tikai 64 CLB. Tajā laikā tranzistoru integrācija mikroshēmās bija daudz zemāka nekā tagad, un digitālajās ierīcēs bieži tika izmantotas "vaļīgās loģikas" mikroshēmas. Bija atsevišķi čipi reģistriem, skaitītājiem, multipleksoriem, reizinātājiem. Konkrētai ierīcei tika izveidota sava iespiedshēmas plate, uz kuras tika uzstādītas šīs zemās integrācijas mikroshēmas.

FPGA izmantošana ļāva atteikties no šīs pieejas. Pat 64 CLB FPGA ietaupa vietu uz iespiedshēmas plates, un pārkonfigurācijas pieejamība papildināja iespēju atjaunināt ierīču funkcionalitāti pēc ražošanas darbības laikā, kā saka “laukā” (tātad nosaukums - uz lauka programmējams vārtu masīvs ).

Tā kā FPGA iekšpusē var izveidot jebkuru aparatūras digitālo shēmu (galvenais, lai būtu pietiekami daudz resursu), viens no svarīgiem FPGA pielietojumiem ir ASIC mikroshēmu prototipēšana.

ASIC izstrāde ir ļoti sarežģīta un dārga, kļūdu izmaksas ir ļoti augstas, un loģikas testēšanas jautājums ir ļoti svarīgs. Tāpēc viens no izstrādes posmiem, pat pirms ķēdes fiziskās topoloģijas darba uzsākšanas, bija tās prototipēšana vienā vai vairākās FPGA mikroshēmās.

ASIC izstrādei tiek izlaistas īpašas plates, kurās ir daudz savstarpēji savienotu FPGA. Mikroshēmas prototips darbojas daudz zemākās frekvencēs (varbūt desmitiem megahercu), taču ietaupa naudu, lai identificētu problēmas un kļūdas.

Tomēr, manuprāt, ir daudz interesantāku FPGA pielietojumu. FPGA elastīgā struktūra ļauj ieviest aparatūras shēmas ātrdarbīgai un paralēlai datu apstrādei ar iespēju mainīt algoritmu.


Aparatūras platformu salīdzinājums

Padomāsim par būtisku atšķirību starp CPU, GPU, FPGA un ASIC. Centrālais procesors ir universāls, tajā var palaist jebkuru algoritmu, tas ir viselastīgākais, un to ir visvieglāk lietot, pateicoties lielajam programmēšanas valodu un izstrādes vides skaitam.

Tajā pašā laikā, pateicoties CPU instrukciju daudzpusībai un secīgai izpildei, veiktspēja samazinās un ķēdes enerģijas patēriņš palielinās. Tas notiek tāpēc, ka katrai noderīgai aritmētiskai darbībai centrālais procesors veic daudzas papildu darbības, kas saistītas ar instrukciju nolasīšanu, datu pārvietošanu starp reģistriem un kešatmiņu un citiem žestiem.

Otrā pusē ir ASIC. Šajā platformā nepieciešamais algoritms tiek realizēts aparatūrā, pateicoties tranzistoru tiešai pieslēgšanai, visas darbības ir saistītas tikai ar algoritma izpildi un nav iespējas to mainīt. Tādējādi platformas maksimālā veiktspēja un zemākais enerģijas patēriņš. Bet ASIC pārprogrammēt nav iespējams.

Pa labi no CPU ir GPU. Sākotnēji šīs mikroshēmas bija paredzētas grafikas apstrādei, bet tagad tiek izmantotas vispārējas nozīmes skaitļošanas ieguvei. Tie sastāv no tūkstošiem mazu skaitļošanas kodolu un veic paralēlas darbības ar datu masīvu.

Ja algoritmu var paralēli, tad uz GPU būs iespējams sasniegt ievērojamu paātrinājumu salīdzinājumā ar CPU. No otras puses, secīgie algoritmi tiks ieviesti sliktāk, tāpēc platforma ir mazāk elastīga nekā centrālais procesors. Tāpat GPU izstrādei ir jābūt īpašām prasmēm, jāzina OpenCL vai CUDA.

Visbeidzot, FPGA. Šī platforma apvieno ASIC efektivitāti ar iespēju mainīt programmu. FPGA nav universāli, taču ir algoritmu un uzdevumu klase, kas uzrādīs labāku veiktspēju nekā CPU un pat GPU. FPGA izstrādes sarežģītība ir augstāka, taču jauni izstrādes rīki samazina šo plaisu.

Izšķirošā FPGA priekšrocība ir spēja apstrādāt datus to ierašanās ātrumā ar minimālu reakcijas aizkavi. Piemēram, iedomājieties viedo tīkla maršrutētāju ar lielu skaitu portu: kad Ethernet pakete nonāk vienā no tās portiem, pirms izvades porta izvēles ir jāpārbauda daudzi noteikumi. Iespējams, būs jāmaina daži pakotnes lauki vai jāpievieno jauni.

Izmantojot FPGA, šo problēmu var atrisināt uzreiz: paketes baiti ir tikko sākuši nonākt mikroshēmā no tīkla interfeisa, un tās galvene jau tiek analizēta. Procesoru izmantošana šeit var ievērojami palēnināt tīkla trafika apstrādes ātrumu. Ir skaidrs, ka maršrutētājiem varat izveidot pielāgotu ASIC mikroshēmu, kas darbosies visefektīvāk, bet ko darīt, ja ir jāmaina pakešu apstrādes noteikumi? Tikai FPGA var palīdzēt sasniegt nepieciešamo elastību apvienojumā ar augstu veiktspēju.

Tādējādi FPGA tiek izmantotas vietās, kur nepieciešama augsta apstrādes veiktspēja, ātrākais reakcijas laiks un zems enerģijas patēriņš.

FPGA mākonī

Mākoņdatniecībā FPGA izmanto ātrai skaitīšanai, tīkla trafika paātrināšanai un piekļuvei datu masīviem. Tas ietver arī FPGA izmantošanu augstas frekvences tirdzniecībai biržās. Serveros tiek ievietotas FPGA plates ar PCI Express un optiskā tīkla interfeisu, ko ražo Intel (Altera) vai Xilinx.

FPGA ir lieliski piemēroti kriptogrāfijas algoritmiem, DNS secību salīdzināšanai un zinātniskiem uzdevumiem, piemēram, molekulārajai dinamikai. Microsoft jau sen ir izmantojis FPGA, lai paātrinātu Bing meklēšanas pakalpojumu, kā arī organizētu programmatūras definētu tīklu Azure mākonī.

Mašīnmācīšanās bums nav apiets arī FPGA. Xilinx un Intel piedāvā uz FPGA balstītus rīkus darbam ar dziļiem neironu tīkliem. Tie ļauj iegūt FPGA programmaparatūru, kas ievieš noteiktu tīklu tieši no tādām sistēmām kā Caffe un TensorFlow.

Turklāt to visu varat izmēģināt, neizejot no mājām un neizmantojot mākoņpakalpojumus. Piemēram, vietnē Amazon varat iznomāt virtuālo mašīnu ar piekļuvi FPGA platei un visiem izstrādes rīkiem, tostarp mašīnmācībai.

FPGA uz malas

Ko vēl interesantu dara FPGA? Kāpēc viņi to vienkārši nedara! Robotika, bezpilota transportlīdzekļi, droni, zinātniskie instrumenti, medicīnas aprīkojums, lietotāju mobilās ierīces, viedās drošības kameras un tā tālāk.

Tradicionāli FPGA tika izmantoti viendimensijas signālu digitālai apstrādei (un sacentās ar DSP procesoriem) radara ierīcēs, radiosignālu raiduztvērējos. Pieaugot mikroshēmu integrācijai un pieaugošajai veiktspējai, FPGA platformas arvien vairāk tiek izmantotas augstas veiktspējas skaitļošanai, piemēram, divdimensiju signālu apstrādei "mākoņa malā" (malu skaitļošana).

Šo koncepciju visvieglāk var saprast, izmantojot satiksmes analīzes kameras piemēru ar numura zīmes atpazīšanu. Varat paņemt kameru ar iespēju pārraidīt video pa Ethernet un apstrādāt straumi attālā serverī. Palielinoties kameru skaitam, palielināsies arī tīkla slodze, kas var izraisīt sistēmas kļūmes.

Tā vietā labāk ir ieviest numura zīmju atpazīšanu kalkulatorā, kas uzstādīts tieši videokameras korpusā, un teksta formātā pārsūtīt numura zīmes uz mākoni. Lai to izdarītu, jūs pat varat izmantot salīdzinoši lētus mazjaudas FPGA, lai iztiktu ar akumulatoru. Tajā pašā laikā joprojām ir iespējams mainīt FPGA loģiku, piemēram, mainot numura zīmju standartu.

Runājot par robotiku un droniem, šajā jomā īpaši svarīgi ir izpildīt divus nosacījumus – augstu veiktspēju un zemu enerģijas patēriņu. FPGA platforma lieliski iederas, un to var īpaši izmantot, lai izveidotu dronu lidojuma kontrolierus. Jau tiek ražoti bezpilota lidaparāti, kas var pieņemt lēmumus lidojumā.

FPGA projektu izstrāde

Ir dažādi dizaina līmeņi: zems, bloks un augsts. Zemajā līmenī tiek izmantotas tādas valodas kā Verilog vai VHDL, kur jūs kontrolējat attīstību reģistra pārsūtīšanas līmenī (RTL). Šajā gadījumā jūs veidojat reģistrus, tāpat kā procesorā, un definējat loģiskās funkcijas, kas maina datus starp tiem.

FPGA shēmas vienmēr darbojas ar noteiktiem pulksteņa ātrumiem (parasti 100–300 MHz), un RTL līmenī jūs definējat ķēdes darbību sistēmas pulksteņa pulkstenī. Šī rūpīgā darba rezultāts ir visefektīvākās shēmas veiktspējas, FPGA die resursu patēriņa un enerģijas patēriņa ziņā. Bet šeit ir nepieciešamas nopietnas iemaņas shēmā, un process ar tām nav ātrs.

Bloku līmenī jūs būtībā savienojat gatavus lielus blokus, kas veic noteiktas funkcijas, lai iegūtu jums nepieciešamās sistēmas mikroshēmas (sistēmā mikroshēmas) funkcionalitāti.

Augstā dizaina līmenī jūs vairs nekontrolēsit datus katrā pulksteņa ciklā, tā vietā koncentrēsities uz algoritmu. Ir kompilatori vai tulkotāji no C un C++ līdz RTL līmenim, piemēram, Vivado HLS. Tas ir diezgan gudrs un ļauj tulkot plašu algoritmu klasi aparatūras līmenī.

Šīs pieejas galvenā priekšrocība salīdzinājumā ar RTL valodām ir izstrādes ātrums un jo īpaši algoritmu testēšana: C++ kodu var palaist un pārbaudīt datorā, un tas būs daudz ātrāk nekā algoritma izmaiņu testēšana RTL līmenī. Protams, jums būs jāmaksā par ērtībām - ķēde var izrādīties ne tik ātra un aizņemt vairāk aparatūras resursu.

Bieži vien mēs esam gatavi maksāt šo cenu: pareizi izmantojot tulku, efektivitāte daudz necietīs, un mūsdienu FPGA ir pietiekami daudz resursu. Mūsu pasaulē ar kritisko laiku līdz tirgum rādītājs tas izrādās attaisnojams.

Bieži vien visi trīs izstrādes stili ir jāapvieno vienā dizainā. Pieņemsim, ka mums ir jāizgatavo ierīce, kuru mēs varētu iebūvēt robotā un dot tam iespēju atpazīt objektus video straumē - piemēram, ceļa zīmes. Ņemsim video sensora mikroshēmu un savienosim to tieši ar FPGA. Atkļūdošanai mēs varam izmantot HDMI monitoru, kas ir arī savienots ar FPGA.

Kadri no kameras tiks pārsūtīti uz FPGA, izmantojot sensora ražotāja iepriekš noteiktu interfeisu (USB šeit nedarbojas), apstrādāti un parādīti monitorā. Lai apstrādātu kadrus, jums būs nepieciešams kadru buferis, kas parasti atrodas ārējā DDR atmiņā, kas uzstādīta uz iespiedshēmas plates blakus FPGA mikroshēmai.


Tipiska FPGA dizaina blokshēma

Ja video sensora ražotājs mūsu FPGA mikroshēmai nenodrošina Interfeisa IP, tad mums pašiem būs jāraksta RTL valodā, skaitot pulksteņus, bitus un baitus atbilstoši datu pārraides protokola specifikācijai. Preprocess, DDR Controller un HDMI IP bloki, mēs visticamāk ņemsim gatavus un vienkārši savienosim to saskarnes. Un HLS bloku, kas veic ienākošo datu meklēšanu un apstrādi, mēs varam rakstīt C ++ un pārraidīt, izmantojot Vivado HLS.

Visticamāk, mums vēl ir vajadzīga kaut kāda gatava ceļa zīmju detektora un klasifikatora bibliotēka, kas pielāgota lietošanai FPGA. Šajā piemērā, protams, es sniedzu ļoti vienkāršotu dizaina blokshēmu, taču tā pareizi atspoguļo darba loģiku.

Apsveriet dizaina ceļu no RTL koda rakstīšanas līdz konfigurācijas faila iegūšanai ielādei FPGA.

Dizaina ceļš

Tātad, jūs rakstāt RTL kodu, kas ievieš jums nepieciešamo shēmu. Pirms testēšanas uz īstas aparatūras, jums jāpārliecinās, ka tā ir pareiza un pareizi atrisina nepieciešamo problēmu. Šim nolūkam datora simulatorā tiek izmantota RTL modelēšana.

Jūs ņemat savu ķēdi, kas līdz šim attēlota tikai RTL kodā, un novietojiet to uz virtuāla stenda, kur pielietojat ciparu signālu secības ķēdes ieejām, reģistrē izejas diagrammas, izejas signālu laika atkarības un salīdzina ar gaidāmajiem rezultātiem. . Parasti atrodat kļūdas un atgriežaties pie RTL rakstīšanas.

Tālāk loģiski pārbaudītais kods tiek ievadīts sintezatora programmas ievadē. Tas pārvērš ķēdes teksta aprakstu saistītā digitālo elementu sarakstā no bibliotēkas, kas pieejama konkrētajai FPGA mikroshēmai. Šajā sarakstā tiks parādīti tādi elementi kā LUT, trigeri un saites starp tiem. Šajā posmā elementi vēl nav piesaistīti konkrētiem aparatūras resursiem. Lai to izdarītu, ķēdei ir jāievieš ierobežojumi (ierobežojumi) - jo īpaši norādiet, kuras FPGA mikroshēmas fiziskās I / O tapas ir savienotas ar jūsu ķēdes loģiskajām ieejām un izejām.

Šie ierobežojumi arī prasa norādīt, ar kādiem pulksteņa ātrumiem ķēdei jādarbojas. Sintezatora izvade un ierobežojumu fails tiek nodoti ieviešanas procesoram, kas cita starpā apstrādā vietu un maršrutu.

Vietas process saista katru vēl bezpersonisko elementu no tīkla saraksta ar konkrētu elementu FPGA mikroshēmā. Tālāk sāk darboties maršruta process, kas mēģina atrast šo elementu optimālo savienojumu atbilstošajai FPGA komutācijas matricas konfigurācijai.

Vieta un maršruts darbojas, pamatojoties uz ierobežojumiem, ko esam uzlikuši ķēdei: I/O tapas un pulksteņa ātrumu. Pulksteņa periodam ir ļoti spēcīga ietekme uz ieviešanu: tas nedrīkst būt mazāks par laika aizkavi uz loģiskajiem vārtiem kritiskajā ķēdē starp diviem secīgiem flip-flop.

Bieži vien šo prasību nevar izpildīt uzreiz, un tad ir jāatgriežas sākotnējā stadijā un jāmaina RTL kods: piemēram, mēģiniet samazināt loģiku kritiskajā ķēdē. Kad ieviešana ir veiksmīgi pabeigta, mēs zinām, kuri elementi atrodas un kā tie ir savienoti.

Tikai pēc tam sākas binārā FPGA programmaparatūras faila izveides process. Atliek to ielādēt reālā aparatūrā un pārbaudīt, vai tas darbojas, kā paredzēts. Ja šajā posmā rodas problēmas, tas nozīmē, ka modelēšana bija nepilnīga un šajā posmā visas kļūdas un nepilnības netika novērstas.

Varat atgriezties simulācijas stadijā un simulēt neparastu situāciju, un, ja tas nedarbojas, ārkārtējos gadījumos atkļūdošanas mehānisms tiek nodrošināts tieši aparatūrā. Varat norādīt, kurus signālus vēlaties izsekot laika gaitā, un izstrādes vide ģenerēs papildu loģiskā analizatora ķēdi, kas tiek novietota mikroshēmā blakus jūsu dizaina shēmai, savienojas ar interesējošajiem signāliem un laika gaitā saglabā to vērtības. Vēlamo signālu saglabātās laika diagrammas var lejupielādēt datorā un analizēt.

Kamēr bija brīvdienas, uztaisīju nelielu projektu Verilogā, ko jau sen gribēju izmēģināt.

Projekta būtība ir šāda: FPGA ir pievienots ātrs (protams, relatīvi) ADC ar diviem kanāliem un paralēlu interfeisu (14-16 biti kanālā). FPGA nolasa datus no ADC un saglabā tos buferī (tā iekšējā BRAM atmiņā). Kad buferis ir pilns, nolasīšana apstājas un ārējā ierīce (mikrokontrolleris) var nolasīt datus no bufera, izmantojot SPI interfeisu. Varat arī konfigurēt dažus parametrus, izmantojot SPI (tas tiks apspriests nākamajā ierakstā).

Projekta tests (klikšķināms attēls).

Ciklona IVE sintēzes rezultāts

Es sintezēju rezultātu Quartus II, lai iegūtu Cyclone IVE saimes FPGA (EP4CE6E22A7). Šis ir viens no vienkāršākajiem un lētākajiem FPGA QFP144 pakotnē 6272 loģiskajiem elementiem. Mikroshēmas atmiņas ietilpība ir 30K * 9 biti. Lietotāja tapas - 92.

mikroshēma EP4CE6E22A7
loģiskie elementi - 301 (5%)
tapas - 41 (45%)
atmiņa - 65536 biti (24%)
sliktākā gadījuma frekvence (125 C) - 151 MHz.

Atmiņa 8 KB, patiesībā tas ir buferis, kurā tiek ierakstīti dati. Ar diviem 16 bitu kanāliem katrā paraugā tiek iegūti 32 biti un 2048 paraugi. Nolēmu, ka ar to pietiks, lai gan buferi var paplašināt pat līdz visam skaļumam.

Frekvence ir diezgan apmierinoša, es gaidīju, ka būs 50 MHz takts frekvence un 25 MHz ADC. Tas ir, tiek iegūta trīskārša frekvences rezerve.

Loģisko elementu skaits tādam FPGA ir visai niecīgs, t.i. ja vēlaties, tur var piestiprināt daudz citu lietu, jo īpaši tāpēc, ka ir palikusi pat 51 tapa.

Ir jaunāka Cyclone 10 saime.

10. ciklona sintēzes rezultāts

Mēs izvēlamies mikroshēmu 10CL006YE144C8G. Tam ir tāds pats vārtu skaits (6272) kā Cyclone 4 versijai un tāds pats atmiņas apjoms (30 K x 9). Korpuss ir tāds pats kā QFP144, lietotāja tapu ir vēl mazāk - 89.

mikroshēma 10CL006YE144C8G
loģiskie elementi - 289 (5%)
tapas - 41 (46%)
atmiņa - 65536 biti (24%)
sliktākā gadījuma frekvence (85 C) ir 145,5 MHz.

Interesanti, ka projekts ir kļuvis kompaktāks loģisko elementu ziņā. Tas ir, ar tādu pašu loģisko jaudu, sarežģītāks projekts iederēsies ciklonā 10. Viss pārējais ir apmēram tādā pašā līmenī.

Rodas pamatots jautājums: vai ir iespējams ietaupīt naudu, uzstādot citu FPGA vai CPLD?

Izmēģināsim FPGA MAX10.

Sintēzes rezultāts MAX 10

Šeit lasītājs (ja viņš ir tēmā) var iesaukties: nē, tas tā nav! MAX saime ir CPLD, nevis FPGA, un šo jēdzienu jaukšana ir klaja neprofesionalitāte!

Tomēr, pateicoties Intel tirgotāju pūlēm (vai visi zina, ka runa ir par Intel mikroshēmām?), MAX10 saime ir pārtapusi par FPGA, lai gan tai ir iekšēja nepastāvīga konfigurācijas atmiņa, kā jebkuram CPLD.

Tātad, mēs izvēlamies mikroshēmu, piemēram, 10M02SCE144A7G (2304 LE, 101 GPIO, 12Kx9 BRAM), QFP144 pakotni.

mikroshēma 10M02SCE144A7G.
loģiskie elementi - 298 (13%)
tapas - 41 (41%)
atmiņa - 65536 biti (59%)
sliktākā gadījuma frekvence (125 C) - 153 MHz.

Redzam, ka absolūtie rādītāji praktiski palika nemainīgi, pieauga tikai kristāla pildījuma pakāpe, kas ir saprotams - 2304LE pret 6272 LE.

Vai MAX II var izmantot?

Tagad jautājums ir: vai ir iespējams izmantot kādu ļoti lētu CPLD, piemēram, MAX II? Šeit viss ir sarežģītāk. Viņiem nav BRAM atmiņas, t.i. jums būs nepieciešama arī ārēja ātra SRAM.

Lai savienotu SRAM, protams, būs nepieciešama papildu loģika. Ja mēs izmantojam 4K x 16 atmiņu, tad mums būs nepieciešami papildu 16 tapas datiem, 12 adresei un 3 vadībai (/cs, /we, /oe), kopā 31 papildu tapa.

Loģika arī palielināsies. Grūti pateikt, cik precīzi, bet sākotnēji tas neietilps CPLD uz 240 LE, bet varbūt tas ietilps 570 LE.

Mēs izvēlamies CPLD EPM570 QFP100 pakotnē. Mums vajag tikai 72 tapas, korpusā ir 76 tapas priekš GPIO, t.i. visam vajadzētu pietikt, bet jau tagad ir ļoti maz vietas paplašināšanai.

Šī risinājuma plusi: iespējams zemāka cena (pat ar papildu SRAM mikroshēmu), mīnusi: lielāka shēmas sarežģītība un plates platība.

Emisijas cena

Lūk, ko es atklāju, izmantojot efind. Mikroshēmas ir nedaudz atšķirīgas, taču cipars un burts beigās ir veiktspējas indekss un temperatūras diapazons (komerciāls). Tā kā mums ir trīskārša frekvences robeža, šie skaitļi mums nav absolūti svarīgi.

EP4CE6E22C8N — 456.55 R (Promelectronics, EKB, mazumtirdzniecība)
10CL006YE144C - 754.71 (piektais elements, Sanktpēterburga, vairumtirdzniecība)
10M02SCE144C8G - 456 R (Elitan, Ekb, vairumtirdzniecība)
EPM570F100C5N - 368 R (Hitech, Sanktpēterburga) + atmiņa (CY7C1021DV33-10ZSXI, SRAM 1MBIT 10NS 44TSOP) - 92.51 R (Rūpnieciskā elektronika, EKB, mazumtirdzniecība)

Protams, var atrast lētāk, tās ir tikai mazumtirdzniecības cenas veikalā, bet attiecība būs apmēram tāda pati.

Redzams, ka CPLD variants nekādā veidā neuzvar cenas ziņā, tajā pašā laikā tam ir daudz mīnusu. Pārējās iespējas ir aptuveni līdzvērtīgas, izņemot to, ka Cyclone 10 joprojām ir nedaudz dārgāks un dažiem cilvēkiem tas ir noliktavā. Tomēr šī ir pilnīgi jauna ģimene, līdz šim visi izplatītāji to nav atveduši.

Personīgi man vislabāk patīk opcija MAX 10. Tam ir viena priekšrocība: startēšanas laikā nav jāielādē FPGA konfigurācija. Cyclone 4 variantā būs jāielādē FPGA konfigurācija, ko var izdarīt vai nu izmantojot papildu konfigurācijas atmiņas mikroshēmu vai izmantojot mikrokontrolleri. Ir trešā iespēja: mirgot, izmantojot JTAG, un nekad neatvienojiet strāvas padevi no mikroshēmas. Es dzirdēju, ka kāds to ir izdarījis, es nezinu, vai tas ir joks vai nē, bet es noteikti to nedarīšu.

Tomēr variantam ar Cyclone 4 programmaparatūru, izmantojot mikrokontrolleri, ir priekšrocība: iespēja atjaunināt FPGA programmaparatūru, izmantojot lietotāja saskarnes: USB, Ethernet utt.

Ir iespējama vēl viena netriviāla iespēja: mikrokontrolleri vispār neinstalējiet, bet FPGA iepludiniet kādu iegulto procesoru. Bet tas nav ļoti labs risinājums, iespējams, jo. tam noteikti būs nepieciešama ārējā ROM un RAM, kā arī vismaz USB tilts. Apzināti atteikties no šī varianta, protams, nevajag, bet man šķiet grūtāk realizēt nekā ar mikrokontrolleri.

Par to, kādas funkcijas veic šī programmaparatūra, es rakstīšu nākamajā ierakstā.

FPGA IZMANTOŠANA MODERNĀS IERĪCĒS

Tupikovs Pāvels Andrejevičs

5. kursa studente, mākslas nodaļa OmSTU, Krievijas Federācija, Omska

Mūsdienās programmējamās loģiskās integrālās shēmas (FPGA) arvien vairāk tiek izmantotas dažādās modernās ierīcēs, tas ir saistīts ar faktu, ka FPGA ir ievērojamas priekšrocības salīdzinājumā ar parastajām digitālajām mikroshēmām. Šīs priekšrocības ietver:

· Uzlabota produkta veiktspēja.

· Preces cena tiek samazināta.

Samazināti izstrādājuma izmēri.

Produkta uzticamība palielinās (samazinās diskrētu mikroshēmu skaits)

Produkta elastība palielinās (FPGA vienmēr var pārprogrammēt)

FPGA arhitektūrai ir sarežģīta struktūra (1. att.)

1. attēls. FPGA iekšējā struktūra

Kā redzams 1. attēlā, FPGA galveno daļu veido programmējami loģiskie bloki un programmējami iekšējie savienojumi.

Pats FPGA programmēšanas (programmaparatūras) process sastāv no nepieciešamo savienojumu veidošanas starp ierīces ieejām un izejām.

Līdz šim pasaulē ir divi pasaules līderi FPGA ražošanā. Tās ir amerikāņu firmas Xilinx un Altera.

Katrs uzņēmums piedāvā savu CAD darbam ar FPGA. Xilinx piedāvā Xilinx programmatūras izstrādes komplektu (SDK). Altera piedāvā Max+Plus II un Quartus II, kā arī ModelSim simulācijas sistēmu.

Lai izveidotu programmaparatūras programmas, parasti tiek izmantotas aprīkojuma darbības apraksta valodas, mūsdienās visizplatītākās ir šādas valodas:

Verilog HDL.

VHDL valodu ir visgrūtāk apgūt, taču tajā pašā laikā tai ir vislielākās iespējas abstrakcijas funkcionālajā un uzvedības līmenī, tomēr tai ir mazāk iespēju abstrakcijas strukturālajā līmenī, salīdzinot ar Verilog HDL, VITAL bibliotēka bija izstrādāts, lai paplašinātu VHDL valodas iespējas (2. att.) .


2. attēls. Abstrakcijas slāņi Verilog Un VHDL

Verilog HDL valodas darbības piemērs ir Mini-DiLab statīva CYCLONE III EP3C5E1444C8N FPGA realizētā programma, kuras kopskats parādīts att. 3.


3. attēls. Tāfeles vispārējais skats Mini - DiLab

Šī programma realizē secīgu led0-led7 gaismas diožu pārslēgšanu ar izvēli pievienot “gaismas” kustību, izmantojot pogas pba un pbb, kā arī kontrolēt pārslēgšanas ātrumu, izmantojot slēdžus sw0, sw1.

//Programmas teksts

modulis projekts ( izvade vadīja, ievade clk_25mhz, ievade pba, ievade pbb,

ievade sw);

// Projekta iekšējo savienojumu galamērķis

vads s1;

vads s2;

vads s3;

// Citu ar projektu saistīto failu (apakšprogrammu) izsaukšana

Tr tr_1 (.out(s2), .set(pba), .res(pbb));

Skaitītāja skaitītājs_1 (.q(s1), .clk(clk_25mhz), .up(s2));

Mx mx_1 (.a(s3), .in(s1), .load(sw));

Dc3_8 dc3_8_1 (.out(led), .in(s3));

gala modulis// programmas beigas

Apakšprogramma tr

modulis tr(out, set, res); // Izveidojiet programmu

// I/O uzdevums

izvaderegārā;

ievade komplekts;

ievade res;

// inicializācija

sākotnējā

sākt

ārā<= 1"d0;

// Galvenās programmas kods

vienmēr @(negedge komplekts vai negedge res)

sākt

ja(~(komplekts))

ārā<= 1"d1;

cits

ārā<= 1"d0;

beigu modulis // Programmas beigas

Apakšprogrammu skaitītājs

modulis counter(con, q, clk, up); // Programmas palaišana

izvadereg con;

izvade q = con;

ievade uz augšu, clk;

// Galvenās programmas kods

vienmēr @(pozedžs clk)

sākt

ja(clk)

ja(augšup)

Con<= con - 1"d1;

cits

Con<= con + 1"d1;

gala modulis// Programmas beigas

Apakšprogramma mx (multiplekseris)

modulis mx( izvade.reg a, ievade iekšā, ievade slodze);

// Galvenās programmas kods

vienmēr @*

sākt

lietu(slodze)

2"b00: a = in;

2"b01: a = iekšā;

2"b10: a = iekšā;

2"b11: a = iekšā;

gala lieta

gala modulis // Programmas beigas

Apakšprogramma dc3_8 (multiplekseris)

modulis dc3_8(out, in); // Programmas palaišana

// I/O uzdevums

izvade.regārā;

ievades vads iekšā;

// Galvenās programmas kods

vienmēr @*

sākt

lietu(in)

3"d0: ārā = 8"b11111110;

3"d1: ārā = 8"b11111101;

3"d2: ārā = 8"b11111011;

3"d3: ārā = 8"b11110111;

3"d4: ārā = 8"b11101111;

3"d5: ārā = 8"b11011111;

3"d6: ārā = 8"b10111111;

3"d7: ārā = 8"b01111111;

gala lieta

gala modulis // Programmas beigas

Programma tika realizēta CAD Quartus II.

Pēc programmas kompilēšanas kompilators programmā neģenerēja nekādas kļūdas vai piezīmes saistībā ar programmas analīzi un sintaksi (4. att.).


4. attēls. Projekta ziņojuma logs

Kompilatora piezīmes norāda uz Quartus II licences neesamību (apmācībai tika izmantota programmas bezmaksas versija) un projekta modelēšanai nepieciešamo failu neesamību.

RTL Šī projekta struktūra ir parādīta attēlā. 5.


5. attēls. Projekta īstenošana ( RTL struktūra)

Kā parādīts attēlā. 6 šajā programmā tiek izmantota tikai neliela daļa no šīs FPGA iespējām.

6. attēls. Projektā iesaistītā FPGA daļa

Secinājumi: Programmējamās loģiskās integrālās shēmas tiek izmantotas daudzās ierīcēs. Lai iemācītos strādāt ar tiem, izglītības programmā jāievieš specialitātes, kas saistītas ar radioelektronisko iekārtu projektēšanu un būvniecību, zināšanas par aparatūras apraksta valodām (Verilog HDL un VHDL).

Bibliogrāfija:

1. Grushevicky R.I. Sistēmu projektēšana, pamatojoties uz programmu loģikas mikroshēmām / R.I. Gruševickis, A.X. Mursajevs, E.P. Drūms. Sanktpēterburga: BHV Petersburg, 2002. - 608 lpp.

2. Kolomovs D.A. Altra MAX+plus II un Quartus II datorizētās projektēšanas sistēmas. Īss apraksts un apmācība / D.A. Kolomovs, R.A. Myalk, A.A. Zobenko, A.S. Filippovs. M.: IP RadioSoft, 2002. - 126 lpp.

3. Maxfield K. FPGA dizains. Jauna cīnītāja gaita. / K. Maksfīlds. M.: Izdevniecība "Dodeka-XXI", 2007. - 408 lpp. (tulkojums no angļu valodas).

65 nanometri ir nākamais Zelenograd Angstrem-T rūpnīcas mērķis, kas izmaksās 300-350 miljonus eiro. Uzņēmums Vņeekonombank (VEB) jau ir iesniedzis pieteikumu aizdevumam ar atvieglotiem nosacījumiem ražošanas tehnoloģiju modernizācijai, šonedēļ ziņoja Vedomosti, atsaucoties uz rūpnīcas direktoru padomes priekšsēdētāju Leonīdu Reimanu. Tagad Angstrem-T gatavojas uzsākt līniju mikroshēmu ražošanai ar 90 nm topoloģiju. Maksājumi par iepriekšējo VEB aizdevumu, par kuru tas tika iegādāts, tiks uzsākti 2017. gada vidū.

Pekina sagruva Volstrītu

Galvenie ASV indeksi Jaunā gada pirmās dienas atzīmēja ar rekordlielu kritumu, miljardieris Džordžs Soross jau brīdinājis, ka pasaule gaida 2008. gada krīzes atkārtošanos.

Pirmais Krievijas plaša patēriņa procesors Baikal-T1 par cenu 60 USD tiek laists masveida ražošanā

Uzņēmums Baikal Electronics 2016. gada sākumā sola rūpnieciskajā ražošanā laist Krievijas Baikal-T1 procesoru aptuveni 60 dolāru vērtībā. Ierīces būs pieprasītas, ja šo pieprasījumu radīs valsts, norāda tirgus dalībnieki.

MTS un Ericsson kopīgi izstrādās un ieviesīs 5G Krievijā

PJSC "Mobile TeleSystems" un Ericsson parakstīja līgumus par sadarbību 5G tehnoloģijas attīstībā un ieviešanā Krievijā. Pilotprojektos, tostarp 2018. gada Pasaules kausa izcīņas laikā, MTS plāno pārbaudīt Zviedrijas pārdevēja attīstību. Nākamā gada sākumā operators uzsāks dialogu ar Telekomunikāciju un masu komunikāciju ministriju par piektās paaudzes mobilo sakaru tehnisko prasību veidošanu.

Sergejs Čemezovs: Rostec jau ir viena no desmit lielākajām inženierzinātņu korporācijām pasaulē

Rostec vadītājs Sergejs Čemezovs intervijā RBC atbildēja uz dedzīgiem jautājumiem: par Platon sistēmu, AVTOVAZ problēmām un perspektīvām, Valsts korporācijas interesēm farmācijas biznesā, runāja par starptautisko sadarbību sankciju spiediena apstākļos, importu. aizstāšana, reorganizācija, attīstības stratēģijas un jaunas iespējas grūtos laikos.

Rostec ir "aizsargāts" un iejaucas Samsung un General Electric laurus

Rostec padome apstiprināja "Attīstības stratēģiju līdz 2025. gadam". Galvenie uzdevumi ir paaugstināt augsto tehnoloģiju civilo produktu īpatsvaru un panākt General Electric un Samsung galvenajos finanšu rādītājos.

Rakstā mēģināts noteikt programmējamo loģisko integrālo shēmu (FPGA) izstrādāto digitālo moduļu pavaddokumentācijas sastāvu. Izstrādātājiem šī pavaddokumentācija ir jāiesniedz patērētājam/klientam, lai izstrādātā digitālā moduļa sekmīgai turpmākai izmantošanai savos projektos digitālo ierīču projektēšanas stadijā uz FPGA.

Ievads

Tātad, kāda projekta dokumentācija būtu jāprasa izstrādātājam, ja uzņēmums vai pasūtītājs uzņēmums, vai kāds cits izstrādātājs turpmāk savos projektos izmantos “ārzemju” izstrādātu ierīci? Šis raksts var kalpot kā "krāpšanās lapa", lai vispirms pareizi izdotu FPGA digitālās ierīces izstrādes darba uzdevumu un pēc tam lūgtu izstrādātājam jau izstrādātas digitālās ierīces projekta dokumentāciju. Pamatojoties uz iepriekšējo pieredzi ar projektēšanas dokumentāciju, uzņēmums vai firma parasti izmanto šādus standartus un noteikumus:

  • GOST 2.102-68 ESKD. Projektēšanas dokumentu veidi un pilnība.
  • GOST 15.101-98. Sistēma produktu izstrādei un ražošanai. Pētnieciskā darba veikšanas kārtība.
  • GOST R 15.201-20-00. Sistēma produktu izstrādei un ražošanai. Produkti rūpnieciskiem un tehniskiem nolūkiem. Produkcijas izstrādes un ražošanas kārtība.

Parasti tie bija programmaparatūras fails un programma (digitālās ierīces apraksts VHDL / Verilog vai digitālo shēmu komplekts, kas izstrādāts shēmas redaktorā, izmantojot digitālās loģikas bibliotēkas elementus, piemēram, flip-flops, reģistrus, skaitītājus, dekoderi utt.) CD vai DVD un programmēšanas instrukcijas. Un viss.

Autors, piemēram, saskārās ar šādu problēmu. Viens no darbiniekiem izstrādāja sarežģītu vairāku moduļu digitālo ierīci. Es aprakstīju visus moduļus VHDL un apskatīju šo moduļu darbības ciklogrammas un digitālo ierīci kopumā uz laba un dārga osciloskopa. Viņš nezināja par Test Bench failiem un par iespēju veikt simulācijas vai nezināja, kā tos uzrakstīt, starp citu, nebija arī komentāru par projektu un moduļu aprakstiem. Situācija var būt vēl sliktāka, ja moduļus attēlo ciparu shēmas, kas izstrādātas shematiskā redaktorā, izmantojot bibliotēkas elementus. Šeit ir viens no galvenajiem trūkumiem: ja neskaita pašu izstrādātāju, maz ticams, ka kāds cits sapratīs šo digitālo ierīci, it īpaši, ja projekts ir vairāku moduļu un katra moduļa apraksts ir vairāk nekā 100 rindiņas vai vairāk. nekā viens monitora ekrāns. Tātad, ja kāds cits izstrādātājs vēlas ieviest šādu jau izstrādātu digitālo ierīci FPGA jaunā izstrādē vai projektā, viņam atkal ir jāvelta laiks šīs digitālās ierīces izstrādei.

FPGA dizaina problēmas vēsture

Pašlaik FPGA tirgus ir viens no dinamiskāk augošajiem. FPGA tiek izmantoti daudzās tehnoloģiju nozarēs. Šobrīd nav viennozīmīgas metodikas, kas apmierina visus aparatūras izstrādātājus FPGA konfigurācijas iegūšanai no ierīces funkcionālā modeļa sistēmas līmenī. Populārākā pieeja šīs problēmas risināšanai ir IP kodola tehnoloģijas (Intellectual Property Cores) izmantošana. IP kodoli ir gatavi komponenti, kas ļauj tos viegli iekļaut savā projektā, lai izveidotu sarežģītāku sistēmu. Šai pieejai ir viens būtisks trūkums - IP kodolu piesaiste elementārajai bāzei. Katrs IP kodols ir optimizēts noteiktai konkrēta ražotāja mikroshēmu sērijai, kas būtiski pasliktina iespēju pārsūtīt jau izveidotas ierīces no viena elementa bāzes uz otru. Komerciālo CAD arhitektūru slēgtais raksturs neļauj sistēmas līmenī pievienot savus funkcionālos ierīču modeļus, lai uz to pamata iegūtu ierīču modeļus reģistra pārsūtīšanas līmenī (RTL). Digitālā moduļa izstrāde tiek veikta digitālās shēmas veidā, kas zīmēta ķēžu redaktorā, izmantojot ražotāja iebūvēto pamata shēmas elementu CAD bibliotēku, piemēram, flip-flops, dekoderus, skaitītājus, summētājus utt.

Vēl viena populāra pieeja, kas ļauj pāriet no funkcionālā modeļa sistēmas līmenī uz ierīces modeli reģistru pārsūtīšanas līmenī, ir sistēmas līmeņa projektēšanas valodu (SLDL) izmantošana. Šādas valodas ietver SystemC, Handel-C, VHDL, Verilog, System Verilog. Galvenā priekšrocība ir neatkarība no aparatūras bāzes, kurā ierīce tiks ieviesta.

Tādējādi, no vienas puses, izmantojot IP-core tehnoloģiju, aparatūras izstrādātājs saņem kvalitatīvu risinājumu, taču stingri piesaistīts aparatūras bāzei, kurā ierīce ir ieviesta. No otras puses, izmantojot aparatūras apraksta valodas sistēmas līmenī, ierīces ieviešana ir aparatūras neatkarīga. No iepriekš minētā izriet, ka šobrīd ir svarīgi izmantot kopīgu digitālo moduļu izmantošanu aparatūras apraksta valodā un ražotāja (Xilinx, Altera, Actel u.c.) un trešo pušu izstrādātāju IP kodolos, lai paātrinātu. digitālo moduļu projektēšanas process. Izmantojot trešo pušu ražotāju digitālos moduļus, dažkārt pavaddokumentācijā trūkst informācijas.

Informācijas sniegšana par izstrādāto digitālo moduli FPGA

Atkarībā no metodoloģijas FPGA konfigurācijas iegūšanai atbilstoši ierīces funkcionālajam modelim sistēmas līmenī, izstrādātājs var atšķirt šādus FPGA digitālo moduļu veidus:

  • Programmatūra - izstrādāts digitālais modulis, kas patērētājam tiek nosūtīts apraksta veidā aparatūras apraksta valodā (VHDL, Verilog) vai / un izstrādāts shematiskajā redaktorā turpmākai lietošanai programmās loģisko shēmu automatizētai sintēzei un optimizēts funkcionālie parametri.
  • Programmaparatūra - digitālais modulis, ko izstrādājis trešās puses izstrādātāju uzņēmums, ko sauc par IP kodolu, kas tiek pārraidīts patērētājam loģiskās shēmas (tīkla saraksta) veidā, pamatojoties uz FPGA ražotāja loģisko elementu bibliotēku un optimizēts funkcionālā ziņā. un elektriskie parametri.

Dokumentācijas izstrādes stadijā, pamatojoties uz personīgo pieredzi, papildus parastajai projekta dokumentācijai un specifikācijām, kas veikta saskaņā ar GOST 15.101, GOST 15.201, GOST 2.102, GOST 2.114, ir jāizsniedz dokumentācija visu veidu modeļiem. (sistēma, loģika, shēmas), kas izveidotas digitālo ierīču projektēšanas posmos uz FPGA.

Citiem vārdiem sakot, FPGA digitālās ierīces dizaina dokumentācijas komplektā papildus programmaparatūras failam, programmēšanas instrukcijām un CD / DVD ierakstītajam projektam jāiekļauj arī pavaddokumentācija.

Tabula. Apliecinošās dokumentācijas sadaļu saraksts

Sadaļas nosaukums Skatīt
Programmatūra Programmaparatūra
Galvenā informācija
Mērķis un darbības joma PAR R
Specifikācijas PAR PAR
Atiestatīšanas signālu apraksts PAR PAR
Sinhronizācijas signālu apraksts PAR PAR
Interfeisu apraksts PAR R
Laika diagrammas R PAR
Kontroles reģistru apraksts PAR PAR
Strukturālā (funkcionālā) diagramma R R
Programmēšanas rokasgrāmata PAR PAR
FPGA modelis vai ģimene,
uzņēmuma ražotājs
R PAR
Digitālā moduļa prezentācija
loģikas projektēšanai uz FPGA
RTL modelis PAR
Loģiskais modelis PAR
Dizaina ierobežojumi PAR PAR

Šeit ir saraksts ar sadaļām (tabulu), kas jāiekļauj FPGA digitālā moduļa projekta pavaddokumentācijā. Katrai sadaļai tiek parādītas pazīmes, kas liecina, ka sadaļa ir jāiekļauj dokumentu komplektā:

  • "O" - obligāti piegādātā sadaļa;
  • "R" - sadaļa ieteicama piegādei.

Apliecinošās dokumentācijas iesniegšanai ieteicamie failu formāti ir MS Word, PDF (labākais formāts), HTML. Apraksta faili aparatūras apraksta valodā (VHDL, Verilog) un/vai tie, kas izstrādāti shematiskajā redaktorā, tiek nodrošināti atbilstoši CAD projektēšanas programmatūras prasībām. Izņēmums var būt shēmas redaktorā izstrādāto digitālo shēmu failu papildu nodrošināšana grafiskā formātā (JPEG, BMP).

Galvenā informācija

Šajā sadaļā ir sniegta vispārīga informācija par izstrādāto digitālo moduli apraksta veidā:

  • funkcionālā diagramma un tās bloki/daļas;
  • signālu atiestatīšana, sinhronizācija;
  • lietotās saskarnes;
  • kontroles reģistri;
  • laika diagramma;
  • programmēšana.

Mērķis un darbības joma

Tiek noteikts digitālā moduļa mērķis, tā pielietojuma apjoms.

Specifikācijas

Ir sniegts tā galveno tehnisko parametru apraksts, piemēram, veiktspēja, elektroenerģijas patēriņš konkrētai FPGA mikroshēmai, aizņemto vārtu skaits, izmantotās FPGA mikroshēmas veids. Papildus ir norādīts digitālā CAD moduļa izstrādē izmantotais FPGA ražotājs un modelēšanai un verifikācijai izmantotā programmatūra. Visām izmantotajām programmām ir norādīta versija un instalētie atjauninājumi. Tiek sniegts digitālā moduļa grafiskais attēlojums "melnās kastes" formā ar ārējo ieeju / izeju apzīmējumu un sniegts īss to mērķa apraksts.

Atiestatīšanas signālu apraksts

Sīkāka informācija par atiestatīšanas signāliem ir sniegta:

  • Ārējo un iekšējo atiestatīšanas signālu saraksts.
  • Atiestatīšanas signālu laika parametri un laika diagrammas.
  • Shēmas iekšējo atiestatīšanas signālu ģenerēšanai, ja tādas ir, ir iekļautas digitālajā modulī.
  • Attiecības ar citiem signāliem (īpaši sinhronizācijas signāliem).

Sinhronizācijas signālu apraksts

Sīkāka informācija par sinhronizācijas signāliem ir sniegta:

  • ārējās sinhronizācijas signālu apraksts;
  • sinhronizācijas signālu laika parametri;
  • iekšējo sinhronizācijas signālu apraksts un to veidošanas shēmas;
  • laika attiecības starp sinhronizācijas signāliem no dažādiem avotiem;

Interfeisu apraksts

Tiek dotas visu to saskarņu izmantošanas iezīmes, kas ir daļa no izstrādātā digitālā moduļa, vēlams vienotas mijiedarbības organizēšanai ar citiem sistēmas mezgliem mikroshēmā. Papildus tiek nodrošināta interneta saite uz pilnu standarta interfeisa aprakstu vai pašas saskarnes apraksts. Šobrīd saskarnes ar AMBA, PLB, Wishbone kopni tiek pieņemtas kā vienotas saskarnes digitālajiem moduļiem.

Laika diagrammas

Tiek nodrošināta nepieciešamā informācija datu apmaiņas organizēšanai caur interfeisiem un citām digitālā moduļa ieejām/izejām: laika diagrammu grafiskais attēlojums, datu pārraides protokolu apraksts, prasības digitālajam modulim pielietotajiem ārējiem signāliem (ilgums, frekvence u.c.) un citu informāciju.

Kontroles reģistru apraksts

Dots visu digitālā moduļa vadības reģistru apraksts. Tipisks vadības reģistra apraksts satur reģistra nosaukumu, reģistra adresi iekšējā adrešu telpā, sākotnējo vērtību pēc atiestatīšanas signāla noņemšanas, piekļuves veidu (lasīt/rakstīt), iekšējās informācijas aprakstu. lauki.

Strukturālā (funkcionālā) diagramma

Tiek sniegts digitālā moduļa galveno iekšējo mezglu / bloku savienojumu iekšējās struktūras attēls, kā arī to īss tekstuālais apraksts. Papildus ir sniegts digitālā moduļa galveno iekšējo bloku apraksts. Šī dokumenta mērķis ir sniegt patērētājam informāciju, kas nepieciešama, lai izprastu digitālā moduļa darbības principus.

Aprakstīto bloku skaitu un apraksta apjomu nosaka digitālā moduļa izstrādātājs. Vēlams, lai minimālais aprakstīto moduļu skaits atbilstu digitālā moduļa strukturālās (funkcionālās) diagrammas elementu skaitam.

Tipisks iekštelpu vienības apraksts satur:

  • bloka piešķiršana;
  • strukturālā (funkcionālā) blokshēma (ja nepieciešams);
  • darbības režīmi un algoritmi;
  • darba laika diagrammas;
  • struktūrvienību vadības organizēšana;
  • komunikācijas organizēšana ar citām vienībām;
  • jebkura cita informācija.

Programmēšanas rokasgrāmata

Nodrošina visu nepieciešamo informāciju par programmēšanas procesu, izmantojot digitālā moduļa ražotāja CAD FPGA, nepieciešamos programmatūras izstrādes un atkļūdošanas rīkus un programmatūras bibliotēkas.

FPGA modelis vai saime, ražotājs

Digitālā moduļa programmaparatūrai ir norādīts FPGA ražotājs, FPGA modelis vai saime un tā ātruma raksturlielumi. Programmatūras digitālajam modulim tiek sniegta informācija par aizņemto resursu apjomu, prasībām pielietotajam FPGA.

Digitālā moduļa attēlojums loģikas projektēšanai

Rakstā tika apspriestas grūtības, izmantojot VHDL "svešu" projektu - piemērotu vadlīniju trūkums programmu nosaukšanai un rakstīšanai. Tika sniegti arī vispārīgi norādījumi par nosaukumiem, labām manierēm programmu rakstīšanā un sintēzes vadlīnijas. Šie jautājumi pēc iespējas sīkāk jāapspriež ar izstrādātāju, ja nākotnē plānojat patstāvīgi turpināt izstrādi vai jaunināšanu, pirms viņš sāk izstrādāt FPGA digitālā moduļa RTL modeli. Tas jo īpaši attiecas uz programmatūras digitālā moduļa veidu FPGA. Tajā pašā raksta daļā ir aprakstītas vispārīgās prasības visam izstrādātā digitālā moduļa projektam uz FPGA. Šeit ir jautājumi, kuriem jāpievērš uzmanība, sastādot FPGA digitālā moduļa izstrādes darba uzdevumu, un tas jo īpaši attiecas uz darba rezultātu pārnešanu.

RTL modelis

Digitālais modulis, kas aprakstīts Verilog vai VHDL valodas sintezētā apakškopā vai/un izstrādāts shematiskajā redaktorā, ir paredzēts lietošanai FPGA loģiskās sintēzes stadijā. Piegādāts Programmatūrai samontēta digitālā moduļa projekta veidā FPGA ražotāja CAD sistēmā. Programmaparatūras digitālajam modulim RTL modelis tiek nodrošināts saskaņā ar atsevišķu līgumu.

Papildus RTL modeļa failiem tiek pārsūtīti:

  • Norādījumi modeļa lietošanai.
  • Modelī iekļauto atmiņas bloku apraksts, ieskaitot atmiņas veidu, lielumu, atmiņas bloku skaitu, atmiņas bloka hierarhisko nosaukumu.
  • Aprakstīts, kā izveidot iepriekš iebūvētus kodolus, to izveidei izmantojot programmas (piemēram, CoreGenerator for Xilinx ISE). Ja aprakstu nav, var būt ierobežojumi pārprojektēšanai un pielietojumam tehnoloģiju un ražotāja atkarības dēļ.
  • Ja tiek izmantots ražotāja mikroprocesors (piemēram, no Altera - Nios procesora; no Xilinx - Microblaze, PowerPC mikroprocesoriem), ir nepieciešams procesora kodola un tā perifērijas konfigurēšanas procesa apraksts.
  • Pārbaužu komplekts (Test Bench faili), lai pārbaudītu un simulētu digitālo moduli, kas rakstīts Verilog un/un VHDL vai/un System Verilog.
  • Jebkura cita papildu informācija.

Loģiskais modelis

Modelis ir tīkla saraksts, kas aprakstīts, izmantojot Verilog vai VHDL valodas, pamatojoties uz FPGA ražotāja bibliotēku, un tiek piegādāts digitālā moduļa programmaparatūrai.

Papildus loģiskā modeļa failiem tiek pārsūtīti:

  • Norādījumi par šī modeļa lietošanu.
  • Pārbaužu komplekts (Test Bench faili), lai pārbaudītu un simulētu digitālo moduli, kas rakstīts Verilog un/un VHDL vai/un System Verilog.
  • Rokasgrāmata darbam ar testu komplektu digitālā moduļa modelēšanai un pārbaudei.
  • Jebkura cita papildu informācija.

Dizaina ierobežojumi

Dizaina ierobežojumi tiek nodrošināti kā fails, kas apraksta ierobežojumu kopu, kas uzlikts digitālajam modulim, ja tas ir iekļauts sistēmas mikroshēmas loģikas modelī. Šajā komplektā ietilpst ierobežojumi sinhronizācijas signāliem (pulksteņa ierobežojumi), laika ierobežojumi (laika ierobežojumi), ierobežojumi digitālā moduļa mijiedarbībai ar citiem moduļiem un digitālā moduļa darbības nosacījumi. Priekšroka tiek dota dizaina ierobežojumiem (SDC) vai FPGA ražotāja CAD formātam.

Sinhronizācijas signālu ierobežojumu saraksta piemērs:

  • laika diagramma (Pulksteņa viļņu forma);
  • pulksteņa frekvences nestabilitāte (Trīce);
  • pulksteņa fāzes maiņa;
  • pārslēgšanas laiku ilgums (Pārejas laiki);
  • atvasināto pulksteņa signālu laika diagrammas (ģenerētas pulksteņa viļņu formas);
  • jebkura cita papildu informācija.

Sinhronizācijas signālu ierobežojumu kopums ir obligāts digitālo moduļu programmatūrai un programmaparatūrai.

Laika ierobežojumu saraksta paraugs:

  • signālu rašanās laiks ieejās (Ielošanās laiki ieejās);
  • signālu parādīšanās laiks izejās (Nepieciešamie laiki izejās);
  • daudzriteņu celiņi;
  • viltus ceļi (False paths);
  • datu signālu pārejas laiku ilgums;
  • jebkura cita papildu informācija.

Secinājums

Dotais pavaddokumentācijas sastāvs izstrādātajiem FPGA digitālajiem moduļiem tiek nodrošināts pēc vienošanās starp patērētāju un izstrādātāju. Visbiežāk izstrādātājs nodrošina tikai digitālo moduli, kas aprakstīts VHDL, Verilog, System Verilog un / vai izstrādāts shematiskā redaktorā. Attiecībā uz papildu dokumentāciju izstrādātāja atbilde visbiežāk ir šāda: “Digitālais modulis darbojas, tāpēc ņem un izmanto. Nav nekā sarežģīta, lai aprakstītu ķēdi aparatūras valodā: jūs pats to izdomāsit.

Pēc autora domām, jūs varat saprast jebko, viss ir atkarīgs no vēlmes un pavadītā laika, un laiks, kas pavadīts, lai saprastu "ārzemju" projektu uz jau izstrādāta digitālā moduļa, ir tieši proporcionāls pieredzei, aprakstot aprīkojumu VHDL, Verilog un zināšanu digitālās un mikroprocesoru shēmas. No tā var izvairīties, ja sākotnēji vienojaties ar izstrādātāju par pavaddokumentācijas sastāvu, tad digitālā moduļa izmantošana jūsu projektā kļūst vienkāršāka, un tā ieviešana būs ātrāka.

Rezumējot, autore vēlas atzīmēt, ka, formulējot uzdevumu digitālās ierīces izstrādei uz FPGA, ir jāievēro rakstā sniegtie ieteikumi, tad nebūs problēmu, atkārtoti izmantojot vai modernizējot iepriekš izstrādātu digitālo ierīci. ierīci.

Literatūra

  1. Denisovs A. Vairāki padomi digitālo ierīču projektēšanai VHDL FPGA // Komponenti un tehnoloģijas. 2009. Nr.12.
  2. GOST 2.102-68 ESKD. Projektēšanas dokumentu veidi un pilnība.
  3. GOST 2.114-95 ESKD. Specifikācijas.
  4. GOST 15.101-98. Sistēma produktu izstrādei un ražošanai. Zinātniski pētnieciskā darba veikšanas kārtība.
  5. GOST R 15.201-20-00. Sistēma produktu izstrādei un ražošanai. Produkti rūpnieciskiem un tehniskiem nolūkiem. Produkcijas izstrādes un ražošanas kārtība.
pastāsti draugiem