آموزش اِف‌پی‌جی‌اِی از صفر
3.37K subscribers
520 photos
14 videos
10 files
517 links
آموزش قدم به قدم طراحی دیجیتال به کمک FPGA

🌎 آموزشگاه فراد اندیش
www.FaradAndish.com
☎️ ۴۲۴۳۹۹۰۰
ایمیل سایت:
help@faradandish.com

📌 لینک اولین پست کانال:
https://t.me/fpga0/22
Download Telegram
⚡️ شرکت‌های مهم تولید کننده FPGA در دنیا

🔷 در حال حاضر، شرکت‌های مختلفی در دنیا تراشه‌های FPGA را تولید می‌کنند.

🔷 گرچه ماهیت تولیدات تمام این شرکت‌ها مشابه است، اما هر کدام سعی می‌کنند با ارائه‌ی محصولی که از نظر الکترونیکی خصوصیات مطلوب‌تری دارد، از دور رقابت خارج نشوند.

🔷 نکته‌ی مهم دیگر برای باقی ماندن در این بازار رقابت، ارائه‌ی نرم‌افزارها و خدمات جانبی قوی‌تر است که باعث ایجاد تفاوت قابل توجهی در جذب مشتریان شده است.

🔷 از شرکت‌های مهم تولیدکننده‌ی تراشه‌های FPGA، می‌توان به Xilinx ،Altera ،Lattice Semiconductor و Microsemi و QuickLogic اشاره کرد.

🔷 در میان این شرکت‌ها، Xilinx و Altera بیشترین میزان فروش را در دنیا دارند.

در ایران نیز اکثر شرکت‌های فعال در زمینه‌ی طراحی دیجیتال با FPGA، از محصولات یکی از دو شرکت Xilinx و Altera استفاده می‌کنند.

🔷 اگر شما با یکی از این محصولات آشنا شده و به طراحی با آن بپردازید و سپس روزی قصد طراحی با محصولات شرکت‌های دیگر را داشته باشید، با فراگیری دو موضوع می‌توانید این کار را انجام دهید:

🔹 اولاً، باید با معماری و منابع سخت‌افزاری موجود در FPGA موردنظر آشنا شوید.
🔹 ثانیاً، باید با نرم‌افزارهای مخصوص آن شرکت آشنا شوید تا بتوانید مراحل مختلف طراحی را به‌کمک FPGAهای آن انجام دهید.

هر کدام از شرکت‌های تولید کننده‌ی تراشه‌های FPGA دارای محصولات بسیار متنوعی هستند که بر مبنای نیازهای مختلف کاربران و طراحان تولید شده است.

در زیر، محصولات اصلی شرکت‌های Xilinx و Altera را مشاهده می‌کنید؛ هر کدام از این محصولات دارای نسخه‌های مختلفی است که تفاوت اصلی آن‌ها در مقدار منابع دیجیتالی موجود در هر کدام است.

❇️ Xilinx: Spartan, Artix, Kintex, Virtex

❇️ Altera: Cyclone, MAX, Arria, Stratix

⚠️ چند سالی است که شرکت اینتل، شرکت آلترا را خریده است و محصولات این شرکت با نام Intel FPGAs عرضه می‌شوند.

🆔 @FPGA0
همان‌طور که می‌دانید، پس از انجام پروژه، باید عملکرد مدار پیاده‌سازی شده روی FPGA را به مدیر یا کارفرما اثبات کرد. کدام روش به زمان کمتری نیاز دارد؟
Anonymous Quiz
41%
شبیه‌سازی رفتاری یا عملکردی
10%
شبیه‌سازی زمانی
49%
تست در حین اجرا
⚡️ چگونه یک مدار دیجیتال را برای FPGA توصیف کنیم؟ (قسمت اول)

🔷 مداری که در ذهن شما به عنوان طراح و پیاده‌ساز دیجیتال وجود دارد باید به نحوی، برای FPGA توصیف شود.

