هایتن

اگر خواستید چیزی خلق کنید مثل یک نقاشی یا مثل یک رادیوی دیجیتال

هایتن

اگر خواستید چیزی خلق کنید مثل یک نقاشی یا مثل یک رادیوی دیجیتال

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

1. مطالب به سه دسته سطح یک و دو و سه تقسیم میشن، سطح سه از همه آسون‌تره.
2. این وبلاگ یک دوره آموزشی منظم نیست حالا شانستون مطلبی که بهش نیاز دارین توش باشه یا نباشه. مطالبی که ارائه میشه فعلا ساختار مشخصی نداره.

طبقه بندی موضوعی
بایگانی

سلام

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

امروز می‌خوام در مورد درست کردن پروژه Vivado با Cygwin صحبت کنم. سیگوین یه نرم افزاره که محیط لینوکس رو تو ویندوز شبیه سازی می‌کنه. مزیت کار با سیگوین اینه که تمام آی‌پی‌ها و اینترفیس‌ها رو به ترتیب درستش می‌سازه و نیازی نیست شما دستی این کار رو بکنید، به هر حال برای پروژه‌هایی که تو github هست استفاده از سیگوین بهتره. مثلا من در حین اینکه این پست رو می‌نوشتم پروژه راه اندازی AD9361 رو با سیگوین ساختم. الان دارم برای ساخت پروژه fpga و راه اندازی ماژول AD9371 از این نرم افزار استفاده می‌کنم. البته هنوز راه نیفتاده، AD9361 ساده‌تر بود ولی این یکی یک مقدار تخسه. می‌تونید از این صفحه برای ساخت پروژه Vivado استفاده کنید. سیگوین رو از اینجا  دانلودش کنید. یه سری Package داره شما باید shell و make (توی Devel) رو هم تیکش رو بزنید. وقتی installer رو اجرا کردید همه رو دیفالت اوکی کنید تو پنجره Select Packegas زیر شاخه Devel و شاخه Shells ، make  و bash رو انتخاب کنید.  Git رو تو همون صفحه سیگوین لینک داده می‌تونید دانلودش کنید. بعدش می‌تونید از این صفحه برای ساخت پروژه Vivado استفاده کنید. برای git clone از پروتکل https استفاده کنید. Ssh یک مقدار فرآیندش پیچیده است. یعنی به جای دستور

git clone git@github.com:analogdevicesinc/hdl.git

از دستور

git clone https://github.com/analogdevicesinc/hdl.git

استفاده کنید. اگر git clone رو زدید خطا داد، برید تو git،

git remote add origin  git@github.com:analogdevicesinc/hdl.git

رو بزنید. احتمالا باید درست بشه.

 اگر دستور make خطا داد برید تو آخرین دیرکتوری که ازش خارج شده، یه فایل .log اونجا هست که یه گزارش از دستورات انجام شده رو توش ثبت کرده، تو چند خط آخرش علت خطا رو گفته، مثلا ممکنه خطا مربوط به ورژن یا چیزی شبیه به این باشه. 

+ خود سیگوین هم بسته گیت رو داره و نیازی نیست اون رو جداگانه دانلود کنید وقتی می خواید بسته make و shell رو اد کنید git رو هم اد کنید. 

۰ نظر موافقین ۰ مخالفین ۰ ۰۹ دی ۹۶ ، ۲۱:۵۹
هایـ تن

و اما FPGA

آنچه در این پست یاد می گیرید:

1.       مفهموم کلی FPGA

2.       فرق FPGA با میکرو کنترلر

3.       شرکت‌های عمده سازنده FPGA

4.       نرم افزارهای مورد استفاده برای برنامه ریزی FPGA

