Mga kategorya: Mga circuit ng Microcontroller
Bilang ng mga tanawin: 21445
Mga puna sa artikulo: 0

Ano ang FPGA isang simpleng wika para sa mga nagsisimula

 

Ano ang nauugnay sa digital electronics? Una sa lahat, may mga lohikal na elemento AT, O, HINDI. Karagdagan, ang mga registro ng shift, decoder, multiplexer, atbp, ay naaalala. Gayunpaman, dahil ang pagiging kumplikado ng mga elektronikong aparato at ang takbo patungo sa pagtaas ng miniaturization, ang paglikha ng mga aparato batay sa integrated circuit (ICs) mula sa mga sangkap sa itaas ay naging mahirap, ang mga pasadyang mga IC ng kinakailangang topology at circuitry ay napatunayang kapaki-pakinabang lamang kapag ang aparato ay na-replicate sa maraming mga numero, sa ibang mga kaso ito ay hindi makatuwiran na mahal.

Ang paraan sa labas ng sitwasyong ito ay ang pagbuo ng mga maaaring ma-program na integrated logic circuit (na pinaikling bilang FPGA, dayuhang pagdadaglat bilang programmable logic device, PLD). Ano ito at saan ito ginamit ay sasabihin namin sa artikulong ito.

Ano ang FPGA isang simpleng wika para sa mga nagsisimula

Mga pagkakaiba-iba mula sa mga microcontroller

Sa salitang "programmable", karamihan sa mga nagsisimula ay maiugnay sa mga microcontroller. Sa kabila ng katotohanan na na-program din sila, ang mga FPGA ay isang ganap na magkakaibang aparato.

Para sa mga developer sa mga microcontroller, ang isang nakapirming hanay ng mga solusyon at paraan ay magagamit na likas sa isang partikular na chip, hindi ito gagana sa anumang paraan upang umatras mula sa arkitektura. Bibigyan ka ng isang hanay ng mga utos na kung saan nagsasagawa ka ng mga operasyon ng pakikipag-ugnayan sa kapaligiran, sa pamamagitan ng pagbabasa ng data mula sa mga digital at analog input at pagpapadala ng mga signal sa mga actuators gamit ang mga output.

Bilang karagdagan, maaari kang magsagawa ng mga kalkulasyon, makatipid ng data sa mga rehistro o mga ROM, pati na rin gumana gamit ang data na na-fladed sa memorya ng microcontroller. Sa ito, sa kakanyahan, ay ang layunin at mga tampok ng pagtatrabaho sa mga microcontroller.

Programmable 769; log 769; integer 769; flax 769; ma (FPGA, English programmable logic device, PLD)

Ang mga Programmable logic integrated circuit (FPGAs) ay naiiba sa na kapag nagprograma ka ng isang aparato, ikaw mismo ang lumikha ng isang arkitektura mula sa mga pangunahing elemento ng logic. Sa gayon, nakakakuha ka ng mataas na bilis at kakayahang umangkop ng chip. Ginagawa nitong posible, nang hindi binabago ang isang chip, upang makagawa ng isang bilang ng mga proyekto.

Karaniwan, ang panloob na aparato ng FPGA ay maaaring nahahati sa tatlong pangunahing mga grupo:

1. Isang hanay ng mga lohikal na elemento (macrocells, lohikal na mga bloke).

2. Mga bloke ng input / output (IO).

3. Mga linya ng komunikasyon sa pagitan nila at ng aparato na kumokontrol sa mga koneksyon na ito.

Gayunpaman, ang naturang istruktura ay napaka-pangkalahatan, isasaalang-alang namin ang isyung ito nang mas detalyado sa ibaba.

Sa pamamagitan ng pagprograma, ikinonekta mo ang mga elemento sa katulad na paraan mo, pag-iipon ng isang aparato mula sa mga indibidwal na elemento at pagkonekta sa kanilang mga input at output sa mga conductor.

Tandaan:

Ang pangunahing pagkakaiba sa pagitan ng FPGA at mga microcontroller ay sa isang microcontroller hindi mo mababago ang mga panloob na koneksyon sa pagitan ng pinakasimpleng mga elemento, at ang pagprograma at pagtatrabaho sa kanila ay batay sa mga pag-rehistro ng mga koneksyon.

Ang pagpili ng mga microcontroller ay batay sa maraming pamantayan, tulad ng:

  • Bilis ng bilis at orasan;

  • Ang dami ng ROM at RAM;

  • Ang bilang ng mga input at output.

Iba pang mga tampok na tampok at peripheral, tulad ng suporta para sa mga linya ng komunikasyon at mga protocol (I2C, one-wire, PWM signal, atbp.).