🔷 این کار عملاً توسط نرم‌افزارهای مخصوصی که برای این هدف طراحی شده‌اند انجام می‌شود.

اما سوال اساسی که در ذهن بسیاری از افرادی که به‌تازگی وارد دنیای پیاده‌سازی با FPGA شده‌اند وجود دارد، این است که چطور طرح مدار دیجیتالی را که در ذهن دارند، برای نرم‌افزار پیاده‌سازی توصیف کنند.

در این مجموعه پست:

نحوه‌ی معرفی یک طرح دیجیتال را برای پردازنده‌ها و FPGA با هم مقایسه می‌کنم.

روش‌های توصیف مدارات دیجیتال برای نرم‌افزارهای پیاده‌ساز بر روی FPGA را به شما توضیح می‌دهم.

همچنین، روش اصلی که در عمل و در پروژه‌های حرفه‌ای از آن استفاده می‌شود را معرفی می‌کنم.

❇️ معرفی یک طرح دیجیتال برای پردازنده‌ها:

🔷 وقتی با پرداز‌‌ند‌‌ه کار می‌‌‌کنیم به‌کمک دستور‌‌ات برنامه‌‌‌نویسی که از پیش برای آن پرداز‌‌ند‌‌ه تعریف شد‌‌ه است، می‌توانیم یک الگوریتم را در آن پیاده‌‌‌ساز‌‌ی کنیم‌‌.

🔷 بنا‌‌بر‌‌این، زبان برنامه‌‌‌نویسی در پرداز‌‌ند‌‌ه‌‌‌ها ابزار‌‌ی ا‌‌ست که به‌کمک آن می‌توانیم ایده‌‌‌ای که در ذهن دار‌‌یم را به پرداز‌‌ند‌‌ه معرفی کنیم‌‌.

اما این موضوع در مورد FPGAها به چه صورت است‌‌؟

🔷 به‌طور کلی، دو روش برای توصیف مدارات دیجیتال برای نرم‌افزارهای پیاده‌سازی وجود دارد:

1⃣ استفاده از شماتیک مدار

2⃣ استفاده از زبان توصیف سخت‌افزاری (HDL)

🔷 در روش شماتیک مدار‌‌ی، شما به‌کمک یک نرم‌‌‌افزار و به‌کمک قطعات پایه‌‌‌ی دیجیتالی می‌توانید مدار را ترسیم و برای FPGA توصیف کنید.

🔹 به‌‌طور مثال‌‌، می‌توانید به‌کمک گیت‌‌‌ها‌‌ی پایه‌‌، فلیپ‌‌‌فلاپ‌‌‌ها‌‌، بلوک‌‌‌ها‌‌ی مالتی‌‌‌پلکسر‌‌، انکدر، دیکدر و ... مدارهای مختلف را برای FPGA رسم ‌‌و توصیف کنید‌‌.

گرچه به نظر می‌رسد این روش ساده است، اما در عمل کاربرد چندانی ندارد.

🔷 زیرا با این روش‌‌، مدیریت و ترسیم مدارهای بزرگ در نرم‌‌‌افزار تقریباً غیر ممکن است‌‌.

🔷 فرض کنید، می‌خواهید مدار‌‌ی را ترسیم کنید که از هزار‌‌ان گیت و بلوک‌‌‌ها‌‌ی دیجیتالی تشکیل شد‌‌ه است.

اولاً‌‌، ترسیم آن در صفحه‌‌‌ی محدود مانیتور بسیار سخت است‌‌.

ثانیاً، در صورت ترسیم شماتیک، اگر ایراد‌‌ی در آن وجود داشته باشد یا اگر بخواهید تغییر‌‌ی در آن ایجاد کنید، این‌‌ کار می‌تواند مشکل‌‌ و تقریباً غیرممکن باشد‌‌.

به همین دلیل، برای توصیف مدار‌‌های بزرگ در FPGA، روش دیگری وجود دارد که استفاده از زبان‌‌‌ها‌‌ی توصیف سخت‌‌‌افزار‌‌ی است.