FPGA یک آی سیه شبیه همه‌ی آی سی‌های دیگه. شما تو کامپیوتر، گوشی تلفن همراه، تلویزیون دیجیتال، ماشین حساب و غیره حتما یک آی سی پردازنده دارید که به عنوان مغز این دستگاه عمل می‌کنه. این آی سی‌ها رو شرکت تولیدکننده برنامه‌ریزی می‌کنه و به شما می‌فروشه. FPGA مزیتش اینه که یک آی سی بی‌جانه و شما برنامه‌ریزیش می‌کنید، یعنی خیلی هم بی جان نیست قابلیت برنامه‌ریزی مجدد داره واسه همین اسمش FPGA است Field Programmable Gate Arrays یعنی آرایه‌ای از از گیت‌های منطقی که قابلیت برنامه‌ریزی میدانی (در محیط عملیاتی یا کاربردی) رو دارن. مثلا شما می‌تونید با FPGA یک تلفن همراه، یک تلویزیون دیجتال، یک ماشین حساب یا هر چیز دیگه ای که پردازش دیجیتال انجام میده بسازید. شاید بعضی از شماها اسم میکروکنترلر یا میکروپروسسور را شنیده باشین (مثلا AVR)، اینها مثل FPGA نیستن که قابلیت برنامه ریزی مجدد داشته باشن یک سری ماژول‌های آماده هستن و شما برای استفاده از قابلیت اونا یک application می‌نویسید. مثلا مثل یک کامپیوتر هستن که شما با یک زبان برنامه نویسی مثل C یک اپلیکشین می‌نویسید تا کار مورد نظرتون را باهاش انجام بدید در واقع شما کامپیوتر نمی‌سازید بلکه از امکاناتش استفاده می‌کنید اما با FPGA شما واقعا یک کامپیوتر می‌سازید.

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

میکروکنترلر برای کار در سرعت‌ها و حجم پردازش بالا مناسب نیست مثلا شما اگر در کامپیوتر یک برنامه سنگین اجرا کنید احتمالا نمی تونید برنامه دیگه‌ای رو همزمان اجرا کنید، و همون برنامه هم نمی تونه با سرعتی بیشتر از سرعت CPU اجرا بشه، محدودیت دارید. اما در FPGA این محدودیت رو ندارید، دلیلش رو در آینده می فهمید. یک مزیتی که میکرو به FPGA داره انعطاف پذیری اونه یعنی مثلا شما یک برنامه به زبان C نوشتید خیلی راحت می‌تونید پارامترهای برنامه رو تغییر بدید ولی در FPGA این کار خیلی سخته. به همین خاطر شرکت‌های بزرگ اومدن داخل FPGA یک میکروکنترلر هم گذاشتن تا قسمت‌هایی که نیاز به انعطاف داره رو اونجا بنویسن و قسمت‌هایی که یک پردازش ثابت انجام میشه رو داخل FPGA بنویسن. اینطوری هم از قدرت پردازش بالای FPGA استفاده می‌کنن و هم از انعطاف پذیری میکروکنترلر.

دو تا شرکت عمده تولید‌کننده FPGA داریم Xilinx و AlteraFPGA‌های این دو شرکت مشترکات زیادی دارن ولی از نرم‌افزارهای متفاوتی برای برنامه‌ریزی FPGA استفاده می‌کنن. Xilinx در حال حاضر از نرم افزار Vivado استفاده می‌کنه (در نسخه‌های قبلی از ISE استفاده می‌کرد) و Altera از نرم افزار Quartus استفاده می‌کنه. من با FPGA‌های Xilinx کار می‌کنم. شرکت زایلینکس خانواده‌های متفاوتی از FPGA رو ارائه داده که چند تاشون که در ذهنم هست Spartan، Virtex، Artix، Kintex و Zynq هستن که هر کدوم بسته به کاربرد، ویژگیهای متفاوتی دارن.

اولین کاری که برای کار بر روی FPGA انجام بدید اینه که نرم افزار Vivado رو نصب کنید. من الان دارم از Vivado 2015.4 تو لپ تاپم استفاده می کنم و فکر می کنم همین برای شما هم مناسب باشه. حجم نرم افزارش چند گیگ هست و برای نصبش باید حداقل 20 گیگ خالی داشته باشید. 

۲ نظر موافقین ۱ مخالفین ۰ ۰۸ دی ۹۶ ، ۲۲:۱۱
هایـ تن