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

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

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

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

آدرس اینستاگرام:
insatagram.com/hexalinx_go
Download Telegram
#Basic
#CLB, #SLICE
معرفی Slice و CLB بخش اول

کلیه تراشه های شرکت Xilinx که بعد از Virtex-6 به بازار عرضه شدند تقریبا دارای منابع منطقی یکسانی هستند. برای آشنایی بیشتر با این منابع ادامه مطلب را در پست زیر مطالعه بفرمایید. 👇

@Hexalinx
#Basic
#CLB, #SLICE, #PAR
معرفی Slice و CLB بخش دوم

📋 در شکل بالا نحوه اتصال دو CLB به یک سوییچ ماتریس نشان داده شده است. اسلایس ها از طریق این سوییچ ماتریس ها به شبکه سرتاسری مسیرها در FPGA دسترسی پیدا می کنند. در این مسیرهای سرتاسری، مسیرهای مجزا برای داده و کلاک در نظر گرفته شده که در شکل نیز با نام Clk و Data نشان داده شده اند. در حالت کلی کاربر روی نحوه استفاده از سوییچ ها و مسیریابی بین عناصر موجود در تراشه دخالت نمی کند و این کار به صورت اتوماتیک توسط ابزار و در مرحله post place & route انجام می شود.
.
@Hexalinx
🔖 با توجه به نتایج نظر سنجی و علاقه شما عزیزان به مطالب پایه ای VHDL و FPGA از این هفته به بعد، به صورت مداوم آموزش های کوتاهی در قالب ویدیو و متن های کوتاه با کمله کلیدی #Basic ارائه می شود که امیدوارم به بهترین شکل پاسخگوی نیاز شما باشد.

🔖 علاوه بر این به پاس اعتماد شما، یک سرفصل کاملا جدید با عنوان پردازش سیگنال روی FPGA برای شما تدارک خواهیم دید و در قالب ویدیو و مقالات کاربردی خدمتتان ارائه خواهیم کرد. نکات آموزشی در رابطه با محاسبات ممیز ثابت، فیلترهای دیجیتال، IP Core های پرکاربرد، تکنیک های به اشتراک گذاری منابع و ... از جمله مواردی هستند که در این سلسله آموزش ها پوشش داده می شوند و در غالب کمله کلیدی #DSP بیان می گردند.

🔖 همچون گذشته در کنار دو این دو بخش جدید، نکات آموزشی پیشرفته، اخبار روز دنیا، موضوعات مربوط به سیستم های توکار و مفاهیم عمیق پیاده سازی همچنان به عنوان بخشی از علاقه مندی های شما به صورت روزانه منتشر خواهد.

این آغاز ماجراجویی شماست، با ما همراه باشید ...

@Hexalinx
#Basic
#SLICE
اسلایس ها از چه چیزهایی تشکیل شده اند؟

1️⃣ چهار جدول درستی 6 ورودی (6x-Input-LUT)
2️⃣ مالتی پلکسر های عریض (Wide Multiplexers)
3️⃣زنجیره نقلی (Carry chain)
4️⃣ شیفت رجیسترها (SRLs)
5️⃣ چهار فلیپ فلاپ/ لچ (flip-flops/latches) بعلاوه چهار فلیپ فلاپ اضافی

@Hexalinx
#Basic
#SLICE, #SLICER, #SLICEM

انواع اسلایس در FPGA های سری 7

🔖 کلیه منابع موجود درون اسلایس ها برای محاسبات منطقی، محاسبات ریاضی و ذخیره سازی به عنوان ROM قابل استفاده هستند. در معماری تراشه های سری 7 دو نوع Slice و دو نوع CLB وجود دارد.

1️⃣ اسلایس منطقی و محاسباتی (SLICER)
این اسلایس ها با بکارگیری منابع درونی خود به عنوان منابع منطقی، محاسباتی و ROM مورد استفاده قرار می گیرند.

2️⃣ اسلایس کامل (SLICEM)
این اسلایس ها علاوه بر انجام محاسبات منطقی، ریاضی و ROM از دو عملکرد اضافی نیز پشتیبانی می کنند و می توانند به عنوان حافظه (RAM) و یا شیفت رجیستر (Memory/SRL) مورد استفاده قرار بگیرند.

🔖 انتخاب بین این اسلایس ها توسط ابزار سنتز و به صورت اتوماتیک صورت می گیرد، اما با توجه به محدودیت تعداد اسلایس های کامل، طراحی درست می تواند منجربه به استفاده بهینه از آنها شود.

@Hexalinx
#Basic

معرفی اجمالی جریان طراحی روی FPGA

معمولا یکی از اولین دروسی که در دوره های مقدماتی FPGA ارائه می شود، آشنا کردن دانشجویان با گام های پیاده سازی است. در مقاله کوتاهی که در ادامه خدمتتان اراده می شود، فهرستی از گام های مورد نیاز برای اجرای صفر تا صد یک پروژه روی FPGA به صورت خلاصه توضیح داده می شود.

@Hexalinx
#Basic

✳️ در حالت اول کاربر با اتصال یک پروگرامر بین کامپیوتر و تراشه FPGA با استفاده از پورت JTAG ، تراشه FPGA را پیکره بندی می کند. برای این کار تنها نیاز است طراح فایل bit خروجی را توسط ابزارهای طراحی تولید کند و باقی کارها تنها با چند کلیک انجام می شود. این روش پیرکره بندی در پروسه طراحی و زمانی که هنوز پروژه نهایی نشده است انجام می شود.