ادامه دارد...

🆔 @FPGA0
⚡️ چگونه یک مدار دیجیتال را برای FPGA توصیف کنیم؟ (قسمت دوم)

🔷 در پست قبل، روش معرفی یک طرح دیجیتال برای پردازنده‌ها را بیان کردم.

🔷 همچنین، مطالبی در رابطه با توصیف مدارات دیجیتال برای FPGA، به‌روش شماتیک مدار ارائه شد.

در این پست، در رابطه با توصیف مدارات دیجیتال به‌کمک زبان توصیف سخت‌افزاری توضیح خواهم داد.

❇️ توصیف مدارات دیجیتال به‌کمک زبان توصیف سخت‌افزاری (HDL) برای FPGA:

🔷 زبان توصیف سخت‌‌‌افزار‌‌ یا Hardware Description Language که به اختصار به آن HDL گفته می‌شود، زبانی‌‌ است که در آن ساختار‌‌ها و عباراتی وجود دارد که به‌کمک آن‌ها می‌توانیم رفتار مدار دیجیتال را توصیف کنیم‌‌.

🔷 در واقع، زبان توصیف سخت‌‌‌افزار‌‌ی از دستور‌‌ات تشکیل نشده است؛ چون دستور‌‌ات مربوط به CPU هستند‌‌.

🔹 در FPGAها نه تنها CPU، بلکه در ابتدا، هیچ سخت‌‌‌افزار‌‌ی که توصیف‌‌‌کنند‌‌ه و ارائه‌کنند‌‌ه‌‌‌ی یک قابلیت مشخص باشد وجود ندارد‌‌.

بنا‌‌بر‌‌این، زبان توصیف سخت‌‌‌افزار‌‌ی زبانی نیست که از دستور‌‌ات تشکیل شده باشد.

بلکه در این زبان، ساختار‌‌ها و عباراتی وجود دار‌‌ند که اگرچه ممکن است شبیه دستورات برنامه‌‌‌نویسی باشند، ولی در عمل توصیف‌‌‌کنند‌‌ه‌‌‌ی سخت‌‌‌افزار دیجیتال هستند‌‌.

🔆 اکنون مفهوم زبان سخت‌‌‌افزار‌‌ی را به‌کمک یک مثال توضیح می‌دهم.

🔷 کد‌‌ی که در زیر می‌‌بینید، یک ساختار شرطی if-then-else است که در اکثر زبان‌‌‌ها‌‌ی برنامه‌نویسی وجود دارد‌‌:

If c='0' then
F <= A;
else
F <= B;
end if;

🔷 فرض کنید که این کد، بخشی از یک کد به زبان C است که قرار‌‌ است توسط یک پرداز‌‌ند‌‌ه اجرا شود.

🔷 دستور if-then-else قبلاً برای CPU تعریف شده است و CPU در هنگام مواجه شدن با این دستور، با توجه به مقدار C مقدار A یا B را به F منتقل می‌کند‌‌.

🔷 به این ترتیب که اگر C مساوی صفر باشد، A به F منتقل می‌شود؛ در غیر این‌‌ صورت، B به F منتقل می‌شود‌‌.

اما اگر فرض کنیم این عبارات، توصیف‌‌‌کنند‌‌ه‌‌‌ی یک سخت‌‌‌افزار دیجیتال هستند، چه سخت‌افزاری را توصیف می‌کنند؟

احتمالا درست خدس زدید! این عبارات، توصیف‌‌‌کنند‌‌ه‌‌‌ی یک مالتی‌‌‌پلکسر دو به یک هستند‌‌.

در مالتی‌‌‌پلکسر دو به یک‌‌، با توجه به مقدار C، یکی از ورود‌‌ی‌‌‌ها‌‌ی A یا B به خروجی F منتقل می‌شود‌‌.

