کتاب Getting Started with FPGAs (شروع کار با FPGA) در 11 فصل به شرح مباحث مهم و فنی در FPGA ها و نکات مهم آنها خواهد پرداخت.
در ادامه مقدمهای از کتاب Getting Started with FPGAs را از زبان نویسنده شرح خواهیم داد.
مقدمهای بر کتاب Getting Started with FPGAs:
در اولین کار خارج از کالج به عنوان یک مهندس برق سطح ابتدایی، یک بار روی یک طرح قدیمی کار کردم که مدار تایمر روی آن وجود داشت. با استفاده از یک مقاومت و خازن ساده، مدار 50 میلیثانیه صبر میکند تا سپری شود، سپس یک عمل را آغاز میکند. ما نیاز داشتیم تایمر 50 میلیثانیه را به 60 میلیثانیه تغییر دهیم، اما این تغییر کوچک به تلاشی عظیم نیاز داشت: باید خازنها و مقاومتها را از صدها برد مدار به طور فیزیکی حذف کرده و با خازنهای جدید جایگزین کنیم.
خوشبختانه، ما تیمی از طراحان آرایه دروازه قابل برنامهریزی میدانی (FPGA) داشتیم که به کمک آمدند. با کمک آنها، ما توانستیم همان عملکرد را در یک FPGA پیادهسازی کنیم.
سپس، در عرض چند دقیقه، میتوانیم کد را تغییر دهیم تا تایمر را روی هر مقدار دلخواه تنظیم کنیم، بدون اینکه نیازی به دست زدن به آهن لحیم کاری باشد. این سرعت سریعتر پیشرفت، من را هیجانزده کرد، و به سرعت به FPGAها وابسته شدم.
در نهایت به کار تمام وقت با FPGA ها روی آوردم و در همان زمان بود که شروع به خواندن و پاسخ دادن به سوالات مربوط به FPGA در Stack Overflow کردم.
اغلب این سوالات از مبتدیان FPGA که در مورد مفاهیم اساسی سردرگم شده بودند، میآمد. من بارها و بارها سؤالات مشابهی را دیدم و متوجه شدم که مکان واحدی وجود ندارد که مردم بتوانند در مورد FPGA ها به روشی ساده و قابل درک بیاموزند.
مطمئناً، مراجع آنلاین زیادی برای Verilog و VHDL، دو زبان برنامهنویسی FPGA محبوب وجود داشت، اما اطلاعات نسبتا کمی در مورد آنچه که آن زبانها واقعاً انجام میدادند وجود داشت. هنگام نوشتن یک خط کد خاص، واقعاً چه اجزایی در FPGA شما ایجاد میشود؟ کارها چگونه سیم کشی میشوند؟ اجرای عملیات موازی در مقابل سریال به چه معناست؟
به جای ادامه دادن به پاسخگویی به سوالات یکسان، وب سایت خود را راه اندازی کردم، https://nandland.com، جایی که شروع به نوشتن مقالات طولانی تر در مورد FPGA کردم. با افزایش ترافیک، شروع به ساختن ویدیوهای YouTube نیز کردم. من حتی برد توسعه FPGA خود را ایجاد کردم تا تجربه عملی را برای مبتدیان فراهم کنم.
در تمام این تلاشها، هدف من ابهامزدایی از FPGA بوده و در عین حال اطلاعات را برای کسانی که تازه شروع به کار کردهاند قابل دسترس و جذاب میسازم. نوشتن این کتاب به من این امکان را داد که حتی عمیقتر به موضوع بپردازم، تا پایهای محکم برای هر کسی که علاقهمند به کاوش در دنیای هیجانانگیز طراحی FPGA است، بسازم.
کتاب Getting Started with FPGAs برای چه افرادی است؟
من سعی کرده ام این کتاب را تا حد امکان در دسترس قرار دهم تا طیف وسیعی از مردم بتوانند مطالب را بخوانند و درک کنند. مخاطب مورد نظر هر کسی است که کنجکاو است که چگونه منطق قابل برنامه ریزی دیجیتال کار میکند و چگونه میتوان از FPGA برای حل طیف گسترده ای از مشکلات استفاده کرد.
شاید شما یک دانشجوی کالج باشید که در یک کلاس با FPGA مواجه شده اید و شیفته اما گیج شده اید، یا فردی در صنعت الکترونیک باشید که در محل کار در معرض FPGA ها قرار گرفته است. شاید شما یک هکر سخت افزاری یا یک هکر سخت افزاری یا یک توسعه دهنده نرم افزار باشید که علاقه مند به برنامهنویسی در سطح بسیار پایین تری نسبت به قبل هستید. این کتاب برای همه این گروهها بسیار قابل دسترس است.
من فرض میکنم که شما حداقل تا حدودی با یک زبان برنامهنویسی معمولی مانند پایتون، C یا جاوا اسکریپت آشنا شده اید. اگر مفاهیمی مانند توابع، عبارات شرطی (if…else)، حلقهها و سایر تکنیکهای برنامهنویسی پایه را درک کنید، مفید خواهد بود. با این حال، نیازی به تجربه قبلی با Verilog یا VHDL ندارید. این کتاب به معرفی اصول اولیه این زبانها میپردازد.
FPGA ها در تقاطع سخت افزار و نرم افزار قرار دارند، بنابراین داشتن مقداری علاقه به الکترونیک مفید است. ما گاهی در مورد مفاهیمی مانند ولتاژ و جریان در FPGA بحث خواهیم کرد. در اینجا دوباره، اگر مقدمهای برای این شرایط داشته باشید، مفید خواهد بود، اما نیازی به دریافت ارزش از آن بخشها نیست.
آنچه کتاب Getting Started with FPGAs نیست؟
این کتاب قصد ندارد تمام جنبههای Verilog یا VHDL را به شما آموزش دهد. همانطور که قبلاً گفتم، اگر هدف شما این باشد، منابع آنلاین زیادی وجود دارد. در عوض، هدف من این است که به شما بیاموزم FPGA چگونه کار میکند تا بتوانید بفهمید Verilog یا VHDL شما چه کاری انجام میدهد و بنابراین انتخابهای هوشمندانهتری در مورد طرحهای خود داشته باشید. با این اوصاف، ما به مقدار زیادی کد در سراسر کتاب نگاه خواهیم کرد.
همه اینها به طور کامل توضیح داده شده است، بنابراین برای دنبال کردن آن نیازی به تجربه قبلی با این زبانهای برنامهنویسی نخواهید داشت. در حین مطالعه، پایهای قوی از دانش Verilog و VHDL به دست خواهید آورد و اعتماد به نفسی برای تقویت آن دانش از طریق مطالعه مستقل به دست خواهید آورد.
کتاب Getting Started with FPGAs شامل پروژههای مختلفی است که میتوانید با استفاده از خط iCE40 FPGA از Lattice Semiconductor روی سختافزار واقعی انجام دهید. من روی این FPGA های نسبتاً ارزان و ساده تمرکز کردهام تا قسمتهای عملی کتاب را تا حد امکان در دسترس قرار دهم. FPGA های گرانتر دارای زنگها و علامتهای اضافی هستند.
آنها بسیار باحال هستند، اما میتوانند برای مبتدیان بسیار زیاد باشند. FPGA های iCE40 هنوز هم توانایی بالایی دارند، اما تعداد کمتری از این ویژگیهای سطح بالا در دسترس هستند. به این ترتیب، کتاب Getting Started with FPGAs ویژگیهای پیچیدهای مانند SerDes و پردازندههای سختهسته را به صورت عملی بررسی نمیکند، و همچنین به ابزارهای پیچیدهتر FPGA مورد نیاز برای استفاده از آنها نمیپردازیم.
با این حال، برخی از این ویژگیها را در سطح بالایی مورد بحث قرار میدهیم، بنابراین اگر بخواهید به یک FPGA جذابتر ارتقا دهید، دانش پسزمینه کار با آنها را به دست خواهید آورد.
بیشتر بخوانید: کتاب AVR Workshop
در کتاب Getting Started with FPGAs چیست؟
این کتاب بحثهای سطح بالا، مثالهای کد دقیق و پروژههای عملی را ترکیب میکند. هر فهرست کد در Verilog و VHDL نشان داده میشود، بنابراین از هر زبانی که میخواهید برای توسعه FPGA استفاده کنید، میتوانید آن را دنبال کنید. همچنین یک واژه نامه گسترده در انتهای کتاب Getting Started with FPGAs برای مرجع شما وجود دارد. در اینجا چیزی است که در هر فصل خواهید یافت:
فصل 1 کتاب Getting Started with FPGAs: ملاقات با FPGA FPGA ها را معرفی میکند و در مورد نقاط قوت و ضعف آنها صحبت میکند. مهندس بودن به این معناست که بدانیم از کدام ابزار در چه سناریویی استفاده کنیم. درک اینکه چه زمانی باید از FPGA استفاده کرد – و چه زمانی نباید – بسیار مهم است.
فصل 2 کتاب Getting Started with FPGAs: راهاندازی سختافزار و ابزارها باعث راهاندازی سری Lattice iCE40 FPGA میشوید. ابزارهای FPGA را دانلود و نصب خواهید کرد و نحوه اجرای آنها را برای برنامه ریزی FPGA خود یاد خواهید گرفت.
فصل 3 کتاب Getting Started with FPGAs: جبر بولی و جدول جستجو یکی از دو مؤلفه اساسی FPGA را بررسی میکند: جدول جستجو (LUT). شما یاد خواهید گرفت که چگونه LUT ها جبر بولی را انجام میدهند و جای گیتهای منطقی اختصاصی را میگیرند.
فصل 4 کتاب Getting Started with FPGAs: حالت ذخیرهسازی با فلیپفلاپ دومین مؤلفه اساسی FPGA را معرفی میکند: فلیپفلاپ. خواهید دید که چگونه فلیپفلاپها در یک FPGA ذخیره میشوند و به دستگاه حافظه آنچه قبلاً رخ داده است میدهد.
فصل 5 کتاب Getting Started with FPGAs: تست کد شما با شبیهسازی درباره نحوه نوشتن تست میز برای شبیهسازی طرحهای FPGA شما و اطمینان از درست کارکردن آنها بحث میکند. دیدن آنچه در داخل یک FPGA فیزیکی واقعی میگذرد سخت است، اما شبیهسازیها به شما امکان میدهند نحوه رفتار کدتان را بررسی کنید، اشکالات را پیدا کنید و رفتارهای عجیب و غریب را درک کنید.
فصل 6: ماژولهای رایج FPGA نشان میدهد که چگونه میتوان برخی از بلوکهای ساختمانی اساسی مشترک در اکثر طرحهای FPGA، از جمله مالتی پلکسرها، دی مالتی پلکسرها، ثبتکنندههای شیفت، و اولین ورودی، اولین خروجی (FIFO) و دیگر ساختارهای حافظه ایجاد کرد. شما یاد خواهید گرفت که چگونه آنها کار میکنند و چگونه آنها را برای حل مشکلات پیچیده ترکیب کنید.
فصل 7 کتاب Getting Started with FPGAs: سنتز، مکان و مسیر، و عبور از دامنههای ساعتی روند ساخت FPGA را با جزئیات در مورد سنتز و مکان و مرحله مسیر گسترش میدهد. در مورد خطاهای زمان بندی و نحوه اجتناب از آنها و نحوه عبور ایمن بین دامنههای ساعت در طراحی FPGA خود خواهید آموخت.
فصل 8 کتاب Getting Started with FPGAs: ماشین حالت ماشین حالت را معرفی میکند، یک مدل رایج برای پیگیری جریان منطقی از طریق دنباله ای از رویدادها در یک FPGA. شما از یک ماشین حالت برای اجرای یک بازی حافظه تعاملی استفاده خواهید کرد.
فصل 9: FPGA های مفید اولیه سایر اجزای مهم FPGA به جز LUT و فلیپفلاپ، از جمله RAM بلوک، بلوک DSP، و حلقه قفل فاز (PLL) را مورد بحث قرار میدهد. استراتژیهای مختلف برای مهار این مؤلفهها را یاد خواهید گرفت و خواهید دید که چگونه مشکلات رایج را حل میکنند.
فصل 10 کتاب Getting Started with FPGAs: اعداد و ریاضی قوانین ساده برای کار با اعداد و اجرای عملیات ریاضی در یک FPGA را بیان میکند. تفاوت بین اعداد علامت دار و بدون علامت، عملیات نقطه ثابت و ممیز شناور و موارد دیگر را خواهید آموخت.
فصل 11: ورود و خروج دادهها با I/O و SerDes قابلیتهای ورودی/خروجی (I/O) یک FPGA را بررسی میکند. مزایا و معایب انواع مختلف اینترفیسها را یاد خواهید گرفت و با SerDes، یک ویژگی قدرتمند FPGA برای انتقال داده با سرعت بالا آشنا خواهید شد.
پیوست A: تابلوهای توسعه FPGA برخی از تابلوهای توسعه FPGA را پیشنهاد میکند که میتوانید برای پروژههای این کتاب استفاده کنید.
ضمیمه B: نکاتی برای یک شغل در مهندسی FPGA در صورتی که میخواهید طراحی FPGA را به صورت حرفه ای دنبال کنید، راهبردهایی را برای یافتن شغل مرتبط با FPGA بیان میکند. من پیشنهاداتی را در مورد چگونگی ساخت یک رزومه خوب، آماده شدن برای مصاحبه و مذاکره برای بهترین پیشنهاد شغلی ارائه خواهم کرد.
سرفصلهای کتاب Getting Started with FPGAs:
- Title Page
- Copyright
- Dedication
- About the Author and Technical Reviewer
- Acknowledgments
- Introduction
- 1. Meet the FPGA
- 2. Setting Up Your Hardware and Tools
- 3. Boolean Algebra and the Look-Up Table
- 4. Storing State with the Flip-Flop
- 5. Testing Your Code with Simulation
- 6. Common Fpga Modules
- 7. Synthesis, Place and Route, and Crossing Clock Domains
- 8. The State Machine
- 9. Useful FPGA Primitives
- 10. Numbers and Math
- 11. Getting Data in and Out with I/O and Serdes
- A. FPGA Development Boards
- B. Tips for a Career in FPGA Engineering
- Glossary
- Index
جهت دانلود کتاب Getting Started with FPGAs میتوانید پس از پرداخت، دریافت کنید.
دیدگاهها
هیچ دیدگاهی برای این محصول نوشته نشده است.