مائیکرو بلیز پروسیسر کیا ہے: آرکیٹیکچر، ورکنگ اور اس کی ایپلی کیشنز

مسائل کو ختم کرنے کے لئے ہمارے آلے کو آزمائیں





مائیکرو بلیز پروسیسر کو 2002 میں نئی ​​اور بڑھتی ہوئی مارکیٹ کی طلب کو پورا کرنے کے لیے کئی پیچیدہ خصوصیات کو مربوط کرنے کے لیے تیار کیا گیا تھا۔ لہٰذا، MicroBlaze پروسیسر Xilinx کے لو اینڈ پورٹ فولیو کے اندر ایک ضروری عنصر ہے تاکہ سسٹم کی تیز رفتار ترقی کو ممکن بنایا جا سکے جس میں Artix®-7 شامل ہے۔ ایف پی جی اے , Spartan®-6, Zynq®-7000 AP SoCs۔ یہ پروسیسر انتہائی قابل ترتیب ہے، اس لیے اسے FPGAs کے اندر ایمبیڈڈ پروسیسر یا مائیکرو کنٹرولر کے طور پر استعمال کیا جا سکتا ہے اور ARM Cortex-A9 پر مبنی Zynq-7000 AP SoCs میں کو-پروسیسر کے طور پر بھی استعمال کیا جا سکتا ہے۔ یہ مضمون مختصر معلومات فراہم کرتا ہے۔ مائیکرو بلیز پروسیسر - فن تعمیر اور ایپلی کیشنز کے ساتھ کام کرنا۔


Microblaze پروسیسر کیا ہے؟

نرم مائیکرو پروسیسر جو بنیادی طور پر Xilinx کے FPGAs کے لیے ڈیزائن کیا گیا ہے اسے MicroBlaze پروسیسر کے نام سے جانا جاتا ہے۔ یہ پروسیسر صرف Xilinx کے FPGAs کے عمومی مقصد کی میموری اور منطق کے تانے بانے کے اندر لاگو کیا گیا ہے۔ یہ پروسیسر RISC پر مبنی DLX فن تعمیر سے ملتا جلتا ہے اور اس میں ایک لچکدار انٹر کنیکٹ سسٹم ہے تاکہ یہ مختلف ایمبیڈڈ ایپلی کیشنز کو سپورٹ کرتا ہے۔ مائیکرو بلیز کی مرکزی I/O بس اور AXI آپس میں منسلک ایک میموری میپڈ ٹرانزیکشن بس ہے جس میں ماسٹر غلام کی سہولت ہے۔



مائیکرو بلیز مقامی میموری تک رسائی کے لیے ایک وقف شدہ LMB بس کا استعمال کرتا ہے اور فوری آن چپ اسٹوریج فراہم کرتا ہے۔ اس پروسیسر کے بہت سے حصوں کو صارف کنفیگر کیا جا سکتا ہے جیسے کیشے کا سائز، پائپ لائن میموری مینجمنٹ یونٹ کی گہرائی، ایمبیڈڈ پیری فیرلز اور بس انٹرفیس۔

مائکروبلیز کی خصوصیات

دی مائکروبلاز کی خصوصیات e میں درج ذیل شامل ہیں۔ اس کے پاس 32 عام مقصد کے رجسٹر ہیں۔



  • اس میں 32 بٹ انسٹرکشن الفاظ ہیں جن میں 2 ایڈریسنگ موڈز اور 3 آپرینڈز شامل ہیں۔
  • ایڈریس بس 32 بٹ ہے۔
  • اس میں 3 اسٹیج پائپ لائن یا 5 اسٹیج پائپ لائن ہے۔
  • شفٹر کے ساتھ ALU بلاک یونٹ۔
  • ہارورڈ فن تعمیر میں 32 بٹ ڈیٹا اور ایڈریس بس شامل ہے۔
  • ڈیٹا انٹرفیس اور LMB یا مقامی میموری بس ہدایات۔
  • AX14 اور AX14 اسٹریم انٹرفیس۔
  • فلوٹنگ پوائنٹ یونٹ اور میموری مینجمنٹ یونٹ۔
  • یہ لاک اسٹپ کو سپورٹ کرتا ہے۔
  • ڈیبگ اور ٹریس انٹرفیس۔

مائکروبیز آرکیٹیکچر