🔷 همان‌‌طور که می‌‌‌بینید، این کد هم دقیقاً این مفهوم دیجیتال را معرفی و توصیف می‌کند‌‌.

بنابراین،‌‌ در این کد سخت‌‌‌افزار‌‌ی‌‌، دستور‌‌ی برای اجرا در CPU وجود ندارد، بلکه یک ساختار یا یک توصیف از یک مدار سخت‌‌‌افزار‌‌ی دیجیتالی است.

🔷 با نوشتن این کد در نرم‌افزار پیاده‌سازی مانند ISE و انجام مراحل تولید کد پیکربندی (بیت‌فایل) و انتقال آن به FPGA، یک مدار مالتی‌‌‌پلکسر دو به یک‌‌ در FPGA پیاده‌سازی می‌شود.

زبان‌‌‌ها‌‌ی توصیف سخت‌‌‌افزار‌‌ی مختلفی در دنیا وجود دارند؛ زبان‌های VHDL و Verilog از معروف‌‌‌ترین و پرکاربرد‌‌ترین آن‌ها هستند.

اگرچه این دو زبان در ظاهر و ساختار‌‌ تفاوت‌‌‌ها‌‌یی دار‌‌ند ولی به‌کمک هر دو زبان می‌‌‌توانید هر نوع مدار دیجیتالی را توصیف کنید‌‌ و تفاوتی در قابلیت‌های آن‌ها وجود ندارد.

✳️ برای اطلاعات بیشتر از نحوه‌ی پیدایش زبان VHDL و ساختار اصلی آن، مقاله‌ی زیر از سایت فراداندیش را ببینید:

🌎 https://bit.ly/DescriptCircuit

🆔 @FPGA0
❇️ سمینار آنلاین (رایگان)

⚡️ روش ۷-مرحله‌ای پیاده‌سازی هر نوع الگوریتم پردازش سیگنال در FPGA

♦️ ثبت‌نام رایگان 👇

🌏 https://faradandish.com/lp/signal-processing-webinar

🔺 این سمینار آنلاین روز چهارشنبه ۸ مرداد ساعت ۱۹ برگزار می‌شود.

🆔 @FPGA0
برای افزایش سرعت مدار از کدام روش می‌توان استفاده کرد؟
Anonymous Quiz
5%
رعایت الگوی استاندار کدنویسی
9%
پایپ لاین
6%
موازی‌سازی
79%
همه موارد
♨️ روش‌های افزایش سرعت یک مدار دیجیتال را در مجموعه پست زیر مطالعه کنید:👇👇👇

https://t.me/fpga0/798
https://t.me/fpga0/799
https://t.me/fpga0/803
https://t.me/fpga0/805

🆔 @FPGA0
❇️ هر مدار دیجیتالی از مجموعه‌ای از مدارات کوچک و پایه تشکیل شده است

🔷 در میان این مدارات پایه، احتمالا پرکاربردترین آنها، شمارنده‌ها هستند

🔷 شمارنده‌ها آنقدر پرکاربرد هستند که بعید می‌دانم طرح دیجیتالی را بتوان بدون آنها ساخت

🔷 اما کاربردهای اصلی شمارنده‌ها در مدارات دیجیتال چیست و چطور می‌توان از آنها برای پیاده‌سازی در FPGA استفاده کرد؟

🔶 در جدیدترین مقاله سایت فراد اندیش که همکارم منتشر کرده‌اند، به طور مفصل در مورد این موضوع توضیح داده شده است 👇

🆔 @FPGA0
🆔 @FPGA0
#مقاله۱۰
🎓 شمارنده چگونه می‌تواند مشکلات شما در پیاده‌سازی را حل کند؟

📚 نوشته فاطمه مشاک

📥 در سایت فراد اندیش بخوانید 👇👇👇👇

🌎 https://bit.ly/DigitalCounter
❇️ ۱۵ سال پیش در محل کار، با چالشی جدی برای پیاده‌سازی یک الگوریتم پردازش سیگنال ساده در FPGA رو به رو شدم

