#Routeing
#Interconnect
#Essentials
✅ منابع متصل کننده(Interconnect Resources)
✳️ علاوه بر بلوک های قابل برنامه ریزی، حافظه ها، بلوک های ضرب کننده و منابع ورودی و خروجی، تراشه های FPGA دارای منابع بسیار مهم دیگری به نام منابع متصل کننده یا Interconnect Resources هستند. این منابع به صورت یک شبکه قابل برنامه ریزی وظیفه برقراری ارتباط بین ورودی ها، خروجی ها، و به طور کلی تمامی عناصر موجود درون تراشه را بر عهده دارند. این منابع تحت عنوان مسیر یا #routing شناخته می شوند. گام جانمایی و مسیر یابی #Place_and_Route در فرایند پیاده سازی در واقع به برنامه ریزی و بهینه سازی این منابع اختصاص دارد. نکته جالب اینجاست که این منابع به طور متوسط بیش از 60 درصد منابع درون FPGA را اشغال کرده اند. کنترل جزئیات فرایند #routing به شکل کامل در اختیار ابزارهای پیاده سازی است و به نوعی جز پتنت های شرکت سازنده محسوب می شود.
@Hexalinx
#Interconnect
#Essentials
✅ منابع متصل کننده(Interconnect Resources)
✳️ علاوه بر بلوک های قابل برنامه ریزی، حافظه ها، بلوک های ضرب کننده و منابع ورودی و خروجی، تراشه های FPGA دارای منابع بسیار مهم دیگری به نام منابع متصل کننده یا Interconnect Resources هستند. این منابع به صورت یک شبکه قابل برنامه ریزی وظیفه برقراری ارتباط بین ورودی ها، خروجی ها، و به طور کلی تمامی عناصر موجود درون تراشه را بر عهده دارند. این منابع تحت عنوان مسیر یا #routing شناخته می شوند. گام جانمایی و مسیر یابی #Place_and_Route در فرایند پیاده سازی در واقع به برنامه ریزی و بهینه سازی این منابع اختصاص دارد. نکته جالب اینجاست که این منابع به طور متوسط بیش از 60 درصد منابع درون FPGA را اشغال کرده اند. کنترل جزئیات فرایند #routing به شکل کامل در اختیار ابزارهای پیاده سازی است و به نوعی جز پتنت های شرکت سازنده محسوب می شود.
@Hexalinx
#Basic
#Fanout
✅ مفهوم fanout در مدرات دیجیتال
✳️ در الکترونیک دیجیتال، مفهومfanout به عنوان پارامتری برای توصیف ظرفیت خروجی گیتهای منطقی بکار برده میشود و بیانگر تعداد ورودیهایی است که یک خروجی میتواند برای گیتهای دیگر تامین کند. به بیان سادهتر در FPGA تعداد مسیرهای منشعب شده از یک سیگنال یا پورت خروجی fanout نامیده میشود. هر پورت ورودی در گیتهای منطقی نمیتواند با بیش از یک پورت خروجی تغذیه شود، اما در نقطه مقابل هر خروجی ممکن است برای تامین ورودی بخشهای مختلف سیستم مورد استفاده قرار بگیرد. هر چه fanout یک سیگنال کمتر باشد، میزان پایداری و قابلیت اطمینان عملکرد آن سیگنال و در نتیجه کل سیستم بالاتر میرود. در واقع fanout معیاری برای سنجش تعداد کپیهای ساخته شده از یک سیگنال واحد درون طراحی دیجیتال است.
❗️بالا بودن بیش از حد fanout یک سیگنال در طراحی علاوه بر مصرف حجم زیادی از منابع #routing ممکن است باعث بروز مشکلات زمانبندی در طرح بشود و عملکرد آن را مختل کند.
@Hexalinx
#Fanout
✅ مفهوم fanout در مدرات دیجیتال
✳️ در الکترونیک دیجیتال، مفهومfanout به عنوان پارامتری برای توصیف ظرفیت خروجی گیتهای منطقی بکار برده میشود و بیانگر تعداد ورودیهایی است که یک خروجی میتواند برای گیتهای دیگر تامین کند. به بیان سادهتر در FPGA تعداد مسیرهای منشعب شده از یک سیگنال یا پورت خروجی fanout نامیده میشود. هر پورت ورودی در گیتهای منطقی نمیتواند با بیش از یک پورت خروجی تغذیه شود، اما در نقطه مقابل هر خروجی ممکن است برای تامین ورودی بخشهای مختلف سیستم مورد استفاده قرار بگیرد. هر چه fanout یک سیگنال کمتر باشد، میزان پایداری و قابلیت اطمینان عملکرد آن سیگنال و در نتیجه کل سیستم بالاتر میرود. در واقع fanout معیاری برای سنجش تعداد کپیهای ساخته شده از یک سیگنال واحد درون طراحی دیجیتال است.
❗️بالا بودن بیش از حد fanout یک سیگنال در طراحی علاوه بر مصرف حجم زیادی از منابع #routing ممکن است باعث بروز مشکلات زمانبندی در طرح بشود و عملکرد آن را مختل کند.
@Hexalinx
#Reset
#POR
به طور کلی زمانی که FPGA پیکرهبندی میشود نیازی به اعمال سیگنال ریست نداریم. تمامی سلولهای درون تراشه بلافاصله بعد از پیکرهبندی مقدار دهی میشوند. این اتفاق چیزی فراتر از اعمال یک ریست ساده به فلیپ فلاپها است و تمامی بخشهای تراشه را در بر میگیرد. به عبارت دیگر پیکرهبندی FPGA منجربه به اعمال یک ریست سرتاسری میشود. این ریست سرتاسری تمام سیگنالها و حتی فضای درون حافظهها را تحت تاثیر قرار میدهد. لازم است توجه شود که با اعمال این ریست سرتاسری، مقدار سلولها لزوما صفر نمیشوند و میتوانند هر مقداری که طراح به آن اختصاص میدهد را داشته باشند. مقدار دهی اولیه به سیگنالها با استفاده عملگر "=:” صورت میپذیرد. پس به شما پیشنهاد میکنم حتما اگر مقدار اولیه خاصی برای برخی از سیگنالهایی که داخل برنامه خود تعریف میکنید مد نظر دارید، به جای استفاده از روتینهای ست یا ریست در برنامه، برای آنها مقدار اولیه تعیین کنید. در صورت عدم تعیین این مقدار اولیه، به صورت پیش فرض مقدار صفر به سلولهای درون تراشه نسبت داده میشود. با توجه به توضیحات فوق واضح است که تراشه FPGA به سیگنال کنترلی به نام por نیاز ندارد.
به طور کلی ریست پر استفادهترین سیگنال کنترلی در طراحیهای دیجیتال روی FPGA است. از این رو حجم زیادی از مسیرهای #routing را به دلیل #fanout بالا به خودش اختصاص میدهد از این رو برای استفاده از باید بسیار محتاتانه عمل کرد. در آینده توضیحات بیشتری در رابطه ملاحظات سیگنال ریست منتشر خواهیم کرد.
@Hexalinx
#POR
به طور کلی زمانی که FPGA پیکرهبندی میشود نیازی به اعمال سیگنال ریست نداریم. تمامی سلولهای درون تراشه بلافاصله بعد از پیکرهبندی مقدار دهی میشوند. این اتفاق چیزی فراتر از اعمال یک ریست ساده به فلیپ فلاپها است و تمامی بخشهای تراشه را در بر میگیرد. به عبارت دیگر پیکرهبندی FPGA منجربه به اعمال یک ریست سرتاسری میشود. این ریست سرتاسری تمام سیگنالها و حتی فضای درون حافظهها را تحت تاثیر قرار میدهد. لازم است توجه شود که با اعمال این ریست سرتاسری، مقدار سلولها لزوما صفر نمیشوند و میتوانند هر مقداری که طراح به آن اختصاص میدهد را داشته باشند. مقدار دهی اولیه به سیگنالها با استفاده عملگر "=:” صورت میپذیرد. پس به شما پیشنهاد میکنم حتما اگر مقدار اولیه خاصی برای برخی از سیگنالهایی که داخل برنامه خود تعریف میکنید مد نظر دارید، به جای استفاده از روتینهای ست یا ریست در برنامه، برای آنها مقدار اولیه تعیین کنید. در صورت عدم تعیین این مقدار اولیه، به صورت پیش فرض مقدار صفر به سلولهای درون تراشه نسبت داده میشود. با توجه به توضیحات فوق واضح است که تراشه FPGA به سیگنال کنترلی به نام por نیاز ندارد.
به طور کلی ریست پر استفادهترین سیگنال کنترلی در طراحیهای دیجیتال روی FPGA است. از این رو حجم زیادی از مسیرهای #routing را به دلیل #fanout بالا به خودش اختصاص میدهد از این رو برای استفاده از باید بسیار محتاتانه عمل کرد. در آینده توضیحات بیشتری در رابطه ملاحظات سیگنال ریست منتشر خواهیم کرد.
@Hexalinx