HEXALINX
533 subscribers
147 photos
4 files
74 links
این آغاز ماجراجویی شماست...
آموزش رایگان برنامه نویسی FPGA و ZYNQ و ابزارهای طراحی XILINX

پرسش و پاسخ:
@ask_linx

آدرس سایت:
hexalinx.com

آدرس کانال آپارات:
aparat.com/hexalinx

آدرس اینستاگرام:
insatagram.com/hexalinx_go
Download Telegram
#Essentials
#wire_bonding

مفهوم wire bonding

✳️ تراشه‌های FPGA در پکیج‌های متفاوتی به بازار عرضه می‌شوند. این پکیج‌ها از نظر ابعاد و تعداد پایه‌های IO با هم متفاوت هستند. با این وجود ممکن است دارای منابع سخت‌افزاری مشابه هم باشند. بعنی فضای منطقی، حافظه و ضرب کننده‌های یکسانی را در اختیار طراح قرار می‌دهند.

از آنجایی که تولید تراشه یکسان با ابعاد مختلف و تعداد IO های مختلف بسیار پرهزینه است، شرکت‌های تولید کننده تراشه همچون Xilinx از یک متد خاص برای برقرار کردن ارتباط بین بلوک‌های IO و پایه‌های فیزیکی تراشه استفاده می‌کنند.

🔖 به بیان ساده فرایندی که بر اساس آن اتصال بین پایه‌های فیزیکی یک تراشه همچون FPGA و مدارات پیاده‌سازی شده روی سیلیکون برقرار می‌شود، اصطلاحاً wire bonding نامیده می‌شود.

❗️پس همواره بیاد داشته باشیم تراشه‌هایی که با یک کد نام گذاری می‌شوند و تنها تعداد IO های آن‌ها با هم متفاوت در عمل هیچ فرقی با‌هم ندارند و فقط wire bonding آن ها با هم متفاوت است.

@Hexalinx
#Essentials, #IO

منابع ورودی / خروجی در FPGA

✳️ منابع ورودی و خروجی در هر FPGA، منابعی هستند که بین پین‌های تراشه و منابع منطقی درون تراشه قرار گرفته اند. این منابع به لحاظ ساختاری از دو بخش تشکیل شده‌اند:

1️⃣ بخش الکتریکی: وظیفه این بخش کنترل ولتاژ و استاندارد کاری IO هاست. تک سیمه یا تفاضلی بودن یک IO‌ و همچنین فعال یا غیرفعال بودن امپدانس داخلی هر IO در این بخش تعیین می‌شود.
2️⃣ بخش منطقی: وظیفه این بخش که خود متشکل از چند بلوک است، اعمال کنترل‌های منطقی روی سیگنال‌های ورودی خروجی است. پیکره بندی پورت از لحاظ SDR و یا DDR بودن و همینطور ورودی، خروجی و یا ۳ حالته بودن پورت در این بخش تعیین می‌شود.

@Hexalinx
#Essentials

پارامترهای #slew_rate و #drive_strength به چه معنا هستند و به چه منظور مورد استفاده قرار می‌گیرند؟

✳️ وقتی یک IO در FPGA به صورت خروجی تعریف می‌شود به صورت پیش فرض دو پارامتر slew rate و drive strength برای آن مقدار دهی می‌شود. طراح می‌تواند مقدار پیش فرض این دو پارامترها را با استفاده از ابزارهای Xilinx تغییر دهد.
ساده ترین تعریف برای این دو پارامتر به این صورت است.
پارامتر slew rate کمک می‌کند تا سرعت تغییر وضعیت یک خروجی تنظیم شود. یعنی شیب لبه بالا رونده یا پایین رونده را برای دستیابی به سرعت مطلوب کنترل می‌کند.
پارامتر drive strength برای کمک به تامین جریان مورد نیاز مصرف کننده متصل به FPGA تنظیم می‌شود.

در حالت کلاسیک slew rate به صورت حداکثر نرخ تغییرات ولتاژ خروجی بر واحد زمان تعریف می‌شود و می‌تواند مقادیر SLOW و FAST به آن نسبت داده شود.

از سوی دیگر drive strength رابطه مستقیم با جریان دارد و واحد آن میلی آمپر است. پایین بودن آن باعث ایجاد مشکلات زمان بندی و بالا بودن آن باعث نویزی شدن سیستم و کاهش مقاوت سیستم در مقابل خطا می شود.