🔷 در آن موقع ادعا کردم که می‌توانم این کار را به سادگی انجام دهم و همین چالش من را پیچیده‌تر هم کرد!

🔷 بالاخره به هر زحمتی بود، آن پروژه ساده را انجام دادم اما...

🔷 من نیاز به روشی سیستمی داشتم که بتوانم الگوریتم‌های بعدی را بدون مشکل و چالش جدی پیاده‌سازی کنم

🔷 علی‌رغم عدم دسترسی به منابع متنوع و مرتبط، به زحمت زیاد و بعد از چند سال توانستم سیستمی را ایجاد کنم که به من کمک می‌کرد در ۷ مرحله مشخص، هر نوع الگوریتم پردازش سیگنال را در FPGA پیاده‌سازی کنم.

🔷 در ۱۵ سال گذشته، ده‌ها پروژه مهم صنعتی را به کمک همین روش با موفقیت مدیریت و پیاده‌سازی کردم و...

🔷 مطمئن هستم شما هم می‌توانید از همین سیستم برای انجام پروژه‌های خودتان به راحتی استفاده کنید

🔷 به همین دلیل تصمیم گرفتم سمینار آنلاینی برگزار کنم و در آن تمام مراحل ۷ گانه پیاده‌سازی الگوریتم‌های پردازش سیگنال در FPGA را به کمک یک مثال ساده برای شما تشریح کنم

🔶 اگر علاقمندید با این مهارت بسیار جذاب و پرکاربرد آشنا شوید، پیشنهاد می‌کنم همین حالا روی لینک زیر کلیک کنید و در این سمینار به صورت رایگان ثبت‌نام کنید:

🌏 https://faradandish.com/lp/signal-processing-webinar

♦️ این سمینار آنلاین، روز چهارشنبه ۸ مرداد ساعت ۷ بعد از ظهر برگزار می‌شود.

🆔 @FPGA0
پاسخ به سه سوال در مورد سمینار آنلاین چهارشنبه ۸ مرداد...

1️⃣ آیا فیلم این سمینار را بعدا می‌توانیم تهیه کنیم؟

☑️ خیر. این سمینار ضبط نمی‌شود و برای مشاهده آن باید در زمان گفته شده از طریق لینکی که بعد از ثبت‌نام به شما ارسال می‌شود به صورت آنلاین در آن شرکت کنید.

2️⃣ روش شرکت در این سمینار آنلاین چگونه است؟

☑️ بعد از ثبت‌نام رایگان در سمینار، ایمیلی به شما ارسال می‌شود که لینک ورود به سمینار در آن وجود دارد. فقط کافی است در زمان برگزاری سمینار، روی لینک کلیک کنید تا وارد سمینار آنلاین شوید.

3️⃣ آیا شرکت در این سمینار نیاز به پیش‌نیاز خاصی دارد؟

☑️ خیر. البته برای به کار گیری تکنیک‌های پیاده‌سازی لازم است که آشنایی نسبی با FPGA داشته باشید ولی برای یادگیری مطالب سمینار نیاز به پیش‌نیازی نیست.

♦️ برای ثبت‌نام در سمینار آنلاین، روی لینک زیر کلیک کنید 👇

🌏 https://faradandish.com/lp/signal-processing-webinar

🆔 @FPGA0
⚡️ نحوه‌ی پیدایش زبان VHDL و ساختار آن

🔷 نام VHDL، مخفف عبارت VHSIC Hardware Description Language است‌‌.

🔷 حرف V خود مخفف Very High Speed Integrated Circuit است‌‌.

بنا‌‌بر‌‌این‌‌، VHDL مخفف زبان توصیف سخت‌‌‌افزار‌‌ی مدار‌‌ات مجتمع با سرعت بسیار زیاد است‌‌.

🔷 زبان VHDL ابتدا توسط وزارت دفاع آمریکا ابداع شد‌‌.

