برنامه نویسی
تفاوت های بین برنامه نویسی JTAG و SPI را برای FPGA توضیح دهید.

JTAG (گروه عمل تست مشترک) و SPI (رابط محیطی سریال) دو روش متداول هستند که برای برنامه نویسی FPGA استفاده می شوند. در اینجا تفکیک اختلافات آنها وجود دارد:
1. رابط و پروتکل
JTAG:
- یک پروتکل استاندارد اسکن و اشکال زدایی مرزی.
- از درگاه دسترسی تست (TAP) با سیگنال هایی مانند TDI (داده های تست در) ، TDO (داده های آزمایش خارج) ، TMS (انتخاب حالت تست) و TCK (ساعت تست) استفاده می کند.
- برای دسترسی به Internals FPGA به صورت شیوه ای ثبت نام سریال فعالیت می کند.
SPI:
- یک پروتکل ارتباطی سریال با سرعت بالا.
- از یک معماری اصلی برده با سیگنالهایی مانند SCLK (ساعت سریال) ، MOSI (Master Out Slave In در) ، MISO (Master in Slave Out) و CS (Chip Select) استفاده می کند.
- اغلب برای بارگیری داده های پیکربندی از یک حافظه غیر فرار (به عنوان مثال ، SPI Flash) استفاده می شود.
2. استفاده از برنامه نویسی
JTAG:
- مورد استفاده برای پیکربندی مستقیم FPGA ، اشکال زدایی ، آزمایش اسکن مرزی و به روزرسانی های سیستم عامل.
- برای ذخیره بیت استرث نیازی به حافظه خارجی ندارد.
- می تواند برای اشکال زدایی در زمان واقعی و بازرسی ثبت شود.
SPI:
- به طور معمول برای برنامه نویسی غیر فرار استفاده می شود ، جایی که FPGA پیکربندی خود را از یک حافظه SPI Flash در برق بارگذاری می کند.
- همچنین می تواند از برنامه نویسی مستقیم FPGA پشتیبانی کند اما در درجه اول برای پیکربندی خودمختار پس از تنظیم مجدد استفاده می شود.
3. سرعت و عملکرد
JTAG:
- سرعت متوسط ، معمولاً در محدوده چند مگاهرتز.
- سرعت به دلیل ماهیت تغییر سریال پروتکل محدود است.
SPI:
- به طور کلی سریعتر از JTAG برای بارگذاری بیت استریم.
- SPI با سرعت بالا (Quad یا Octal SPI) می تواند زمان بوت FPGA را به میزان قابل توجهی بهبود بخشد.
4. پیچیدگی سخت افزار
JTAG:
- نیاز به یک هدر JTAG اختصاصی و یک برنامه نویس خارجی دارد (به عنوان مثال ، کابل پلت فرم Xilinx ، Altera USB Blaster).
- پین های بیشتری در مقایسه با SPI مورد نیاز است.
SPI:
- به پین های کمتری احتیاج دارد و می تواند مستقیماً با یک میکروکنترلر یا حافظه Flash SPI ارتباط برقرار کند.
- اگر FPGA بتواند از یک فلاش SPI بوت شود ، نیازی به یک برنامه نویس اختصاصی نیست.
5. انعطاف پذیری
JTAG:
- همه کاره برای اشکال زدایی ، آزمایش و برنامه نویسی مستقیم.
- بدون نیاز به ذخیره سازی خارجی ، برنامه ریزی مجدد را امکان پذیر می کند.
SPI:
- مناسب برای تنظیمات مستقل و مستقل.
- به یک پردازنده تعبیه شده اجازه می دهد تا بدون نیاز به JTAG ، Bitstream را به روز کند.
6. موارد استفاده مشترک
پایان
- از JTAG برای اشکال زدایی ، برنامه نویسی FPGA در زمان واقعی و اهداف توسعه استفاده کنید.
- از SPI برای تولید استفاده کنید ، جایی که یک FPGA باید به صورت خودمختار پیکربندی خود را در برق بارگذاری کند.
هر روش بسته به الزامات کاربردی جای خود را دارد.