Raspberry-Pi-3-aa-03

آموزش FPGA-جلسه سوم-تاریخچه FPGA و سیستم های دیجیتال

آموزش FPGA-جلسه سوم-تاریخچه FPGA و سیستم های دیجیتال

Raspberry-Pi-3-aa-03شکل 1-4: برد Raspberry PI مبتنی بر سیستم عامل Linux

NXP_Cortex-M3شکل 1-5:میکرو کنترلر ARM از شرکت NXP

ArduinoMega

ArduinoUno1

 شکل 1-6 : برد  میکرو کنترلر Mega 2560 محصول  Arduino     شکل 1-7 : برد  میکرو کنترلر UNO محصول Arduino

سومین جلسه از مجموعه آموزش های FPGA شرکت نوین تراشه البرز را با بررسی میکروکنترلر ها (Microcontrollers) ادامه می دهیم. در دومین جلسه از آموزش FPGA، در مورد استفاده از هسته های ARM مبتنی بر سیستم عامل در داخل FPGA ها و تحت عنوان تکنولوژی SOC (به جلسه دوم آموزش FPGA رجوع کنید.) صحبت شد. از جمله مهمترین بردهای مطرح در این زمینه مبتی بر سیستم عامل می ­توان به Arduino Yun، Beagle bone Black، Intel Galileo و Raspberry Pi اشاره نمود. هر کدام یک از این بردها، دارای توانایی و قابلیت ­های متفاوتی هستند که متناسب با نوع نیاز کاربر و تنوع پروژه­ ها طراحی و ساخته شده ­اند. در شکل 1-4 برد  Raspberry Pi به عنوان یک نمونه از این برد های سیستم عاملی نشان داده شده است. وجود سیستم عامل هایی مثل Linux در حقیقت این برد ها را به یک کامپیوتر کوچک تیدیل کرده است. شاید بتوان گفت ابزار هایی مثل تبلت، تلفن های هوشمند و .. نتیجه ظهور تراشه های  ARM مبتنی بر سیستم عامل هستند. دوستانی که علاقه مند به دانستن اطلاعات بیشتر در این زمینه هستند، می توانند، به بخش مطالب آموزش و قسمت دوره آموزشی Embedded System در سایت شرکت نوین تراشه البرز مراجعه نمایند.

در شکل 1-5، یک تراشه ARM از شرکت NXP نشان داده شده است. در این گروه از تراشه های ARM، سیستم عامل دیگر نقش چندان مهمی نداشته و این تراشه ها با اهدافی متمایز وارد بازار الکترونیک شده اند. برای مثال، LPC4088 میکروکنترلری با مدرن ترین هسته ARM  است که با بهره گیری از این هسته پرقدرت یعنی CORTEX-M4  به گزینه قدرتمند، سریع و البته کاملاً اقتصادی برای کارهای پردازش سیگنال تبدیل شده است. این هسته پرسرعت به دلیل دارا بودن واحد FPU، مخفف سه کلمه Floating Point Unit، می تواند عملیات پردازشی را با سرعت بسیار زیادتری نسبت به هسته های فاقد FPU انجام دهد. همان گونه که در ابتدای جلسه سوم آموزش FPGA  گفته شد هدف اصلی این بخش بررسی ساختار میکرو کنترلر ها و جایگاه آنان می باشد. در عصر حاضر، علم و خلاقیت دو فاکتور تاثیر گذار در پیشبرد تکنولوژی محسوب می شوند. Arduino در حقیقت یک تفکر زیبا بر مبنای میکرو کنترلر های شرکت Atmel است. در ادامه سومین جلسه آموزش FPGA، قصد داریم به بررسی اجمالی این تفکر زیبا بپردازیم. در شکل های 1-6 و 1-7 دو نموه از برد های معروف و پر کاربرد Arduino نشان داده شده است. برد MEGA 2560، از تراشه Mega 2560 شرکت Atmel استفاده نموده است. وجود 256 کیلو بایت حافظه فلش، شش عد تایمر / کانتر، 100 پایه ورودی/خروجی و …، برد Mega 2560 را به یک برد عملیاتی برای بسیاری از کار ها تبدیل کرده است. معجزه Arduino، در حقیقت زبان برنامه نویسی آن محسوب می شود. به دلیل ساختار Open Source این تفکر، حجم گسترده ای از اطلاعات به همراه پروژه ها برای آن موجود است.

