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

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

📌 لینک اولین پست کانال:
https://t.me/fpga0/22
Download Telegram
⚡️ چگونه یک مدار دیجیتال را برای 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
⚡️ تبدیل انواع داده به یکدیگر در زبان VHDL (قسمت سوم)

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

در این پست، دسته‌ی دوم را بررسی می‌کنیم.

❇️ دسته‌ی دوم: این دسته شامل تبدیل سیگنال‌های unsigned و signed به integer است.

🔷 فرض کنید سیگنال هشت بیتی X در کد ما وجود دارد و با توجه به مقدار سیگنال سه بیتی i که ورودی مدار و از نوع unsigned است می‌خواهیم بیت iام سیگنال X را به سیگنال تک بیتی Y ارجاع دهیم.

🔷 این کار را می‌توانیم به کمک تابع ()to_integer به صورت زیر انجام دهیم:

Y <= X(to_integer(i));

🔷 در این کد، نوع سیگنال i را به کمک تابع ()to_integer از unsigned به integer تغییر داده‌ایم چون نوع اندیس یا آرگومان یک سیگنال حتما باید integer باشد.

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

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

در این پست، دسته‌ی سوم را بررسی خواهیم کرد.

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

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

◀️ فرض کنید می‌خواهیم مقدار ۴۴ را به سیگنال بدون علامت و ۱۳ بیتی X ارجاع دهیم.

روش اصولی برای مقداردهی سیگنال، استفاده از تبدیل نوع integer به unsigned است:

X <= to_unsigned(44,13);

در واقع، تبدیل to_unsigned، یک عدد integer را به یک عدد بدون‌ علامت تبدیل می‌کند. در این مثال، عدد ۱۳ بیانگر عرض بیت سیگنال است.

برای آشنایی بیشتر با جزئیات تبدیل نوع در زبان VHDL و بررسی چند مثال مفصل‌تر، پیشنهاد می‌کنم مقاله "کاربردهای تبدیل انواع داده در کدنویسی به زبان VHDL" را در سایت فراد اندیش مطالعه کنید 👇

🆔 @FPGA0