✳️ در حالت دوم نیاز به استفاده از پروگرامر برای پیکره بندی FPGA نیست و از پروگرامر برای پیکره بندی حافظه فلش استفاده می شود و ممکن است یکی از دو اتفاق زیر بیافتد.

1️⃣ در روش اول، تراشه FPGA با توجه به قابلیت هایی که شرکت سازنده آن فراهم می کند، به صورت اتوماتیک برنامه مورد نیاز برای پیکره بندی را از یک حافظه فلش non-volatile می خواند، و خودش را پیکره بندی می کند.
2️⃣ در روش دوم یک پردازنده دیگر همچون میکروکنترلر با خواندن اطلاعات از روی حافظه فلش non-volatile تراشه FPGA را پیکره بندی می کند.

در روش اول تراشه FPGA در اصطلاح master است و مسئولیت صفر تا صد کار را برعهده می گیرد. در این روش طراح نیاز دارد علاوه بر ساخت فایل bit خروجی، فایل مناسب برای پیکره بندی حافظه فلش را نیز تولید کند. با توجه به نوع حافظه این فایل ممکن است پسوند mcs یا bin یا داشته باشد. در روش دوم که در آن FPGA در اصطلاح slave است. طراح علاوه بر ساخت فایل مورد نیاز حافظه فلش باید پروتکل مورد نیاز برای برنامه ریزی تراشه FPGA را نیز برای پردازنده کمکی پیاده سازی کند.

@Hexalinx
#Basic
#2’s_Complement
الفبای محاسبات علامت دار در FPGA

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

@Hexalinx
#Basic
#ISIM
مشکل استفاده از ISIM برای شبیه سازی مدارت در windows 10

✳️ در صورتی که از windows 10 استفاده می کنید و برای اجرای نرم افزار ISIM‌ و شبیه سازی طراحی مشکل دارید. زیاد نگران نباشید چون راه حل آن چندان پیچیده نیست.
شما ممکن است در زمان اجرا با این خطا روبرو شوید.
ERROR:Simulator:861 - Failed to link the design

❗️برای برطرف کردن مشکل تنها کافی است به پوشه زیر مراجعه کنید و فایل “collect2.exe” رو حذف کنید.
installation directory \ Xilinx \ 14.x \ ISE_DS \ ISE \ gnu \ MinGW \ 5.0.0 \ nt \ libexec \ gcc \ mingw32 \ 3.4.2 \ collect2.exe

@Hexalinx
#Basic
#MUX

مالتی‌پلکسرها در FPGA

❗️مالتی پلکسرها غالبا با استفاده از عبارت شرطی IF یا CASE در زبان HDL تولید می‌شوند.
❗️استفاده عبارت IF/THEN/ELSE منجر به تولید یک انکدر اولویت‌دار می‌شود.
❗️استفاده از عبارت CASE منجربه تولید یک کدکننده پیچیده می شود. بدون اینکه اولویتی داشته باشند.

در طراحی مالتی‌پلکسرها چند نکته باید در نظر گرفته بشود.

1️⃣ تاخیر و سایز مالتی پلکسرها به تعداد ورودی‌ها و تعداد عبارت IF/THEN یا CASE که تو در تو تعریف شده‌اند، بستگی دارد.
2️⃣ لچ‌های ناخواسته یا فعال سازهای کلاک زمانی که عبارات شرطی تمام حالات را در برنگیرند تولید می‌شود. برای پیدا کردن چنین مواردی در کدها باید به دقت گزارش های سنتز را مطالعه و بررسی کرد.
3️⃣ اگر نیاز به استفاده تو در تو از عبارت شرطی IF بود مهمترین شرط را در بایددر ابتدا قرار دهیم و تا خروجی آن کمترین مسیر بحرانی را داشته باشد. عبارت که در ELSE آخر قرار می گیرد به لحاظ اهمیت کمترین ارزش را دارد و خروجی حاصل از آن می‌تواند مسیر طولانی‌تری را طی کند.

@Hexalinx
#Basic
#Fanout

مفهوم fanout در مدرات دیجیتال

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

❗️بالا بودن بیش از حد fanout یک سیگنال در طراحی علاوه بر مصرف حجم زیادی از منابع #routing ممکن است باعث بروز مشکلات زمان‌بندی در طرح بشود و عملکرد آن را مختل کند.

@Hexalinx
#Basic
#Reset

آیا لازم است بعد از پیکره‌بندی FPGA، آن را ریست کنیم؟ آیا لازم است یک ریست اولیه قبل از شروع به کار ماژول یا سیستم پیاده‌سازی شده، اعمال شود و تمام مقادیر رجیسترهای میانی را مقدرا دهی کند؟ چگونه باید برای پیاده‌سازی های خودمان روتیم por یا power on reset ایجاد کنیم؟

ممکن است در زمان اجرای پروژه با سوالاتی مشابه سوالات بالا روبرو شده باشید و آن‌ها را بدون پاسخ رها کرده باشید. در این پست کوتاه سعی می کنیم به صورت مختصر به چند مورد از این سوالات پاسخ بدهیم. 👇

@Hexalinx