Kapag pumipili ng isang FPGA, ang pangunahing kriterya ay ang bilang ng mga maaaring ma-program na mga bloke - dapat silang sapat upang maipatupad ang gawain.

Depende sa tiyak na FPGA, ang bilang ng mga bloke ay maaaring magkakaiba-iba, at nagbabago rin ang gastos.

Ang microcontroller ay gumaganap ng sunud-sunod na lahat ng mga operasyon na inireseta sa programa nito, habang ang mga bloke ng FPGA ay nagsasagawa ng gawain nang magkatulad at nang nakapag-iisa sa bawat isa, samakatuwid, ang paghahambing ng mga aparatong ito sa pamamagitan ng dalas ng orasan ay hindi praktikal. Ang kanilang prinsipyo ng pagpapatakbo ay ibang-iba.

Mga Uri ng FPGA

Mga species

Ang may kaugnayan sa kasalukuyan ay dalawang pangunahing uri ng FPGAs:


1. CPLD (Complex Programmable Logic Device - Programmable Logic Integrated Circuit, sa katunayan, ito ay FPGA sa klasikal na kahulugan nito). Karaniwan itong may built-in na hindi madaling pabagu-bago ng memorya kung saan ang firmware ay nai-load.

Ang panloob na istraktura ay itinayo sa isang matrix ng macrocells o lohikal na mga bloke, at ang bilang ng mga elemento sa kanila ay namamalagi sa hanay ng daan-daang at libu-libong mga piraso. Dahil sa kanilang kamag-anak na simple, mas mura sila kaysa sa susunod na uri ng maaaring ma-program na lohika. Ang lahat ng ito ay humahantong sa ang katunayan na ang CPLD ay pangunahing ginagamit sa mga circuit kung saan ang mataas na bilis at isang malaking bilang ng mga output ay kinakailangan, habang nagsasagawa ng mga simpleng gawain.


2. FPGA (Field-Programmable Gate Array - Patlang na Programmable Gate Array, subalit madalas itong tinutukoy bilang FPGA) - Ang mas binuo at kumplikadong mga aparato kumpara sa CPLD, ay itinayo sa mga lohikal na bloke na may kakayahang umangkop na paglipat at naglalaman ng isang mas malaking bilang ng mga elemento (sampu o daan-daang libong mga piraso).

Ang firmware ay karaniwang naka-imbak sa panlabas na hindi pabagu-bago ng memorya. Bilang karagdagan sa pinakasimpleng mga elemento ng logic, ang mga FPGA ay maaaring maglaman ng mga yari na bloke para sa pagsasagawa ng anumang mga operasyon, halimbawa, mga bloke sa pagproseso ng signal ng DSP. Pinapayagan ka nito na magpatupad ng isang processor, aparato sa pagproseso ng signal at iba pang mga kumplikadong aparato.


Kawili-wili:

Bagaman sa katunayan ang pagkakaroon ng di-pabagu-bago na memorya ay hindi gumagawa ng programmable logic CPLD. Ito ay bahagyang nanligaw. Ang pangunahing pagkakaiba sa pagitan ng CPLD at FPGA ay ang panloob na istraktura.

Ang pagkakaiba sa pagitan ng CPLD at FPGA ay ang panloob na istraktura

Ang panloob na aparato ng CPLD ay ipinapakita nang mas detalyado sa figure sa ibaba.

Panloob na aparato ng CPLD

At ang tinatayang pamamaraan ng macrocell nito ay ganito:

Halimbawang layout ng macrocell ng CPLD

Ang macrocell ay binubuo ng mga programmable multiplier, nag-trigger (isa o higit pa) at bumubuo ng isang pangkat ng mga output ng mga signal sa FB sa ilang mga bersyon.

Nasa ibaba ang isa pang halimbawa - isang block diagram ng pamilya ng CPLD chip ng MAX II mula sa Altera.

Altera MAX II CPLD Flowchart

At ang istrukturang plano ng mga chips ng parehong pamilya.

Altera MAX II CPLD block diagram

Ang mga intermediate gulong ay itinalaga sa macrocells gamit ang isang node tulad ng isang distributor sa Ingles. ito ay parang isang Logic Allocator, na ipinapakita sa diagram sa ibaba, ipinapakita rin nito ang matrix ng paglipat (Global Routing Pool), at sa output macrocells (macrocells) ay may dalawang feedbacks.

Distributor at paglipat ng matrix

