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

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

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

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

آدرس اینستاگرام:
insatagram.com/hexalinx_go
Download Telegram
#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
#FIR, #FILTER, #SYSGEN
#Basic

✳️ فرض کنیم به تازگی مشغول کار در شرکتی شده‌اید که کار اصلی آن پیاده سازی الگوریتم‌های پردازش سیگنال است. شرکت در حال کار روی فیلترهای دیجیتال است و تصمیم دارد در محصول جدیدش فیلترهای آنالوگ قدیمی را با فیلترهای دیجیتال جدید جایگزین کند. هدف از این جایگزینی هم بهبود عملکرد سیستم و کاهش هزینه تمام شده محصول است. این جایگزینی مزایای رقابتی قابل ملاحظه‌ای نیز به همراه دارد و احتمالاً باعث محبوبیت مضاعف این محصول جدید در بازار می‌شود.

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

❗️حالا سؤال اینجاست اگر شما واقعاً در چنین موقعیتی قرار بگیرید، از کجا شروع می‌کنید؟

مطالعه ادامه مطلب >>

@Hexalinx
#FIR, #FILTER, #VIVADO
#Basic, #Intermediate

✳️ دروازه ورود به دنیای پردازش سیگنال در FPGA از طریق فراگیری الفبای پیاده سازی یک فیلتر FIR در Vivado به صورت کاملاً ممیز ثابت و شبیه سازی آن با تست بنچ‌ HDL در یک قدمی شماست...
👈 چند هفته پیش بود که آموزشی در رابطه با طراحی یک فیلتر FIR با ابزار System Generator for DSP منتشر کردیم. این هفته در یک مقاله بسیار مفصل با آموزش پیاده سازی یک فیلتر میان گذر، تک کانال و تک نرخ با استفاده از FIR Compiler IP Core در Vivado به نزد شما بازگشتیم.

🔖 مطالعه ادامه مطلب >>

@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
✳️ تاکنون مقاله‌های متعددی در رابطه با مفاهیم پایه‌ایی و مقدماتی الگوریتم‌های fixed point در هگزالینکس منتشر شده است. طراحی و پیاده سازی فیلتر FIR روی FPGA یکی از اولین چالش‌های است که هر مهندس فعال در این حوزه با آن دست و پنجه نرم می‌کند. ما در هگزالینکس شما را تنها نگذاشته‌ایم به صورت مفصل به این موضوع پرداختیم.

❗️اگر در ابتدای راه فراگیری هستید و قصد یادگیری اصول پیاده سازی ممیز ثابت الگوریتم‌های پردازش سیگنال را دارید.
❗️اگر در نوشتن تست بنچ مشکل دارید و به دنبال این هستید تا یک تست بنچ مناسب برای طراحی‌های خود تهیه کنید.
❗️اگر درک ماهیت دستورات fixed point در Matlab برای شما دشوار است.
❗️اگر علاقمند به استفاده حداکثری از IP Integrator و System Generator برای طراحی های خودتان هستید و اگر بسیاری از سوألات این‌چنینی ذهن شما را مشغول کرده است. با ما همراه شوید.

🔖 در دو مقاله اخیر منتشر شده در سایت به شکل مفصل به این موضوع پرداخته‌‌ایم و دو راه حل کاملاً متفاوت برای نیل به یک هدف واحد را به تصویر کشیدیم.

طراحی فیلتر FIR با ابزار System Generator for DSP
پیاده سازی فیلتر FIR در Vivado

@Hexalinx
#Basic, #DSP48

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

✳️ ما مدت‌هاست در #هگزالینکس به دنبال انتشار مقاله‌ای در رابطه با معرفی انواع متفاوت بلوک‌های DSP48 و مقایسه قابلیت‌های آن‌ها در نسل‌های مختلف تراشه‌های تولیدی شرکت Xilinx هستیم. اکنون فرصتی دست داده است تا به رسالت خودمان عمل کنیم و به شکل ویژه‌ای به این موضوع بپردازیم. پس بدون فوت وقت به سال ۲۰۰۴ بر می‌گردیم، زمانی که برای اولین بار تراشه‌های Virtex-4 با اتکا به یک واحد سخت افزاری اختصاصی برای پردازش سیگنال به نام XtremeDSP DSP48 Slice معرفی شدند.

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

@Hexalinx
#Basic
#CMT, #DCM, #PLL, #MMCM

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

بلوک‌های مدیرت کلاک در نسل‌های مختلف تراشه‌های Xilinx با عناوین متفاوت و البته کاربردهای بعضاً مشابهی معرفی شده اند. آشنایی با واژه هایی مثل DCM و MMC و PLL و مفاهیمی همچون Clock Region و CMT می‌تواند به درک صحیح تفاوت‌ها و شباهت‌های عناصر تاثیر گذار در ساختار درخت کلاک کمک کند.

🔖 در این مقاله نگاهی متفاوت به تاریخچه‌ و سیر تکاملی بلوک‌های مدیریت کلاک در نسل‌های مختلف تراشه‌های FPGA شرکت Xilinx خواهیم داشت، و مسیری را که برای دستیابی به بلوغ فعلی طی شده است، مرور خواهیم کرد.

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

@Hexalinx