مائیکرو بلیز پروسیسر کا بلاک ڈایاگرام نیچے دکھایا گیا ہے۔ یہ مائیکرو بلیز پروسیسر انتہائی حسب ضرورت ہے اور یہ 70 سے زیادہ ڈیزائن کے اختیارات کو سپورٹ کرتا ہے۔ یہ فن تعمیر مستقل ہارڈ ویئر کی خصوصیات کے ساتھ ساتھ قابل ترتیب اختیارات جیسے ہدایات یا ڈیٹا کیش، میموری مینجمنٹ یونٹ، فلوٹنگ پوائنٹ یونٹ وغیرہ کو دکھاتا ہے۔

ایک سرایت نظام مائیکرو بلیز پروسیسر کے ارد گرد جمع ہونے والے بنیادی طور پر مائیکرو بلیز سافٹ پروسیسر کور، آن چپ لوکل میموری، اسٹینڈرڈ بس انٹر کنیکٹس، اور او پی بی پیری فیرلز (آن چپ پیری فیرل بس) شامل ہیں۔ ایک مائیکرو بلیز پروسیسر سسٹم بنیادی طور پر مقامی میموری کے ذریعے پروسیسر کے کور سے لے کر ایک بڑے سسٹم تک ہوتا ہے جس میں کئی مائیکرو بلیز بھی شامل ہیں۔ پروسیسرز ، بیرونی میموری اور بہت سے OPB پیری فیرلز۔

  مائکروبلیز پروسیسر آرکیٹیکچر
مائکروبلیز پروسیسر آرکیٹیکچر

سافٹ پروسیسر کور

مائیکرو بلیز کا نرم پروسیسر کور مائیکرو بلیز ایمبیڈڈ سسٹم میں مرکزی حیثیت رکھتا ہے۔ یہ ایک بہت تیز اور موثر 32 بٹ RISC پروسیسر ہے جس میں درج ذیل خصوصیات ہیں۔

  • انسٹرکشن سیٹ آرتھوگونل ہے۔
  • علیحدہ ڈیٹا اور انسٹرکشن بسیں۔
  • 32 بٹ عمومی مقصد کے رجسٹر۔
  • اس میں اختیاری مکمل 32 بٹ بیرل شفٹر ہے۔
  • OCM یا آن چپ میموری اور IBM کی صنعت کے معیاری OPB (آن چپ پیریفرل بس) کے لیے ان بلٹ انٹرفیس۔

Virtex-II کے اندر عمل درآمد اور اس کے بعد کے آلات ہارڈ ویئر کے ضرب کی حمایت کرتے ہیں۔

آن چپ لوکل میموری

سنکرونس میموری ایک مقامی میموری ہے جو بنیادی طور پر آن چپ بلاک RAM کی اجازت دینے کے لیے استعمال ہوتی ہے۔

معیاری بس آپس میں جڑتی ہے۔

ہدایات اور ڈیٹا کی طرف بس انٹرفیس میں مقامی میموری کا ایک انٹرفیس شامل ہے جسے LMB (لوکل میموری بس) کہا جاتا ہے اور IBM کی آن چپ پیری فیرل بس کا ایک انٹرفیس۔ لہٰذا ہم ایسے نظاموں کو ڈیزائن کر سکتے ہیں جو ہارورڈ کے فن تعمیر پر سختی سے قائم رہیں، بصورت دیگر وسائل کو بانٹنے کے لیے، ہم بس آربیٹر کے ذریعے ایک ہی OPB کا استعمال کر سکتے ہیں۔

لوکل میموری بس آن چپ بلاک RAM کے لیے یقینی سنگل سائیکل داخلہ دیتی ہے۔ یہ ایک بہت ہی موثر، سادہ، اور واحد ماسٹر بس پروٹوکول ہے اور یہ تیز رفتار لوکل میموری کو انٹرفیس کرنے کے لیے بہترین ہے۔ OPB یا آن چپ پیری فیرل بس ایک 32 بٹ وسیع ملٹی ماسٹر بس ہے جو مائیکرو بلیز پروسیسر کے کور میں پیری فیرلز اور بیرونی میموری کو جوڑنے کے لیے بہترین ہے۔

آن چپ پیری فیرل بس پیری فیرلز