Ang mga panlabas na output ng microcircuit ay konektado sa mga output ng macrocells sa pamamagitan ng isa pang block (matrix) - ORP (Output Routing Pool), tandaan na sa pamamagitan nito ang lohika ng INPUT ay konektado sa GRP, tulad ng ipinapakita sa paglalarawan sa ibaba.

Tandaan:

Ang ilang mga CPLD ay tinatawag na direktang pag-input (Direct Input) - konektado sila sa mga input ng mga cell nang direkta, na binabawasan ang mga pagkaantala.

Ang istruktura ng FPGA ay may form:

Istruktura ng FPGA
  • L - lohikal na mai-configure na bloke;

  • S (bloke ng pagpapalit) - isang bloke ng pagpapalit, nakakatanggap ito ng isang tiyak na bilang ng mga piraso bawat paglipat, nagbalik, ayon sa isang tiyak na algorithm, at mga output ng isang iba't ibang bilang ng mga bit sa output. Sa madaling salita, isang decoder, isang encryptor, at isang switch.

  • C (koneksyon block) - block ng koneksyon.

S-block diagram:

 

Diagram ng S-block



Programming


HDL (Wika ng paglalarawan ng Hardware) - ito ang wika kung saan nai-program ang mga FPGA. Ang sikat at maraming nalalaman ay Verilog HDL at VHDL. Ang iba pang mga wika ay umiiral, tulad ng mga tiyak sa mga tagagawa, tulad ng AHDL para sa mga produktong ALTERA.

Ang graphic na programa ay magagamit sa mga developer na nagtatrabaho sa FPGAs. Iyon ay, maaari mo lamang gumuhit ng mga logic circuit o pagsamahin ang code sa mga graphics. Ang huli ay tinatawag na paraan ng pag-unlad ng modular, kung ang mga tukoy na module ay inireseta, at ang nangungunang module, kung saan pinagsama ang lahat, ay na-program na graphic.


Mga halimbawa ng mga tanyag na tagagawa at serye

Sa panahon ng pagsulat, ang pinakatanyag ay ang mga produkto ng dalawang tagagawa.

  • Altera (itinatag noong 1983);

  • Xilinx (Itinatag noong 1984).

Altera

Altera ay may maraming mga pangunahing serye ng mga maaaring ma-program na lohika:

  • MAX, MAX II, MAX IIZ;

  • 7000S;

  • 3000A;

  • MAX V;

  • Bagyo

  • Arria;

  • Stratix

Isaalang-alang natin ang bawat isa sa kanila nang mas detalyado. Sa mga talahanayan sa ibaba makikita mo ang pangkalahatang impormasyon tungkol sa mga chips ng pamilya.

Mga katangian ng pangunahing serye ng mga maaaring ma-program na lohika
Mga katangian ng pangunahing serye ng mga maaaring ma-program na lohika

Altera 3 CPLD CPLD:

  • Ang MAX ay isang CPLD para magamit sa mga mobile device, ang mga hallmarks ay medyo mababa ang pagkonsumo ng kuryente at pagwawalay ng init. Depende sa pagiging kumplikado at mga taon ng paglaya, ang mga sumusunod na pagbabago ay nakikilala:

  • Ang 7000S ay lipas na sa kasalukuyan, ito ay inilabas noong 1995.

  • 3000A - pinakawalan noong 2002, ay gawa gamit ang 300nm na teknolohiya. Mayroong isang maliit na bilang ng mga macrocells (32-512)

  • Ang MAX II na inilabas noong 2004, ay ginawa gamit ang teknolohiya ng 100nm, ay binubuo ng isang mas malaking bilang ng mga yunit (240-2210) na nagpapatakbo sa mga frequency hanggang sa 304 MHz. Ang produkto ay ginawa sa mga kaso ng uri ng TQFP 0.5 mill na may 100 o higit pang mga binti.

  • MAX IIZ - 2007, ang pangunahing tampok ay nabawasan ang pagkonsumo ng kuryente - ito ay isang positibong punto, gayunpaman, ang mga dalas ay nabawasan sa 152 MHz. Ang mga microcircuits na ito ay pinalakas mula sa 1.8 V.

  • MAX V - 2010 taon. Ginawa ito ayon sa teknolohiyang 180nm, maaari itong maglaman mula sa 40 hanggang 2210 na mga bloke at gumana sa mga frequency hanggang sa 152MHz o sa 304MHz - depende ito sa bilang ng mga bloke.

Altera 3 CPLD CPLD