@Hexalinx
#Essentials
#IOB

آشنایی با بخش‌های مختلف بلوک‌های ورودی و خروجی در FPGA

✳️ دسته بندی IO ها درون FPGA در قالب بانک‌های IO انجام می‌شود. تعداد این بانک‌ها کاملا به نوع تراشه و پکیج آن وابسته است. در حالت کلی خواص الکتریکی IO با توجه به قیودی که برای هر بانک تعریف می‌شود محدود می‌شوند.

با توجه به متفاوت بودن تعداد بانک‌های بسادگی می‌توان حدس زد که تعداد IO های درون تراشه نیز با توجه به نوع پکیج و منابع درون تراشه متفاوت است. این IO‌ ها با استفاده از ابزارهای گرافیگی Xilinx به سادگی قابل پیکره‌بندی هستند و با بسیاری از استانداردهای الکتریکی سازگار هستند. توجه شود که تمامی پین‌های فیزیکی روی تراشه به صورت IO قابل استفاده نیستد. با این وجود تعداد قابل توجهی از آن‌ها به عنوان ورودی‌ خروجی‌های همه منظوره در دسترس هستند. در هر پکیج بجز تعداد محدودی از پایه‌ها که به تامین تغدیه مورد نیاز تراشه و پیکره‌بندی تراشه اختصاص دارند، سایر پایه‌ها تقریباً مشابه هم هستند و قابلیت‌های یکسانی دارند.

❗️مطالعه ادامه این مقاله

@Hexalinx
#Essentials
#Barrel_Shifter

احتمالا شما هم هنگام پیاده‌سازی یک الگوریتم روی FPGA به مداری که نیاز به انجام شیفت متغیر داشته باشد، برخورد کرده‌اید. مدار Barrel Shifter یک مدار ترکیبی است که قابلیت انجام شیفت متغیر چند بیتی را به تعداد دلخواه در یک کلاک فراهم می‌آورد و در معماری آن، به جای استفاده از فلیپ فلاپ یا سایر المان‌های حافظه از مالتی‌پلکسر استفاده می‌شود.

❗️اگر به این موضوع علاقمند هستید ادامه این مطلب را در سایت هگزالینکس مطالعه بفرمایید.

ادامه مطلب ...

@Hexalinx
#Essentials
#FIXED_POINT

یک کلمه دودویی به طور ذاتی هیچ معنی و مفهومی ندارد. اما بیشتر افراد تمایل دارند که آن را (حداقل در نگاه اول) به عنوان اعداد صحیح مثبت یا اعداد طبیعی در نظر بگیرند. اما در واقع معنی و مفهوم یک عدد دودویی N بیتی کاملاً به تفسیری که می‌شود، بستگی دارد. حال با این نگاه و اینکه هر مجموعه‌ای را می‌توان با عدد N بیتی نمایش داد، ما قصد داریم یک زیر مجموعه از اعداد گویا را نمایش دهیم. اعداد گویا مجموعه‌ای از اعداد هستند که بصورت کسری (a/b) نشان داده می‌شوند. زیر مجموعه‌ای که ما به دنبال آن هستیم، زیر مجموعه‌ای است که در آن عدد b توانی از ۲ است.
علاوه بر این، محدودیت‌های دیگری نیز در نمایش این زیر مجموعه مورد نظرمان در نظر می‌گیریم. اول اینکه هر کدام از اعضای این زیر مجموعه باید تعداد بیت‌های دودویی یکسانی داشته باشند. دوم اینکه نقطه اعشار آن‌ها در موقعیت ثابتی قرار داشته باشد، یعنی نقطه ممیز در یک مکان ثابت باشد. دقیقاً به همین دلیل، به این نمایش از اعداد، اصطلاحاً ممیز ثابت گفته می‌شود.

ادامه مطلب >>

@Hexalinx
#Essentials
#FIXED_POINT