مائیکرو بلیز ہارڈویئر سسٹم مختلف فنکشنز جیسے واچ ڈاگ ٹائمر یا ٹائمر، عمومی مقصد کا ٹائمر یا کاؤنٹرز، آئی سی (انٹرپٹ کنٹرولر)، مختلف کنٹرولرز جیسے SRAM، فلیش میموری، ZBT میموری، BRAM، DDR، SDRAM، UART Lite فراہم کرنے کے لیے OPB پیری فیرلز کے ذریعے مکمل کیا جاتا ہے۔ ، SPI، I2C، عمومی مقصد I/O، UART 16450/550 اور Ethernet 10/100 MAC۔ مزید برآں، ہم بنیادی طور پر حسب ضرورت افعال کے لیے پیری فیرلز کو بھی شامل اور اس کی وضاحت کر سکتے ہیں، بصورت دیگر، FPGA میں موجود ڈیزائن میں ایک انٹرفیس۔

مائکروبلیز انسٹرکشن سیٹ

مائیکرو بلیز انسٹرکشن سیٹ ریاضی، منطق، برانچ، لوڈ/اسٹور اور دیگر ہیں۔ تمام ہدایات کا سائز طے شدہ ہے۔ زیادہ سے زیادہ 3-رجسٹرز کو آپرینڈ کے طور پر دیا جا سکتا ہے۔ مائیکرو بلیز میں دو انسٹرکشن فارمیٹس ٹائپ اے اور ٹائپ بی شامل ہیں جو نیچے دکھائے گئے ہیں۔

ٹائپ اے انسٹرکشن فارمیٹ بنیادی طور پر رجسٹر-رجسٹر ہدایات کے لیے استعمال ہوتا ہے۔ لہذا اس میں اوپکوڈ، واحد منزل اور دو سورس رجسٹر شامل ہیں۔ ٹائپ بی انسٹرکشن فارمیٹ بنیادی طور پر رجسٹر فوری ہدایات کے لیے استعمال کیا جاتا ہے جس میں اوپکوڈ، سنگل ڈیسٹینیشن، اور سنگل سورس رجسٹرز شامل ہوتے ہیں۔ اور 16 بٹ فوری قدر کا ذریعہ

  ہدایات کی شکلیں
ہدایات کی شکلیں

مندرجہ بالا دو انسٹرکشن فارمیٹس میں، اوپکوڈ ایک آپریشن کوڈ ہے، Rd ایک منزل کا رجسٹر ہے جو 5 بٹس کے ساتھ انکوڈ کیا گیا ہے، Ra & Rb سورس رجسٹر ہیں جہاں ہر ایک کو 5 بٹس کے ساتھ انکوڈ کیا گیا ہے اور فوری طور پر 16 بٹ ویلیو ہے۔

ریاضی کی ہدایات

قسم A اور Type B ریاضی کی ہدایات ذیل میں دی گئی ہیں۔

A ٹائپ کریں۔

ADD Rd, Ra, Rb

شامل کریں

Rd = Ra+Rb، لے جانے والا جھنڈا متاثر ہوا۔

ADD K Rd, Ra, Rb

شامل کریں اور ساتھ رکھیں

Rd = Ra+Rb، لے جھنڈا متاثر نہیں ہوا۔

RSUB Rd, Ra, Rb

الٹا منہا کریں۔

Rd = R-Rb، لے جھنڈا متاثر نہیں ہوا۔

B قسم

ADD I Rd, Ra, Imm

فوری طور پر شامل کریں

Rd = Ra+signExtend32 (Imm)

ADD IK Rd, Ra, Imm

فوری طور پر شامل کریں اور ساتھ رکھیں

Rd = Ra+ signExtend32 (Imm)
RSUBIK Rd, Ra, Imm

فوری طور پر معکوس کریں

Rd = Ra+ signExtend32 (Imm) -Ra

SRA Rd، Ra

ریاضی کی تبدیلی دائیں طرف

Rd = (Ra>>1)

منطق کی ہدایات

قسم A اور Type B منطق کی ہدایات ذیل میں دی گئی ہیں۔

A ٹائپ کریں۔

یا آر ڈی، را، آر بی

منطقی یا

Rd = Ra | ر ب

اور آر ڈی، را، آر بی

منطقی اضافہ

Rd = Ra & Rb
XOR Rd, Ra, Rb

منطقی xor