FPGA:

  • Ang bagyo ay isang badyet na FPGA type chip. Mayroong limang henerasyon na minarkahan ng mga numero ng Greek (mula sa I hanggang V, ayon sa pagkakabanggit). Ang unang henerasyon ay inilunsad noong 2002, na ginawa gamit ang teknolohiyang 180nm, at ang ikalimang henerasyon ay pinakawalan noong 2011 at ginawa gamit ang 28nm na teknolohiya. Kapansin-pansin na ang lahat ng henerasyon ay mananatiling may kaugnayan.

  • Arria - tumutukoy din sa mid-range FPGA.

  • Stratix - Napakahusay na FPGA.

Nasa ibaba ang Mga Tables na Logic Pivot na Programa ng Altera FPGA.

Mga Tampok ng FPGA
Mga Tampok ng FPGA
Mga Tampok ng FPGA

At ang buong talahanayan sa link:

Ang tagagawa Xilinx CPLD ay ipinakita sa serye:

  • XC9500XL ng 36-288 macrocells. Nagpapatakbo sila sa mga frequency hanggang sa 178 MHz, at mga modelo sa 288 macrocells sa 208 MHz. Isinasagawa ito tulad ng sa maliit na mga kaso na may 44 na mga pin (mga lead) sa layo na 0.8 mm mula sa bawat isa - ang mga naturang kaso ay itinuturing na madaling maibenta. Magagamit din na may 64 at 100 binti sa mga pagtaas ng 0.5 mm, pati na rin ang mga modelo sa mga enclosure ng uri ng PLCC.

  • Ang CoolRunner-II Series ay isang enerhiya na mabisa ngunit produktibo na CPLD. Ang isang tampok ay pinalakas ng isang boltahe ng 1.8V, ang mga input at output ay idinisenyo upang gumana sa saklaw ng 1.5-3.3V. Binubuo sila ng 32-512 macrocells at ginawa gamit ang teknolohiyang 180nm. Nakasalalay sa bilang ng mga cell, nagtatrabaho sila sa saklaw ng dalas 179-323 MHz, at mas maliit ang mga cell, mas maraming dalas ang maaaring magtrabaho sa kasong ito. Ang mga ito ay matatagpuan sa iba't ibang mga kaso, kabilang ang madaling paghihinang, tulad ng sa microcircuits ng serye na isinasaalang-alang sa itaas.

Ang kumpanya ng Xilinx ay hindi dumaan at FPGA:

  • Spartan-6 - binubuo ng 6-input logic blocks, ang kanilang bilang ay namamalagi sa saklaw ng 3840-147443 piraso. Ang kawili-wili na maaaring maglaman sila ng mga Controller para sa pagpapalitan ng data tulad ng DDR2, DDR3, PCI-EXPRESS, Ethernet 1Gbit, SerialATA atbp ...

  • Ang serye ng Vitrex-7 ay kumplikado, ang mga microcircuits ay maaaring maglaman ng hanggang sa 2,000,000 logic blocks at 1,200 contact.

Sa ibaba makikita mo ang mga talahanayan ng buod na may mga pagtutukoy ng CPLD at FPGA mula sa Xilinx 6 at 7 serye, pati na rin ang Zynq-7000.

Mga Tampok ng Xilinx 6 at 7 Series FPGA
Mga Katangian ng Virtex-6 FPGAs
Mga katangian ng pamilya FPGA Spartan-6
Mga katangian ng pamilya FPGA Spartan-6
Mga Tampok ng FPGA
Mga Tampok ng FPGA

Konklusyon

Ang mga FPGA at PCVM ay ginawa rin ng iba pang mga kumpanya tulad ng Lattice Semiconductor (noong 2002 ay nagsimulang gumawa ng FPGA), Actel, at ang kilalang mga mambabasa ng aming site. mga microcontroller ATMEL at marami pang iba. Sa maipaprograma na lohika, posible na ipatupad ang isang bilang ng mga aparato, upang ipatupad ang magkakatulad na mga kalkulasyon na independiyenteng sa bawat isa sa isang aparato, gayunpaman, para sa mga proyekto sa bahay, ang kanilang pagbili ay madalas na hindi naaangkop sa pananalapi, ngunit lubos na makatwiran sa isang scale ng produksyon, bilang isang kahalili sa mga pasadyang integrated circuit.

P.S.Panoorin ang video, makikita mo ang isang halimbawa ng pagpapatupad ng Nintendo game console sa FPGA:

Tingnan din sa electro-tl.tomathouse.com:

  • Functional Block Diagram Language (FBD) at ang Application nito
  • Mga uri ng mga modernong integrated circuit - mga uri ng lohika, mga kaso
  • Logic chips. Bahagi 1
  • Mga microcontroller ng PIC para sa mga nagsisimula
  • Mga Programmable Logic Controller para sa Home Automation

  •