🔷 در آن زمان، هدف از ابداع این زبان، پیاده‌‌‌ساز‌‌ی یک سیستم دیجیتال نبود؛ بلکه قصد داشتند به‌کمک آن، مدار‌‌اتی که قبلاً پیاده‌‌‌ساز‌‌ی کرد‌‌ه بودند را مستند‌‌ساز‌‌ی کنند‌‌.

🔷 هدف دیگر، انجام مدل‌‌‌ساز‌‌ی‌‌‌ها‌‌ی مدار‌‌ات دیجیتال بود‌‌.

🔷 اما بعد‌‌ها، از این زبان برای پیاده‌‌‌ساز‌‌ی سیستم‌‌‌ها‌‌ی دیجیتال استفاده شد‌‌.

نهایتاً، این زبان توسط سازمان IEEE استانداردساز‌‌ی شد و زبان VHDL فعلی که ما در حال استفاده از آن هستیم، زبان استاندارد شد‌‌ه‌ در سازمان IEEE است‌‌.

🔷 همان‌طور که در پست قبل گفتم، زبان VHDL یک زبان برنامه‌‌‌نویسی نیست؛ بلکه زبانی ا‌‌ست که به‌کمک آن می‌توانیم یک طرح سخت‌‌‌افزار‌‌ی را توصیف کنیم‌‌.

🔷 به‌طور کلی، می‌توان یک مدار دیجیتال را به دو بخش تقسیم کرد‌‌:

1⃣ بخش پایه‌‌‌ها‌‌، پین‌‌‌ها‌‌ یا پورت‌‌‌ها‌‌ی ورود‌‌ی-خروجی

2⃣ بخش مدار داخلی

هر کد VHDL نیز از دو بخش تشکیل شد‌‌ه است‌‌؛ بخش Entity و بخش Architecture

🔷 در اصطلاحِ VHDL، به پایه‌ها یا پورت‌‌‌ها‌‌ی ورود‌‌ی-خروجی مدار، Entity و به مدار داخلی Architecture گفته می‌شود‌‌.

🔷 در بخش Entity از کد، پور‌ت‌های مدار را تعریف می‌کنیم.

🔷 در واقع، ابتدا برای هر پورت نامی تعیین می‌کنیم.

🔷 سپس، مشخص می‌‌‌کنیم که آن پورت، ورود‌‌ی‌‌، خروجی یا دو طرفه است.

🔷 پس از آن، نوع داده‌ای که می‌توان درون پورت قرار گیرد را مشخص می‌‌‌کنیم‌‌.

اما بخش اصلی یک کد VHDL، بخش Architecture است که یک مدار دیجیتال را در آن توصیف می‌کنیم‌‌.

برای مطالعه‌ی نکات اصلی زبان VHDL، به مجموعه مقالات زیر از سایت فراد اندیش مراجعه کنید:

🌎 http://bit.ly/VHDL-1

🌎 https://bit.ly/VHDL-2

🌎 https://bit.ly/VHDL-3

🌎 https://bit.ly/VHDL-4

🆔 @FPGA0
❇️ برگزاری مجدد سمینار آنلاین...

⚡️ ۷ گام پیاده‌سازی الگوریتم‌های پردازش سیگنال در FPGA

🔹 با توجه به عدم موفقیت بسیاری از ثبت‌نام کنندگان در سمینار آنلاین هفته پیش برای شرکت در آن، این سمینار آنلاین مجددا روز چهارشنبه ۱۵ مرداد تکرار خواهد شد.

♦️ ثبت‌نام رایگان 👇

🌏 https://faradandish.com/lp/signal-processing-webinar

🆔 @FPGA0
روش بهینه برای پیاده‌سازی اعداد علامت‌دار در FPGA کدام است؟
Anonymous Quiz
24%
روش sign & magnitude
12%
روش one's complement
65%
روش tow's complement
♨️ در مجموعه پست زیر با روش‌های مختلف پیاده‌سازی اعداد علامت‌دار و ویژگی‌های هر کدام آشنا می‌شوید: 👇👇👇