Rd = Rb^Rb

ANDN Rd, Ra, Rb

منطقی اور نہیں۔

Rd = Ra & (Rb)

B قسم

ORI  Rd, Ra, Imm

منطقی یا فوری کے ساتھ

Rd = را | signExtend32 (Imm)
ANDI  Rd, Ra, Imm

منطقی اور فوری طور پر

Rd = Ra & signExtend32 (Imm)
XORI Rd, Ra, Imm

منطقی XOR فوری کے ساتھ

Rd = Ra^ signExtend32 (Imm)

ANDNI Rd, Ra, Imm

منطقی اور فوری طور پر نہیں۔

Rd = Ra & (signExtend32 (Imm))

برانچ کی ہدایات - غیر مشروط

پروگرام کاؤنٹر رجسٹر میں ترمیم کریں۔

BRID  Imm

فوری طور پر تاخیر کے ساتھ برانچ

PC = PC+ signExtend32 (Imm)

تاخیر کی سلاٹ پر عمل درآمد کی اجازت دیں۔

BRLID Rd، Imm

فوری تاخیر کے ساتھ برانچ اور لنک فوری طور پر (فنکشن کال)

آر ڈی = پی سی

PC = PC+& signExtend32 (Imm)

تاخیر کی سلاٹ پر عمل درآمد کی اجازت دیں۔

RTSD  Ra, Imm

سب روٹین سے واپسی

PC = Ra + signExtend32 (Imm)

تاخیر کی سلاٹ پر عمل درآمد کی اجازت دیں۔

آر ٹی آئی ڈی را، آئی ایم ایم

مداخلت سے واپسی

PC = Ra + signExtend32 (Imm)

تاخیر کی سلاٹ پر عمل درآمد کی اجازت دیں۔

MSR میں انٹرپٹ ایبل سیٹ کریں۔

برانچ کی ہدایات- غیر مشروط 1

شرط پوری ہونے پر پروگرام کاؤنٹر رجسٹر کو تبدیل کریں۔

BEQI Ra, Imm

برانچ اگر برابر ہے۔

PC = PC+ signExtend32 (Imm)

اگر Ra = = 0

ماش را، آئی ایم ایم

برانچ اگر برابر نہ ہو۔

آر ڈی = پی سی

PC = PC+& signExtend32 (Imm)

اگر را! = 0

برانچ کی ہدایات- غیر مشروط 2

شرط پوری ہونے پر پروگرام کاؤنٹر رجسٹر کو تبدیل کریں۔

BLTI Ra, Imm

شاخ اگر اس سے کم ہو۔

PC = PC+ signExtend32 (Imm)

اگر را <0

BLEI را، Imm

برانچ اگر اس سے کم ہو۔

آر ڈی = پی سی

PC = PC+& signExtend32 (Imm)

اگر را!< = 0

بی جی ٹی آئی را، آئی ایم ایم

شاخ اگر اس سے زیادہ ہو۔

PC = PC+ signExtend32 (Imm)

اگر را!> 0

بی جی ای آئی را، آئی ایم ایم

برانچ اگر اس سے زیادہ ہو۔

PC = PC+signExtend32 (Imm)

اگر را!>= 0

لوڈ/اسٹور کی ہدایات - قسم A

LW Rd, Ra, Rb

لفظ لوڈ کریں۔

پتہ = Ra+Rb

Rd = *پتہ

SW Rd, Ra, Rb

لفظ ذخیرہ کریں۔

پتہ – Ra+Rb

*پتہ = Rd

B قسم

LWI  Rd, Ra, Imn

فوری طور پر لفظ لوڈ کریں۔

پتہ = Ra + signExtend32 (Imm)

Rd = *پتہ

SW Rd, Ra, Imm

لفظ کو فوری طور پر اسٹور کریں۔

پتہ = Ra + signExtend32 (Imm)

*پتہ = Rd

دیگر ہدایات

آئی ایم ایم، آئی ایم ایم

فوری

ایک سابقہ ​​قسم B ہدایات کے Imm کو 32 بٹس تک بڑھا دیں۔
MFS Rd، Sa

خصوصی مقصد کے رجسٹر سے منتقل کریں۔

Rd = Sa

Sa- خاص مقصد کا رجسٹر، سورس آپرینڈ

MTS Sd, Ra

