حافظه ای که ما روی FPGA داریم موقتی هست و با قطع تغذیه اطلاعاتش از بین میره! با این وجود ما چطور میتونیم اون فایل پیکربندی رو فقط یه بار پروگرم کنیم و ازش استفاده کنیم حتی اگه تغذیه FPGA رو هم روشن و خاموش کنیم؟
همانطور که خودتون هم اشاره کردید، حافظههای درون FPGA از نوع RAM و موقتی هستند. بنابراین، وقتی شما یک FPGA را مستقیما پروگرام کنید، بعد از اینکه منبع تغذیه را قطع کردید، محتوای FPGA پاک میشود و برای استفاده مجدد باید دوباره پروگرام یا پیکرهبندی بشود.
برای رفع این مشکل، همواره در کنار FPGAها از یک حافظه دائمی Flash استفاده میشود و محتوای فایل پیکرهبندی درون آن ذخیره می شود. در این حالت، هر بار که برد روشن میشود، به طور خودکار، محتوای حافظه Flash به FPGA منتقل میشود و برد آماده استفاده میشود.
برای درک بهتر این موضوع، میتوانید برنامه ویدئویی زیر را که در آن تمام مراحل پروگرام کردن FPGA و حافظه Flash را به کمک برد فراد ۱ و به صورت عملی نشان دادهام ببینید:
پیادهسازی عملی یک پروژه در FPGA
بنابراین به طور خلاصه موضوع به این صورت است که وقتی شما در حال توسعه و تست مدارتان هستید، معمولا خود FPGA را مستقیما پروگرام میکنید، چون سرعت پروگرام FPGA بیشتر از سرعت پروگرام حافظه Flash است.
اما وقتی به مرحلهای رسیدید که دیگر نیاز به تغییر کد و محتوای FPGA ندارید، میتوانید حافظه Flash را پروگرام کنید که در این حالت، بعد از هر بار روشن کردن برد، محتوای حافظه Flash به طور خودکار به FPGA منتقل میشود.