https://t.me/fpga0/811
https://t.me/fpga0/812
https://t.me/fpga0/817

🆔 @FPGA0
⚡️ تبدیل انواع داده به یکدیگر در زبان VHDL (قسمت اول)

🔷 در پیاده‌سازی مدارات دیجیتال به کمک زبان VHDL گاهی نیاز دارید انواع داده را به یکدیگر ارجاع دهید.

🔷 از طرف دیگر، با توجه به قوانین ارجاع در زبان VHDL، نوع (type) تمام سیگنال‌های حاضر در یک ارجاع باید یکسان باشد.

🔷 بنابراین، در کدنویسی VHDL نیاز دارید از قابلیت «تبدیل نوع»‌ یا «Type Conversion» استفاده کنید.

به طور کلی، در زبان VHDL چهار نوع‌ داده‌ی برداری داریم:

1⃣ نوع std_logic_vector
2⃣ نوع بدون‌ علامت (unsigned)
3⃣ نوع علامت‌دار (signed)
4⃣ نوع integer


در پست‌های آینده، درباره‌ی نحوه‌ی تبدیل این داده‌های برداری به یکدیگر صحبت خواهم کرد.

ادامه دارد...
🆔 @FPGA0
⚡️ موقعیت شغلی جدید در مرکز تهران...

🔹 در یک شرکت دانش بنیان به چند کارشناس برق به صورت تمام وقت یا نیمه وقت در حوزه‌های زیر نیاز است:

1️⃣ شبیه‌سازی الگوریتم‌ها و پردازش سیگنال و سنسورها (کارشناسی یا ارشد برق)
2️⃣ کدنویسی ARM و FPGA و طراحی PCB (حوزه الکترونیک یا الکترونیک قدرت) (کارشناسی یا ارشد برق)
3️⃣ مونتاژ، تست و راه اندازی برد (دیپلم یا کارشناسی برق)

🔺 با بیمه
🏢 محل کار: دانشکده فنی دانشگاه تهران

❇️ اگر فکر می‌کنید مهارت و علاقه شما حداقل با یکی از موارد بالا تطبیق دارد، لطفا رزومه‌تان را به ایمیل زیر ارسال کنید.:

📭 edu@faradandish.com

☎️ رزومه شما به شرکت مورد نظر ارسال خواهد شد و آنها پس از بررسی، در صورت نیاز با شما تماس خواهند گرفت.

🆔 @FPGA0
⚡️ تبدیل انواع داده به یکدیگر در زبان VHDL (قسمت دوم)

در پست قبلی گفتیم که برای رعایت قوانین ارجاع در زبان VHDL، باید تمامی سیگنال‌های حاضر در یک ارجاع، نوع یکسان داشته باشند.

در این مجموعه پست، روش‌های تبدیل انواع داده به یکدیگر را در سه دسته بیان خواهم کرد.

❇️ دسته‌ی اول: این دسته شامل تبدیل نوع std_logic_vector ،unsigned و signed به یکدیگر است.

◀️ مثال. ارجاع زیر را در نظر بگیرید:

B <= A;

🔹 فرض کنید:

سیگنال A: از نوع std_logic_vector
سیگنال B: از نوع علامت‌دار

🔹 با توجه به قانون ارجاع ساده، چنین ارجاعی قابل انجام نیست و حتما باید تبدیل نوع انجام دهیم.

طبق قواعد زبان VHDL، همیشه باید نوع سیگنالی که قرار است به سیگنال دیگر منتقل شود را تغییر دهیم.

🔹 بنابراین، در این مثال باید نوع سیگنال A را به signed تغییر دهیم؛ برای این کار به صورت زیر عمل می‌کنیم:

B <= signed (A);

ادامه دارد...
🆔 @FPGA0