دوستان عزیز پازجی سلام!

در این پست و پست‌های بعدی قصد دارم شما را با محیط توسعه‌ی DesignLab آشنا کنم و با یکدیگر یک پروژه‌ی نمونه را با استفاده از این نرم افزار روی برد پازج-1 اجرا کنیم. مطمئنا بسیاری از شما نیز مانند من پس از آشنایی با قابلیت‌های این IDE عاشق آن خواهید شد!

معرفی

DesignLab یک محیط توسعه (IDE) منبع باز برای کار با بردهای Papilio است. این IDE بسیار شبیه به Arduino-IDE است و در واقع یک انشعاب (fork) از آن است که برای کار با FPGA سفارشی سازی شده است. سبک کد نویسی در این محیط کاملا منطبق بر الگوی کدنویسی آردوینو است.

اما برخلاف آردوینو که بستر سخت‌افزاری آن یک میکروکنترلر (عموما AVR) است، بستر سخت افزاری بکار رفته در DesignLab یک هسته‌ی SoftCore 32 بیتی به نام ZPUino با فرکانس کاری 96MHz است که با اضافه کردن پریفرالهای مورد نیاز به آن، امکان سفارشی سازی آن بطور کاملا منطبق با نیازهای سخت‌افزاری پروژه وجود دارد. بعنوان نمونه این امکان وجود دارد که 10 واحد UART مجزا داشته باشید که هر کدام مستقل از دیگری کار میکند و یا روی هر پین یک پالس PWM با رزولیشن و فرکانس بالا ایجاد کنید!

ساده برای مبتدیان، پربار برای حرفه‌ای‌ها!

اما اگر شما تازه پا به دنیای FPGA گذاشته اید و هنوز با زبان‌های توصیف سخت‌افزار (مانند VHDL یا وریلاگ) مانوس نشده‌ایده، باید بگویم که DesignLab برای شما یک سورپرایز به تمام معنا است، چرا که با کمک آن میتوانید بدون نوشتن حتی یک خط کد VHDL یا Verilog، و صرفا با Drag & Drop بلوک‌ها در محیط شماتیک، یک System-On-Chip (SoC) صد-در-صد سفارشی و منطبق بر نیازهای خودتان را بسازید و با یک کلیک آن را روی برد بارگذاری کنید!

طراحی سخت‌افزار در محیط شماتیک ISE

کتابخانه‌ی Papilio Circuit Library

اما شاید جالب انگیزناک‌ترین(!) ویژگی ZPUino برای حرفه‌ای‌ترها اینترفیس ارتباطی آن یعنی باس محبوب Wishbone باشد که امکان استفاده از گستره‌ی وسیعی از Core های رایگان موجود در اینترنت و بطور خاص سایت opencores.org را فراهم میکند. تعداد زیادی از این core ها هم اکنون در کتابخانه‌ای تحت عنوان Papilio Circuit Library گردآوری شده که همراه با Designlab نصب می‌شوند. فهرستی از محتویات این کتابخانه در جدول زیر نمایش داده شده است:

لیست Core های موجود در کتابخانه‌ی Circuit Library

ملاحظه می‌کنید که رنج وسیعی از Peripheral ها در این فهرست به چشم می‌خورند؛ از چیپ‌های صوتی قدیمی گرفته تا کنترلر Stepper motor! همچنین امکان استفاده از کورهای موجود در سایت opencores نیز به سادگی میسر است که انشاءالله در پست‌های آتی به آن خواهیم پرداخت.

لاجیک آنالیزر

یکی دیگر از جذابیت‌های DesignLab، قابلیت Logic Analyzer آن است. با استفاده از این قابلیت شما میتوانید یک  لاجیک آنالایزر 8 کاناله درون سخت‌افزار خود تعبیه کنید و مقادیر واقعی سیگنالها را مشاهده کنید؛ تقریبا چیزی معادل Chipscope در نرم‌افزار ISE، با این تفاوت که استفاده از آن بسیار ساده‌تر است. با استفاده از این لاجیک آنالیزر نه تنها می‌توانید مقادیر سیگنالهای داخلی طرح را مشاهده کنید، بلکه می‌توانید برد FPGA خود را عملا تبدیل به یک لاجیک آنالیزر 32 کاناله کنید و برای دیباگ سایر پروژه‌های الکترونیکی خود بکار گیرید! (در این صورت فراموش نکنید که سطح ولتاژ قابل تحمل لاجیک آنالایزر شما 3.3 ولت است و برای اتصال ولتاژهای بالاتر مثل 5 ولت، بایستی از level shifter مناسب استفاده کنید!).

استفاده از LogicAnalyzer جهت دیباگ طرح

جهت آشنایی بیشتر با این محیط جذاب و دوست داشتنی بهتر است نگاهی به ویدئوهای آموزشی زیر از سایت Gadget factory بیندازید. در پست بعدی مراحل نصب و اجرای اولین پروژه با استفاده از DesignLab بر روی برد پازج-1 را بررسی خواهیم کرد.