در ادامه قصد داریم به یک جمع بندی از بخش اول آموزش FPGA بپردازیم. در جلسه اول آموزش FPGA، ساختار الکرونیک دیجیتال (تراشه های TTL و CMOS ) و علت به وجود آمدن FPGA ها بررسی شد. در جلسه دوم آموزش FPGA، تکنولوژی SOPC و SOC بررسی شد. در جلسه سوم آموزش FPGA، یک نگاه اجمالی و سریع بر روی میکرو کنترلر ها انجام شد. در حقیقت میکرو کنترلر ها در قالب دو گروه مبتنی بر سیستم عامل (مانند Raspberry Pi) و مبتنی بر رجیستر (LPC4088 و Mega 2560) دسته بندی شدند. با توجه به مطالب بیان شده در سه بخش ابتدایی آموزش FPGA، در بخش دوم  آموزش FPGA به بررسی الکترونیک دیجیتال کاربردی به همراه ساختار داخلی  FPGA ها خواهیم پرداخت.

منابع:

ARM architecture – Wikipedia, the free encyclopedia

Arduino.com

Arduino.ir

alt-wr-01

آموزش FPGA-جلسه دوم-تاریخچه FPGA و سیستم های دیجیتال

آموزش FPGA-جلسه دوم-تاریخچه FPGA و سیستم های دیجیتال

کاربرد میکروپروسسورها در FPGA

       شکل 1-2: FPGA ها با ساختار  SOPC.

P2-SOC

 شکل 1-3: FPGA ها با ساختار  SOC.

دومین جلسه  از مجموعه آموزش FPGA را با هدف بررسی تاریخچه سیستم های دیجیتال به ویژه تاریخچه FPGA ادامه می دهیم. همان گونه که در جلسه اول آموزش FPGA گفته شد، از سال 2005 به بعد، ایده طراحی سیستم ­های تعبیه شده(ٍEmbedded System) به صورت قابل توجهی تغییر کرد و این امکان به وجود آمد تا طراحی از سطح گیت و HDL به طراحی در سطح سیستم برسد. همین جهش تکنولوژی عامل اصلی ایجاد پروسسورهای سی و دو بیتی نرم ­افزاری  NIOSII توسط شرکت ALTERA و MicroBlaze توسط شرکت XILINX شد. Altera و Xilinx دو شرکت  بزرگ تولید کننده FPGA در سطح دنیا هستند.  در حال حاضر، توسعه نرم­ افزاری و ایجاد تکنولوژی­ هایی مانند SOPC و یا SOC که به ترتیب  این لغات اختصار واژه های  (System on a Programmable Chip)  و (System on Chip) هستند. این سیستم ها این امکان را در اختیار کاربر قرار می­­ دهند تا کاربر بتواند با زبان­ های سطح بالا مانند C، جاوا (JAVA) و یا برمبنای سیستم عامل ­هایی مانند Linux، میکرو C برای FPGA ها برنامه ­ریزی کنند. در شکل های 1-2  و 1-3 این ساختار های جدید  نشان داده شده است. شکل 1-2 نمایی کلی از یک تکنولوژی SOPC را نشان داده است.

شعار اصلی این تکنولوژی، طراحی یک سیستم در مدت زمان چند دقیقه است و از ویژگی­ های منحصربه­ فرد آن می ­توان به طراحی نسبتا آسان و سریع اشاره کرد. کاربر در این سیستم قادر خواهد بود در مدت زمان اندکی واحدهای مختلفی همچون USB، PIO،SDRAM،FIFO و … براحتی در کنار هم قرار داده و سیستم مورد نیاز خود را طراحی نماید. شکل 1-2 ، نمایی از درون یک سیستم با تکنولوژی SOPC را نشان داده است. آن چیزی که در این سیستم بسیار مهم است باس(BUS) هوشمندی تحت عنوان باس  Avalon می ­باشد. این باس، این قدرت را دارد تا یک واحد هشت بیتی را به راحتی به یک واحد سی ­و دو بیتی متصل نماید و این در حالی است که در گذشته این امر با مشکلات و زحمت بسیار زیادی انجام می ­شد.

با توجه به جهش روز افزون هسته ­های ARMو قابلیت­هایی که این سیستم­ ها در اختیار کاربران خود قرار می ­دهند استفاده از این سیستم­ ها به امری مهم و اجتناب­ ناپذیر در صنعت الکترونیک تبدیل شده  است. در حقیقت، این تکنولوژی این قابلیت را به کاربران خود می­دهد تا با خرید یک آی­سی، علاوه بر داشتن تمام امکانات قبلی، از تمامی مزیت­ های ARM نیز در پروژه­ های خود استفاده نمایند. در تکنولوژی SOC، عمدتا هدف اصلی، به کارگیری  سیستم عامل بر روی آی­ سی می ­باشد که این امکان را به کاربر می ­­دهد تا از یک کامپیوتر کوچک در پروژه­ های خود بهرمند شود. همان­گونه که در شکل 1-3 نشان داده شده است، آرایه­ های منطقی برنامه پذیر مبتنی بر تکنولوژی SOC از هسته های ARM در کنار هسته ­های سی و دو بیتی خود استفاده می­ کنند. دوستان گرامی که علاقه مند می توانند ادامه مطلب را در جلسه سوم آموزش FPGA مطالعه نمایند.