خصوصی مقصد کے رجسٹر پر جائیں۔

ایس ڈی = را

ایس ڈی - خصوصی مقصد کا رجسٹر، منزل کا کام

رجسٹر کرتا ہے۔

مائیکرو بلیز پروسیسر کا فن تعمیر مکمل طور پر آرتھوگونل ہے جس میں 32 بٹ عمومی مقصد کے رجسٹر اور 32 بٹ خاص مقصد کے رجسٹر جیسے پروگرام کاؤنٹر اور مشین اسٹیٹس رجسٹر شامل ہیں۔

پائپ لائن فن تعمیر

MicroBlaze ایک 3-اسٹیج پائپ لائن فن تعمیر کا استعمال کرتا ہے جس میں بازیافت، ڈی کوڈ، اور مکمل مراحل شامل ہیں۔ خودکار طور پر، ڈیٹا فارورڈنگ، برانچز اور پائپ لائن اسٹال کا تعین ہارڈ ویئر کے اندر ہوتا ہے۔

لوڈ یا اسٹور آرکیٹیکچر

مائیکرو بلیز تین ڈیٹا سائز 8 بٹس (بائٹ)، 16 بٹس (ہافورڈ) اور 32 بٹس (ورڈ) میں میموری کو سپورٹ کرتا ہے۔ لہذا، میموری تک رسائی ہمیشہ ڈیٹا کے سائز سے منسلک ہوتی ہے۔ یہ ایک بگ اینڈین پروسیسر ہے جو میموری تک رسائی حاصل کرنے کے بعد بگ اینڈین ایڈریس کے ساتھ ساتھ لیبلنگ کنونشنز کا استعمال کرتا ہے۔

مداخلت کرتا ہے۔

ایک بار جب مداخلت ہوتی ہے، تو یہ پروسیسر ویکٹر ایڈریس میں خلل ڈالنے اور انسٹرپٹ ایڈریس کو اسٹور کرنے کے لیے برانچنگ کے ذریعے مداخلت کی درخواست کا انتظام کرنے کے لیے موجودہ عمل کو ختم کر دے گا جس پر عمل درآمد کرنے کی ضرورت ہے۔ یہ پروسیسر ایم ایس آر (مشین اسٹیٹس رجسٹر) کے اندر IE (انٹرپٹ ان ایبل) فلیگ کو صاف کرکے مستقبل میں ہونے والی رکاوٹوں کو روک دے گا۔

Microblaze کیسے کام کرتا ہے؟

مائیکرو بلیز پروسیسر 32 بٹ بس چوڑائی کو سپورٹ کرتا ہے اور یہ پروسیسر کور ایک RISC پر مبنی انجن ہے جس میں میموری اور ڈیٹا تک رسائی کے لیے الگ الگ ہدایات کے ذریعے 32 بٹ LUT RAM پر مبنی رجسٹر فائل شامل ہے۔
یہ پروسیسر صرف آن چپ بلاک RAM اور بیرونی میموری دونوں کو سپورٹ کرتا ہے۔ IBM PowerPC کی طرح؛ تمام پیری فیرلز اسی طرح کی CoreConnect OPB بس استعمال کرتے ہیں؛ پروسیسر کے پیری فیرلز Virtex-II Pro پر PowerPC کے ساتھ اچھی طرح سے ملتے ہیں۔

مائیکرو بلیز پروسیسر میموری، پیریفرل اور انٹرفیس خصوصیات کے امتزاج کو منتخب کرنے کے لیے مکمل لچک فراہم کرتا ہے جو آپ کو وہ درست نظام فراہم کرے گا جس کی آپ کو کم قیمت کے ساتھ ایک FPGA پر ضرورت ہے۔

فرق B/W Microblaze بمقابلہ Risc-V

دی مائیکرو بلیز اور RISC v کے درمیان فرق مندرجہ ذیل شامل ہیں.

مائیکرو بلیز

Risc-V

یہ ایک نرم مائکرو پروسیسر کور ہے جو بنیادی طور پر Xilinx FPGA کے لیے ڈیزائن کیا گیا ہے۔

RISC-V ایک انسٹرکشن سیٹ آرکیٹیکچر ہے جس کی جڑ RISC اصولوں میں ہے۔