محاسبات ممیز ثابت در برخی از کتب آموزشی تحت عنوان محاسبات با دقت محدود مخاطب قرار داده می‌شود. یعنی تحت هیچ شرایطی دقت محاسبات از مقدار مشخصی که از ابتدا نیز قابل محاسبه است، بیشتر نخواهد بود.
فرایند ممیز ثابت کردن یک الگوریتم، فرایند پیجیده‌ای نیست اما قطعاً فرایند زمانبری است. زیرا باید به اندازه کافی وقت برای تنظیم پارامترها اختصاص داده شود. اما کدام پارامترها؟
مهمترین پارامترهایی که در محاسبات با دقت محدود وجود دارند، عبارتند از:
❗️دقت
❗️صحت
❗️دامنه
❗️تفکیک پذیری
❗️رنج دینامیکی
این پارامترها با توجه به فرمت ممیز ثابت انتخابی، تعیین می‌شوند. اگر علاقمند به آشنایی با این پارامترها هستید با ما همراه شوید.

ادامه مطلب >>

@Hexalinx
#Essentials
#FIXED_POINT

ما در زندگی خودمان همواره با اعداد حقیقی سر و کار داریم. اعدادی که بخش اعشاری دارند. اغلب سیستم‌های مدرن دیجیتال امروزی قادر به پیروی از اصول ما هستند. اصولی که ما آن را به عنوان نمایش ممیز شناور می‌شناسیم. اما نمایش ممیز شناور در کنار دقت بالا، دارای معایبی است که باعث می‌شود کمتر در طراحی‌ها مورد استفاده قرار بگیرد.
1️⃣ پیاده‌‌سازی این روش، مشکل است.
2️⃣ منابع سخت‌‌افزاری زیادی را مصرف می‌‌کند.
3️⃣ و سرعت مدار را کاهش دهد.
در نقطه مقابل نمایش ممیز ثابت قرار دارد که منابع سخت‌‌افزاری کمتری را نسبت به روش ممیز شناور اشغال می‌‌کند و سرعت بسیار بیشتری دارد.

❗️اعداد ممیز ثابت همان اعداد اعشاری ممیز شناور هستند که با استفاده از یک فاکتور معین مقیاس بندی می‌شوند. از این رو محاسبات ممیز ثابت از قوانین معمول پیروی نمی کنند و قوانین خاصی بر آن ها حاکم است. در سری آموزشی اعداد اعشاری ممیز ثابت سعی کردیم کلیه اصول و قوانین مورد نیاز یک طراح برای استفاده از اعداد ممیژ ثابت را در اختیار شما قرار دهیم. برای دسترسی به بخش‌های اول تا سوم این سری آموزشی از لینک‌های زیر استفاده کنید.

@Hexalinx
#Essentials
#TCL
معرفی زبان TCL

❗️زبان برنامه نویسی TCL یک زبان سطح بالا و دینامیک است که با هدف ساده سازی توصیف فرایند ساخته شده و به صورت گسترده در ISE‌ و به ویژه Vivado مورد استفاده قرار می‌گیرد. واژه TCL محفف Tool Command Language است.
❗️زبان TCL یک زبان استاندارد در صنعت نیمه هادی است و برای ساختن API ها و قیود پیاده سازی SDC مورد استفاده قرار می گیرد. استاندارد SDC توسط شرکت Synopsys معرفی و پشتیبانی می‌شود و برای توصیف قیود پیاده سازی در طراحی‌های FPGA استفاده می‌شود. ابزار Vivado نسخه سفارشی شده SDC را تحت عنوان XDC برای توصیف قیود مورد استفاده قرار می دهد. در واقع XDC جایگزین UCF در ISE شده است

@Hexalinx
#FILTER
#Essentials

✳️ به طور کلی فیلترها دارای چهار نوع اصلی هستند که در ادامه به شما معرفی می‌کنم:

1️⃣ فیلترهای پایین گذر یا low-pass filters
2️⃣ فیلترهای بالا گذر یا high-pass filters
3️⃣ فیلترهای میان گذر یا band-pass filters
4️⃣ فیلترهای میان نگذر باریک یا band-stop filter یا notch filters

❗️ در این مقاله در مورد انواع مختلف فیلترها، مفاهیم کلی، اصطلاحات و خصوصیات مهم آن‌ها صحبت می‌کنیم. این مقاله می‌تواند برای شما که نمی‌دانید باید از کجا مطالعه در مورد فیلترها را آغاز کنید یک نقطه شروع مناسب باشد.

مطالعه متن کامل مقاله >>

@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