منابع:

  (Springer)Rapid prototyping of digital systems

https://en.wikipedia.org/wiki/Field-programmable_gate_array

 

 

 

Di

آموزش FPGA-جلسه اول-تاریخچه FPGA و سیستم های دیجیتال

آموزش FPGA-جلسه اول-تاریخچه FPGA و سیستم های دیجیتال

Di

شکل 1-1: ساختار سیستم دیجیتال.

ّFPGAها همواره به عنوان یک ابزار ارزشمند در مجامع علمی و صنعتی مورد استفاده و توجه قرار می گیرند. با توجه به گستردگی موضوع در حوزه آموزش FPGAها و نبود یک منبع جامع و تخصصی در آموزش FPGA، شرکت نوین تراشه البرز به عنوان یک شرکت صنعتی و پیشگام در این زمینه اقدام به آموزش رایگان FPGA در قالب مطالب آموزشی نموده است. هدف اصلی بخش نشر مطالب علمی و کاربردی برای دوستان و علاقه مندان به FPGA  و طراحی دیجیتال کاربردی می باشد. برای شروع آموزش FPGA می بایست از تاریخچه سیستم های دیجیتال شروع کرد.واژه سیستم­های تعبیه شده (Embedded System) یا توکار به سیستم­هایی اطلاق می شود که از کنار هم قرار دادن اجزای کوچکتر ساخته شده ­اند. مطابق با شکل 1، در مهندسی الکترونیک و کامپیوتر منظور از سیستمهای تعبیه شده تراشه ها((Integrated circuits (ICs) و ادوات الکترونیکی مانند آرایه ­های منطقی برنامه­ پذیر(FPGA) یا (Field Programmable Gate Array) و یا تراشه های میکروبیس(Micro-base) هستند که این قابلیت را در اختیار مهندسین قرار می ­دهند تا طرح ­ها و ایده­ های خود را در کم­ترین زمان ممکن و متناسب با حجم و ابعاد کار خود بر روی آن­ها پیاده ­سازی کنند. 

همان­گونه که در شکل 1 -1 نشان داده شده، دانش الکترونیک دیجیتال با به وجود آمدن تراشه های سری TTL و CMOS جهش قابل توجهی را در اوایل دهه 1970 شاهد بود. با گسترش حجم و ابعاد کار، زمانی پیش آمد که دیگر این تراشه ها به تنهایی قادر به پاسخ­گویی نیاز بازار مصرف نبودند بردها و مدارات چاپی در آن زمان از حجم و ابعاد بزرگی برخوردار بوده و تراشه ها استفاده شده در آن­ها با محدودیت­ های بسیاری روبرو بودند. محدودیت­های موجود و نیاز بازار مصرف سبب شد که تکنولوژی موسوم به آرایه­ های منطقی برنامه ­پذیر (FPGA) پا به عرصه وجود بگذارند. هدف اصلی این تکنولوژی پوشش نقاط ضعف تکنولوژی قبل و کاهش حجم مدارات طراحی شده در آن زمان بود. نقطه قوت این تکنولوژی جدید طراحی نسبتا آسان در مدت زمان کم بود ولی از آنجا که این سیستم­ها با هدف طراحی سخت­ افزار توسط زبان­ های سخت افزاری((Hardware Design Languages (HDLs)) مانند VHDL  یا(Very High Speed Hardware Design Language)و Verilog و یا (Verification of Digital Circuits at the Register-Transfer Level ) ایجاد شده بودند لذا، ابزاری مناسب جهت پیاده­ سازی الگوریتم­ های نرم ­افزاری محسوب نمی­ شدند، ولی این بدین معنا نبود که این ادوات قابلیت پشتیبانی برای پیاده ­سازی الگوریتم را ندارند. از سال 2005 به بعد، ایده طراحی سیستم­های تعبیه شده به صورت قابل توجهی تغییر کرد و این امکان به وجود آمد تا طراحی از سطح گیت و HDL به طراحی در سطح سیستم برسد. لطفا ادامه مطلب را در بخش آموزش FPGA-جلسه دوم مطالعه فرمایید.