یہ ہارورڈ RISC فن تعمیر کا استعمال کرتا ہے۔ یہ انسٹرکشن سیٹ فن تعمیر کا استعمال کرتا ہے۔
اس کا لائسنس ملکیتی ہے (Xilinx) اس کا لائسنس اوپن سورس ہے۔
پائپ لائن کی گہرائی 3 یا 5 ہے۔ پائپ لائن کی گہرائی 5 ہے۔
اس کی کارکردگی 280 DMIPs ہے۔ اس کی کارکردگی 250 DMIPs ہے۔
اس کی رفتار 235 میگا ہرٹز ہے۔ اس کی رفتار 250 میگا ہرٹز ہے۔
اس میں 1027 LUTs ہیں۔ اس میں 4125 LUTs ہیں۔
استعمال شدہ ٹیکنالوجی کا نفاذ Xilinx FPGA ہے۔ استعمال شدہ ٹیکنالوجی کا نفاذ FPGA/ASIC ہے۔

مائکروبلیز کے فوائد

دی مائیکرو بلیز کے فوائد مندرجہ ذیل شامل ہیں.

  • یہ اقتصادی ہے.
  • یہ انتہائی قابل ترتیب ہے۔
  • اس کی کارکردگی ARM کے مقابلے میں زیادہ ہے۔
  • اسے ایمبیڈڈ ڈویلپمنٹ کٹ کے ذریعے سپورٹ کیا جاتا ہے۔
  • یہ ایک نرم ہے مائکرو پروسیسر لازمی.
  • آپ کی درخواست کو تیزی سے ترتیب دینے میں آپ کی مدد کرنے کے لیے، اس پروسیسر میں تین فکسڈ کنفیگریشنز شامل ہیں جو کہ معروف پروسیسر کلاسز مائیکرو کنٹرولر، ریئل ٹائم، اور ایپلیکیشن پروسیسر سے متعلق ہیں۔

مائیکرو بلیز ایپلی کیشنز

دی مائیکرو بلیز کی ایپلی کیشنز مندرجہ ذیل شامل ہیں.

  • یہ پروسیسر درخواست کی بہت سی مختلف ضروریات کو پورا کرتا ہے جیسے صنعتی، آٹوموٹیو، طبی اور صارف، وغیرہ۔
  • مائیکرو بلیز کی ایپلی کیشنز سافٹ ویئر پر مبنی سادہ سٹیٹ مشینوں سے لے کر ایمبیڈڈ ایپلی کیشنز یا انٹرنیٹ پر مبنی آلات میں استعمال ہونے والے پیچیدہ کنٹرولرز تک ہیں۔
  • یہ صنعتی کنٹرول، آفس آٹومیشن اور آٹوموٹیو جیسی ایمبیڈڈ ایپلی کیشنز کے لیے موزوں ہے۔
  • MicroBlaze درمیانے درجے کی ایپلی کیشنز میں فٹ ہونے کے لیے پیری فیرلز کے ایک بڑے سیٹ کے ساتھ بات چیت کرنے کے قابل ہے۔
  • اس پروسیسر کی نرم نوعیت اسے مختلف ایپلی کیشنز کے لیے حسب ضرورت بناتی ہے جہاں ڈیزائنرز طبی، آٹوموٹو، صنعتی اور سیکیورٹی ایپلی کیشنز کے لیے قیمت اور کارکردگی کے اہداف کو پورا کرنے کے لیے سائز کے لیے خصوصیات کا تبادلہ کر سکتے ہیں۔

اس طرح، یہ سب کے بارے میں ہے مائیکرو بلیز کا ایک جائزہ پروسیسر یہ مکمل طور پر نمایاں، 32 بٹ قابل پروگرام RISC سافٹ پروسیسر کور ہے۔ یہ پروسیسر مختلف شعبوں جیسے صارف، طبی، صنعتی، آٹوموٹو اور مواصلاتی انفراسٹرکچر مارکیٹس کے اندر مختلف ضروریات کو پورا کرتا ہے۔ یہ انتہائی قابل ترتیب ہے، لہذا FPGAs کے اندر ایمبیڈڈ پروسیسر یا مائیکرو کنٹرولر کے طور پر استعمال کیا جاتا ہے بصورت دیگر ARM کے لیے شریک پروسیسر کی طرح۔ یہاں آپ کے لیے ایک سوال ہے، FPGA کیا ہے؟