مدارهای FPGA
اسلاید 1: FPGA1-شرکت آلترا و FPGA2 -ساختمان داخلی* ورودی و خروجی* بلوک های منطقی * خطوط ارتباطی برنامه پذیر3-مقایسه با میکروکنترلرهاCPLD با FPGA4-مقایسهمحاسن و معایب-56-پردازش موازی و مقایسه با پردازشگر های تصویر7-خانواده محصولات شرکت آلترا8-کاربردها-----------------------------------------------------9-برنامه نویسی10-سیمولاتور و ایمولاتور و کمپایلرها11-....FPGA ALTRA
اسلاید 2: FPGA FPGA ها نسل جدید مدارهای مجتمع قابل برنامه ریزی هستند عبارت FPGA از کلمه های عبارت Programmable (logic) Gate Array Fieldگرفته شده است و به معنای آرایه گیتی )منطقی (برنامه پذیر میدانیمی باشد.بزرگترین سازنده های FPGA شرکت Xilinx اولین شرکتی بوده است که مفهوم FPGA را مطرح کرده است. شرکت های ALTERA و XILINX عمده ترین تولیدکنندگان این محصول هستند. که این دو شرکت نزدیک به 85 درصد بازار این محصول را دراختیار دارندشرکت آلترا در سال 1983 تاسیس گردید.محصولات این شرکت در دنیا بسیار معروف است و محصولات سخت افزاری با همان نام آلترا و max plus و محصولات نرم افزاری
اسلاید 3: FPGA بخش های اصلی یک ورودی ها و خروجی ها I/0قابل برنامه ریزیبلوک های منطقی قابل برنامه ریزیخطوط ارتباطی قابل برنامه ریزی
اسلاید 4: FPGA معماری ورودی خروجی های در اسلاید قبلی با سه بخش اصلی یک FPGA اشنا شدیم. ورودی ها و خروجی هابلوک های منطقی خطوط ارتباطیهیچ یک از این سه بخش در ابتدا هنگام خروج از کارخانه هیچ تابع یا مفهوم دیجیتالی را ایجاد نمیکنند و یا هر نوع مدار دیجیتال معنی داری در ابتدای کار در آن ها وجود ندارد. لذا هنگامي يك تراشه برنامه پذير از كارخانه توليد خارج مي شود یک مجموعه خام قابل برنامه ریزی دلخواه است.خریدار بعدا تعیین می کند در داخل FPGA چه مدار منطقی ایجاد گردد و FPGA به طراح اجازه مي دهد آن را براي يك كاربرد خاص به كار ببرد.
اسلاید 5: FPGA معماری ورودی خروجی های 1-بخش های ورودی و خروجی در FPGAگفتیم که در در حالت اولیه هیچ پایه تعریف شده ای برای کار خاصی ندارد می توان ورودی و خروجی ها را طبق نیاز طراح برنامه ریزی نمود و نوع پایه های ورودی و خروجی را تعیین کرد .پورتهای ماجول مورد نظر ممکن است به صورت ورودی یا خروجی و تک بیتی یا چندبیتی تعریف شوند.پورتهای ورودی باید به مدار داخلی متصل شود ، مقادیر معمولا دیجیتال توسط آنها دریافت شده و پس از انجام عملیات منطقی در داخل ، نتیجه به پورتهای خروجی متصل خواهد شد.از درگاهها هم چنین میتوان برای ارتباط با قطعات جانبی مثل حافظهها، مبدلهای آنالوگ به دیجیتال و غیره استفاده نمود. با توجه به اینکه استانداردهای متنوعی برای ارتباط با این قطعات جانبی وجود دارد، مدارات ورودی/خروجی در FPGA قابلیت تنظیم شدن برای هر کدام از این استانداردها را دارا هستند. کارکرد دیگر ورودی ها و خروجی ها این است که FPGA را بتوان در مد هاي مختلف 3/3 يا 5 ولت و..برنامه ريزي كردFPGAها معمولا به اندازه كافي پينI/O فراهم ميكنند به طوريكه FPGA هايي با بيش از 300 پين نيز در دسترس مي باشند .
اسلاید 6: FPGA معماری بلوک های منطقی داخلی
اسلاید 7: FPGA معماری بلوک های منطقی داخلی 2-بلوک های منطقی در داخل مدارات FPGA بخش اصلی را بلوک های منطقی تشکیل میداد.مهمترین بخش هر FPGA، بلوکهای منطقی برنامهپذیر (CLB Configurable Logic Block )یا سلولهای منطقی (LC: Logic Cell) هستند.سلولهای منطقی خود از حافظههای جستجو (LUT: Look-Up Table) و تعدادی فلیپ-فلاپ و مالتیپلکسر تشکیل شدهاند. به طور خلاصه LUT عبارت است از تولید توابع آماده برای استفاده در سلول های منطقی شکل آبی خلاصه مطالب قبل یعنی ساختار ساده یک سلول منطقی نوعی را نشان میدهد. به کمک LUT و ساختار یک سلول منطقی میتوان هر تابع کوچک منطقی را پیادهسازی کرد. همانطور که در شکل نشان داده شده است، یک FPGA شامل آرایهای از بلوکهای منطقی برنامه پذیر است. بسته به نوع FPGA، این تعداد متغیر و ممکن است به صدها هزار برسد. برای طراحی مدارات دیجیتال بزرگتر، تعداد بیشتری از این سلولهای منطقی مورد استفاده قرار میگیرد.یک FPGA با قیمت متوسط دارای حدود 100000 گیت منطقی می باشد.طبیعتا این بلوک های منطقی بزرگ در داخل FPGA هر کدام به تنهایی یک تعداد مشخص ورودی و خروجی دارند که تعداد این ها را در نوع های مختلف FPGA متفاوت است.اساس طراحی در FPGAها بطور کلی صرف نظر از بحث در ساختار تکنولوژی یک طراحی با ساختار دیجیتال می باشد؛ یعنی طراحی شمارنده ها و جمع کننده ها و… که قرار است با کنار هم قرار دادن اجزا در کنار هم به یک ساختار دیجیتال با پیچیدگی بالا تبدیل شود.در این بلاک های منطقی خام در FPGA امکان طراحی اختصاصی برای هر الگوریتم خاص و دلخواه فراهم است.امکان برنامه ریزی ارتباط بلاک های منطقی نیز با هم فراهم است و این طراحی دلخواه در ایجاد مداری ایده آل و با سرعت بالا بسیار موثر است.طراح لازم نیست برای هر قسمت از مدار خود جدول درستی و سپس المان های مدار را تعیین کند بلکه می تواند از آرایش مدارهای منطقی داخل کتابخانه موجود در نرم افزار همراه محصول استفاده کند.بسیاری از مدارات معمول منطقی از کوچک تا بزرگ در این کتابخانه ها موجود است و طراح برنامه نویس بیشتر ارتباط و آرایش بین آنها را برای تعیین هدف مورد نظر و ترکیب و آرایه بهتر را طراحی می کند.
اسلاید 8: FPGA معماری خطوط ارتباطی 3-خطوط ارتباطی قابل برنامه ریزیبعد از اینکه یک مدار دیجیتال بزرگ به کمک تعدادی از بلوک های منطقی طراحی شد، باید این بلوک ها را به نحو مناسب به هم متصل نمود. عناصری که برای اتصالات بکار می روند ، معمولا بین بلوکهایی که منطقی قرار می گیرند و از قطعات فلزی که می توانند به هم یا به بلوکهای منطقی متصل شوند تشکیل شده اند و برای متصل کردن این قطعات از سوئیچهای قابل برنامه ریزی استفاده می شود. برای این منظور، مسیرهای از پیش تعیین شدهای در FPGA و در بین ساختار آرایهای آن تعبیه شده است. این مسیرها در محل برخورد با یکدیگر به کمک سوئیچهایی به نحو مناسب به یکدیگر متصل میشوند تا در نهایت اتصال بلوکهای منطقی مورد نظر پیادهسازی شود
اسلاید 9: FPGA معماری خطوط ارتباطی 3-خطوط ارتباطی قابل برنامه ریزییک سوییچ کوچک در یک نقطه از ماتریس سوییچ :6 ترانزیستور که هر کدام می تواند روشن (وصل) یا خاموش باشد (اتصال باز) در هر میکرو سوییچوظیفه بر قرار کردن اتصال یا قطع اتصال بین این سیم ها را بر عهده دارند یعنی 16 حالت مختلف در کوچکترین جزء ماتریس سوییچ یعنی هر میکرو سوییچ ممکن می شود.در نقطه مرکز اتصالی بین دو سیم وجود ندارد و سیم های عمودی و افقی از روی هم رد می شوند.لذا بین BوD فقط یک سیم است و هم چنین بین A,C یک سیم قرار دارد و لذا برای اینکه در خط افقی یا عمودی اتصال وصل یا قطع باشد نیاز به یک ترانزیستور است.4 ترانزیستور هم برای ارتباط طرفین نیاز داریم و جمعا پس 6 ترانزیستور برای حالت قطع و وصل نیاز است. 3-خطوط ارتباطی قابل برنامه ریزیشکل زیر امکان اتصال دو سیم را به رشته سیم سومی فراهم می کند
اسلاید 10: FPGA معماری خطوط ارتباطی
اسلاید 11: FPGA معماری خطوط ارتباطی حالت های مختلف یک میکرو سوییچ برنامه پذیرشامل 6 ترانزیستور در حالت 0 یا 1مثالی از یک ماتریس سوییچ 10 در 10یعنی در واقع شامل 100 میکروسوییچ 6 ترانزیستوری
اسلاید 12: FPGA معماری خطوط ارتباطی ارتباط لازمFPGA در شکل فوق یک از انبوه ماتریس سوییچ برنامه پذیر موجود در بین بلوک های منطقی را در بخشی از مدار طراحی شده مورد نیاز کاربر فراهم کرده است.
اسلاید 13: FPGA معماری خطوط ارتباطی در صورتی که ماتریس های سوییچ قابل برنامه ریزی برای اتصال هوشمند و بهینه بین سیم ها وجود نداشته باشد طبیعتا تمام اتصالات وصل خواهد بود.در شکل بالا فرض شده ماتریس سوییچ برنامه پذیر 7*7 وجود نداشته باشد و همه اتصالات بین همه سیم ها برقرار باشد .می بینیم انبوهی از عبور جریان ها که طبیعتا اکثریت قرار دارد توان بیهوده مصرف خواهد شد.با در نظر گرفتن FPGA آن مورد نیاز نیست و در یک انبوه اتصالات ماتریسی موجود حجم توان مصرفی و گرمای مخرب تولیدی اهمیت ماتریس سوییچ برنامه پذیرقرار می گیرد را روشن می کند.FPGA طبق مداری که توسط طراح در
اسلاید 14: FPGA معماری خطوط ارتباطی در شکل فوق مسیر های مستقیم حذف شده است و به جای آن تعداد مسیر های همه منظوره افزایش یافته است.
اسلاید 15: FPGA معماری خطوط ارتباطی 27
اسلاید 16: با میکروکنترلرهاFPGA مقایسه در بخش قبل، ساختار و ماهیت FPGAها مورد بررسی قرار گرفت و همانطور که گفته شد، در طراحی با FPGAها میتوان انواع مدارات منطقی دلخواه را طراحی کرد. اما این ساختار ویژه FPGAها باعث چه تفاوتهایی با پردازندهها میشود؟ در این بخش به مقایسه FPGAها با پردازندهها پرداخته و در مورد نقاط قوت و ضعف هر کدام صحبت خواهیم کرد. اولین برتری FPGAها نسبت به پردازندهها سرعت بسیار بیشتر آنها در انجام روتینهای مختلف پردازشی و کنترلی است. به طور معمول، یک الگوریتم مشخص را میتوان با سرعتی بسیار فراتر از یک پردازنده در FPGA پیادهسازی کرد. دو دلیل اصلی برای قابلیت انجام عملیات منطقی و ریاضی با سرعت زیاد در FPGAها وجود دارد.در پردازندهها یک هسته پردازشی (CPU) با دستورات مشخص وجود دارد و در هر لحظه تنها یک دستور قابل اجرا است. بنابراین برای اجرای یک الگوریتم باید آن را به کمک دستورات از پیش تعیین شده پردازنده بازتعریف نمود و پردازنده یک به یک آنها را اجرا میکند. شکل روبرو این موضوع را به طور مفهومی نشان میدهد. در این شکل قرار است دستور C1 برای دیتای D1 و دستور C2 برای دیتای D2 اجرا شود. در پردازنده در هر لحظه یکی از این دستورات روی دیتای مورد نظر اجرا میشود. اما در FPGA میتوان مدار را به صورت موازی به گونهای طراحی کرد که هر دو دستور به طور همزمان روی دیتای مورد نظر اجرا شوند.دلیل دوم که باعث افزایش سرعت پردازش در FPGA ها میشود، امکان طراحی اختصاصی برای هر الگوریتم خاص است. همانطور که پیشتر گفته شد، برنامهنویس یک پردازنده مجبور است هر الگوریتمی را فقط به کمک تعداد محدودی دستورات از پیش تعیین شده برای پردازنده مورد استفاده پیادهسازی کند. بنابراین انعطافی در بهینه کردن زمان اجرای الگوریتم ندارد، به جز اینکه تا حد امکان بخشهای مختلف الگوریتم را با تعداد دستورات کمتری بازتعریف کند. اما طراح دیجیتال با FPGA میتواند برای هر الگوریتم از ابتدا مداری طراحی کند که برای آن بهینه باشد. به عبارت دیگر میتوان گفت که طراح دیجیتال برای اجرای هر بخش از یک الگوریتم، یک CPU مخصوص و بهینه شده طراحی و پیاده سازی میکند.FPGA براي محصولاتي که تعداد زيادي قرار است توليد شود معمولا گرانتر درمي آيند و ميکرو ها به صرفه تر هستند. ميکرو ها معمولا جريان کمتري مصرف ميکنند(از FPGA که تقريبا همان کار ها را ميتواند انجام دهد) براي کارهاي با تايمينگ دقيق FPGA بهتر است.به عنوان مثال برای اینکه بتوانید در FPGA چند عدد را جمع کنید باید بوسیله ی گیت ها یک بلوک جمع کننده طراحی کنید و از آن پس می توانید در سایر بلوک ها از آن استفاده نمایید.(یا اینکه مدارات منطقی را از کتابخانه وارد کنید)اما همین عمل در میکروکنترلر با نوشتن فقط همان عمل ریاضی در خط برنامه نویسی امکان پذیر است. FPGA ها به دلیل داشتن بلوک های منطقی خاص برای انجام هر عملیات و انجام پردازش های موازی ، با سرعت بسیار بالا عملیات های مورد نظر را انجام می دهد و از نظر سرعت و دقت نمی توان FPGA را با میکروکنترلر ها مقایسه کرد. در بسیاری از کاربردهای پردازش سیگنال (آنهایی که با فرکانسهای بالا و حجم عظیم داده سر و کار دارند) استفاده از FPGA تنها و آخرین گزینه موجود می باشد.از نظر هزینه اجرا نیز اغلب پروژه های FPGA گرانتر و هزینه بر تر از پروژه های میکروکنترلر هستند و در صورتی که بخواهید کارهایی را که با یک میکروکنترلر انجام می دادید با FPGA انجام دهید ، باید وقت و هزینه بیشتری صرف اجرا کنید از این رو معمولا FPGA و میکروکنترلر هر کدام کاربرد های خاص خود را دارند و به جای یکدیگر استفاده نمیشوند.از اونجا که در FPGA از اجرای خط به خط برنامه خبری نیست و دستروت مستقیما به سخت افزار میره ، سرعت اجرای برنامه خیلی زیاد هست ، نویز کم هست ، وابستگی به مواردی مثل سایر اجرای جانبی ، پالس کلاک ، همزمانی و... خیلی کم هست .در کل مقایسه میکروکنترلر با FPGA چندان کار درستی نیست در واقع می توان با FPGA یک میکروکنترلر ساخت.یعنی مدار منطقی میکرو را درون FPGA طراحی کرد البته طراحی که امکان شخصی سازی حتی در میکروکنترلر هم خواهیم داشت.می توان چند تا هسته پردازشی داخل یک FPGA تعریف کرد تا در یک زمان واحد چندتا کار را باهم انجام بدهد مثلا شما می توانید با یک FPGA معمولی حدود 200 تا هسته atmega32 تعریف کنید و 200 تا کار را همزمان انجام بدهید.یک نمونه از پروسسورهای مورد استفاده در FPGAها استفاده از Soft Processor ها می باشد، که از این دست میتوان به Nios در FPGAهای شرکت Altera اشاره نمود. در اینجا این سوال مطرح است که مزیت این ساختار بر میکرو های سخت افزاری موجود در بازار در چیست؟ در پاسخ باید گفت که اولا این ساختار از انعطاف پذیری بالایی برخوردار است، یعنی مثلاً هسته کار شما می تواند یک پروسسور باشد به همراه یک تایمر و یک Uart ،…و یا یک طراحی پیچیده ، ثانیاً براحتی Core پروسسوری طراح با سایر بخشها یعنی IPCore که توسط شخص طراحی گردیده در ارتباط باشد و IP Coreها برای ارتباط با پردازنده و گیت های قابل برنامه ریزی FPGA وجود داردبا کاربرد این نوع پیاده سازی قابلیت ساخت یک سیستم بر روی یک چیپ و استفاده کمتر از چیپ های دیگر بوجود می آید. این یعنی کاهش هزینه در طراحی طرحهای پیچیده که می توند نیاز به چندین چیپ را مرتفع می سازد.بنابراین قابلیت ساخت سیستم های بزرگتر در زمان کوتاه تر ممکن می گردد. ALTERA قابلیت کاربرد چندین پردازنده نرم را در یک سیستم و همچنین استفاده از سیستم عامل در آنها را به عنوان مزایای پردازنده نرم خود بیان می نماید
اسلاید 17: خانواده محصولات آلترابهره وری بالابهره وری متوسطسری کم قدرت تک تراشه بصورت کوچک
اسلاید 18: چند نقطه ضعف FPGAهااز دیگر نقاط ضعف بکارگیری FPGAها در مقایسه با پردازندهها میتوان به طولانی بودن زمان پیادهسازی و عیبیابی آن اشاره کرد. اصولاً عیبیابی در طراحی دیجیتال با FPGAها فرآیندی زمانبر است و این در نهایت منجر به افزایش زمان انجام پروژهها و در نتیجه هزینه میشود. بنابراین در تقسیم وظایف پردازشی و کنترلی باید از ابتدا دقت لازم به عمل آید تا زمان و هزینه اضافی به پروژه تحمیل نشود.، طراحی و عیبیابی با FPGA خود زمان بیشتری نسبت به پردازندهها لازم دارد و این نیز به نوبه خود باعث افزایش هزینهها میشود.چرا ؟به هنگام کار با پردازندهها با سختافزاری از پیش آماده شده سروکار داریم که دستورات مشخصی را به ترتیب اجرا میکند. در هر لحظه از زمان فقط یکی از این دستورات اجرا میشود. بنابراین عیبیابی آن نسبتاً آسان است؛ چون میتوان برنامه را خط به خط اجرا و دنبال کرد و همزمان نتایج متغیرهای مختلف را بررسی نموده تا ایرادات احتمالی آشکار شوند. اما در مورد FPGAها، از آن جایی که در حال توصیف یک سختافزار دیجیتال هستیم و ماهیت سختافزار به گونهای است که ممکن است دهها و صدها عملیات مختلف را به طور موازی انجام دهد، و همچنین دستوراتی که خط به خط و به ترتیب اجرا شوند وجود ندارد، نمیتوان به آسانی عیبیابی یک برنامه کامپیوتری، اتفاقات را دنبال کرد. همین مسأله باعث میشود عیبیابی در طراحی با FPGA نسبتاً دشوار و کند انجام شود.سطح سیلیکونی FPGA به صورت بهینه استفاده نمی شود.*چون قسمتی از سیلیکون استفاده نمی شود.تاخیر و توان مصرفی آن نسبت به IC های ساخت کارخانه بیشتر استﭼﻮن ﻧﯿﺎز ﺑﻪ ﺳﻮﯾﭻ ﻫﺎي اﻟﮑﺘﺮوﻧﯿﮏ دارد ﮐﻪ ﻫﺮ ﮐﺪام ﻣﻘﺪاري ﺗﺄﺧﯿﺮ دارﻧﺪ عیب یابی که قبلا اشاره شد و راهکار ...
اسلاید 19: FPGA محاسن استفاده از
اسلاید 20: FPGA و CPLD مقايسه بين نخستين تفاوت بين اين دو تراشه در نوع حافظه مورد استفاده آنها مي باشد.تراشه هاي FPGA از حافظه RAM استفاده مي کنند به اين ترتيب با قطع ولتاژتغذيه، نياز به پيکربندي مجدد دارند در حالي که تراشه هاي CPLD از حافظه Flash يا EEPROM استفاده مي کنند و با قطع تغذيه برنامه ذخيره شده در آنها از بين نمي رود. تفاوت ديگر در حجم و تنوع بلوکهاي در دسترس مي باشد به طور کلي قابليتهاي تراشه FPGA بسيار بيشتر از تراشه اي CPLD مي باشد به عنوان مثال بلوکهاي RAM ،ضرب کننده ها، بلوکهاي DSP ، مدارهاي سنکرون سازي کلاک و بسياري از بلوکها و قابليتهاي متنوع ديگر در معماري FPGA ها در دسترس مي باشد همچنين استاندارهاي ولتاژي و جرياني متعدد توسط اين تراشه ها پشتيباني مي شود در حالي که CPLD ها از قابليتهاي محدودتري برخوردارند و حجم گينها و تعداد فليپ فلاپها در مقايسه با FPGA ها کمتر مي باشد. از سوي ديگر به دليل سادگي معماري، ميزان تاخير سيگنال در تراشه اي CPLD قابل پيش بيني است اما تاخير در FPGA به نوع برقراري اتصالات (Routing) وابسته بوده، قابل پيش بيني نمي باشد. همچنين مصرف جريان در تراشه هاي CPLD به مراتب کمتر از FPGA مي باشد.از آنجاکه این دو تراشه بسیار شبیه بهم بوده و در ایران در بعضی موارد به اشتباه یکی درنظر گرفته می شوندCPLD دارای حدود 2000 گیت می باشد این در حالی است که FPGA گیتهای بسیار زیادتری دارد و یک FPGA معمولی دارای حدود 100000 گیت منطقی می باشد.FPGA ها بر خلاف CPLD كه معمولا با ولتاژ 5 ولت كار ميكنن.با سه تا ولتاژ 1.2 و2.5 و3.3 كار مي كنن.شما نياز داريد كه روي بردتون از سه تا رگولاتور ولتاژ استفاده كنيد.از سوي ديگر به دليل سادگي معماري، ميزان تاخير سيگنال در تراشه اي CPLD قابل پيش بيني است اما تاخير در FPGA به نوع برقراري اتصالات (Routing) وابسته بوده، قابل پيش بيني نمي باشد. همچنين مصرف جريان در تراشه هاي CPLD به مراتب کمتر از FPGA مي باشد. نمونه کاربرد CPLD: انجام کارهای آزمایشگاهی و تجهیزات صنعتی ساده نمونه کاربرد FPGA: انجام محاسبات و پردازش صوت و تصویر، امورمخابراتی؛ مانند: طراحی سویچ (شبکه های کامپیوتری)
نقد و بررسی ها
هیچ نظری برای این پاورپوینت نوشته نشده است.