#Intermediate
#BUFGCE, #BUFHCE
🔖 تقریبا در تمامی تراشههای FPGA پیشبینیهای لازم برای گیت کردن کلاک در راستای کاهش توان مصرفی در نظر گرفته شده است. در تراشههای سری ۷ این مساله به شکل جدیتری مورد توجه قرار گرفته است. با استفاده از کنترلهای در نظر گرفته شده برای این منظور میتوان به راحتی بخشی از مدار را که نیاز به انجام عملیات خاصی ندارند، غیرفعال کرد. این کنترلها برای تغییر و مالتیپلکس کردن دو یا چند کلاک هم میتوانند مورد استفاده قرار بگیرند.
🔖 اگر با منابع کلاک درون تراشههای سری ۷ آشنا باشید حتما بافرهای کلاک را میشناسید و نامهایی مثل BUFGCE و BUFHCE را شنیدهاید. تقریبا در تمامی طراحیها تعداد زیادی بافر از نوع BUFGCE و BUFHCE وجود دارد که بدون استفاده رها میشوند. در حالت کلی هر BUFGCE میتواند کلاک مورد نیاز برای چندین ناحیه کلاک مختلف در تراشه را تامین کند و در نقطه مقابل هر BUFHCE تنها قادر به تامین کلاک برای یک ناحیه کلاک است.
برای درک بهتر مساله اجازه بدهید مثالی از نحوه فعال یا غیرفعال کردن کلاک بزنیم. توجه شود که در اینجا مفهوم غیرفعال کردن کلاک برای یک یا چند فلیپفلاپ بکار نمیرود و مساله کنترل کلاک بخشی از مدار پیادهسازی شده است. اگر تمامی مداراتی که نیاز است به طور دائم فعال باشند به شکل مناسبی با تعریف قیود مکانی در یک یا چند ناحیه کلاک محصور شده باشند، آنگاه یک BUFGCE میتواند برای تامین کلاک این نواحی به کار گرفته بشود. از سوی دیگر اگر اینترفیس خاصی به صورت کامل درون یک ناحیه کلاک محصور شده باشد و تنها نیاز باشد در بازههای زمانی کوتاه فعال باشد، میتوان با BUFHCE کلاک ورودی به این ناحیه را گیت کرد.
🔖 کنترل پایههای enable این دو بافر یک روش بسیار آسان برای کنترل دینامیک توان مصرفی روی نواحی مختلف کلاک است. در مورد روش مالتی پلکس کردن کلاکها نیز در آینده مطلبی ارائه خواهیم داد.
❗️اما هنوز یک نکته باقی مانده است. اگر به دلایل مختلف مجبور هستیم clock gating انجام دهیم. چگونه اینکار را انجام دهیم تا کمترین تاثیر منفی را روی طرح بگذارد؟ بهترین نقطه برای آغاز یا پایان فرایند clock gaiting دقیقا وسط بخش میانی کلاک است. دقیقا زمانی که مقدار آن صفر است. این کار معمولا با گیت and انجام میشود و هدف ممانعت از ایجاد #glitch در خروجی است. با رعایت این مساله در زمان روشن شدن گیت یا خاموش شدن آن در کلاک تولیدی خروجی هیچ شرایط پیش بینی نشدهای به وجود نمیآید و همینطور عرض پالس نیز کوتاه نمیشود.
@Hexalinx
#BUFGCE, #BUFHCE
🔖 تقریبا در تمامی تراشههای FPGA پیشبینیهای لازم برای گیت کردن کلاک در راستای کاهش توان مصرفی در نظر گرفته شده است. در تراشههای سری ۷ این مساله به شکل جدیتری مورد توجه قرار گرفته است. با استفاده از کنترلهای در نظر گرفته شده برای این منظور میتوان به راحتی بخشی از مدار را که نیاز به انجام عملیات خاصی ندارند، غیرفعال کرد. این کنترلها برای تغییر و مالتیپلکس کردن دو یا چند کلاک هم میتوانند مورد استفاده قرار بگیرند.
🔖 اگر با منابع کلاک درون تراشههای سری ۷ آشنا باشید حتما بافرهای کلاک را میشناسید و نامهایی مثل BUFGCE و BUFHCE را شنیدهاید. تقریبا در تمامی طراحیها تعداد زیادی بافر از نوع BUFGCE و BUFHCE وجود دارد که بدون استفاده رها میشوند. در حالت کلی هر BUFGCE میتواند کلاک مورد نیاز برای چندین ناحیه کلاک مختلف در تراشه را تامین کند و در نقطه مقابل هر BUFHCE تنها قادر به تامین کلاک برای یک ناحیه کلاک است.
برای درک بهتر مساله اجازه بدهید مثالی از نحوه فعال یا غیرفعال کردن کلاک بزنیم. توجه شود که در اینجا مفهوم غیرفعال کردن کلاک برای یک یا چند فلیپفلاپ بکار نمیرود و مساله کنترل کلاک بخشی از مدار پیادهسازی شده است. اگر تمامی مداراتی که نیاز است به طور دائم فعال باشند به شکل مناسبی با تعریف قیود مکانی در یک یا چند ناحیه کلاک محصور شده باشند، آنگاه یک BUFGCE میتواند برای تامین کلاک این نواحی به کار گرفته بشود. از سوی دیگر اگر اینترفیس خاصی به صورت کامل درون یک ناحیه کلاک محصور شده باشد و تنها نیاز باشد در بازههای زمانی کوتاه فعال باشد، میتوان با BUFHCE کلاک ورودی به این ناحیه را گیت کرد.
🔖 کنترل پایههای enable این دو بافر یک روش بسیار آسان برای کنترل دینامیک توان مصرفی روی نواحی مختلف کلاک است. در مورد روش مالتی پلکس کردن کلاکها نیز در آینده مطلبی ارائه خواهیم داد.
❗️اما هنوز یک نکته باقی مانده است. اگر به دلایل مختلف مجبور هستیم clock gating انجام دهیم. چگونه اینکار را انجام دهیم تا کمترین تاثیر منفی را روی طرح بگذارد؟ بهترین نقطه برای آغاز یا پایان فرایند clock gaiting دقیقا وسط بخش میانی کلاک است. دقیقا زمانی که مقدار آن صفر است. این کار معمولا با گیت and انجام میشود و هدف ممانعت از ایجاد #glitch در خروجی است. با رعایت این مساله در زمان روشن شدن گیت یا خاموش شدن آن در کلاک تولیدی خروجی هیچ شرایط پیش بینی نشدهای به وجود نمیآید و همینطور عرض پالس نیز کوتاه نمیشود.
@Hexalinx
همراهان عزیز هگزالینکس:
برای جستجو در مطالب منتشر در کانال میتوانید از کلید واژهها یا هشتگ های زیر استفاده کنید. امیدوارم آموزشهای تخصصی هگزالینکس در این مدت انتظارات شما را برآورده کرده باشد.
دسته بندی بر اساس سطح و پیچیدگی مطالب:
#Basic
#Essentials
#Intermediate
#Advanced
دسته بندی براساس ابزارهای طراحی
#VIVADO_HLS
#SYSGEN
#VITIS
#VIVADO
#ISE
#ISIM
#SDSoC
دسته بندی موضوعی
#FIR
#FILTER
#PETALINUX
#LINUX
#AXI
#AXIVIP
#AXI_Lite
#CDC
#Clock_Domain_Crossing
#FIXED_POINT
#CHIPSCOPE
#TCL
#DDR
#ZYNQ
#IOB
#Barrel_Shifter
#wire_bonding
#Pipelining
#device_tree
#Clock_Gating
#Clock
#Reset
#Fanout
#Digital_Filter
#Static_Timing_Paths
#Clock_skew
#U_BOOT
#SSBL
#BUFGCE
#BUFHCE
#MUX
#DCM
#CMT
#QEMU
#BARE_METAL
#CLB
#LUT
#DISTRIBUTED_RAM
#PYNQ
#HLS
#ILA
#VIO
#STA
@Hexalinx
برای جستجو در مطالب منتشر در کانال میتوانید از کلید واژهها یا هشتگ های زیر استفاده کنید. امیدوارم آموزشهای تخصصی هگزالینکس در این مدت انتظارات شما را برآورده کرده باشد.
دسته بندی بر اساس سطح و پیچیدگی مطالب:
#Basic
#Essentials
#Intermediate
#Advanced
دسته بندی براساس ابزارهای طراحی
#VIVADO_HLS
#SYSGEN
#VITIS
#VIVADO
#ISE
#ISIM
#SDSoC
دسته بندی موضوعی
#FIR
#FILTER
#PETALINUX
#LINUX
#AXI
#AXIVIP
#AXI_Lite
#CDC
#Clock_Domain_Crossing
#FIXED_POINT
#CHIPSCOPE
#TCL
#DDR
#ZYNQ
#IOB
#Barrel_Shifter
#wire_bonding
#Pipelining
#device_tree
#Clock_Gating
#Clock
#Reset
#Fanout
#Digital_Filter
#Static_Timing_Paths
#Clock_skew
#U_BOOT
#SSBL
#BUFGCE
#BUFHCE
#MUX
#DCM
#CMT
#QEMU
#BARE_METAL
#CLB
#LUT
#DISTRIBUTED_RAM
#PYNQ
#HLS
#ILA
#VIO
#STA
@Hexalinx