Top Banner
ن الرحیم الرحم بسم ا
62

Rajabi

Jan 25, 2017

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Rajabi

بسم اهلل الرحمن الرحیم

Page 2: Rajabi

دانشگاه شهید باهنر کرمان

دانشکده فنی و مهندسی

پروژه کارشناسی رشته مهندسی کامپیوتر گرایش سخت افزار

تصاویر به زبان توصیف سخت افزارشبیه سازی برنامه بزرگ نمایی

استاد راهنما:

دکتر وحید ستاری نائینی

دانشجو :

ویدا رجبی

1393خرداد ماه

Page 3: Rajabi

تقدیر و تشکر:

مام دوستانی که مرا در راستای انجام این پروژه یاری نمودند.از خداوند منان و استاد گرامی و تبا تشکر

Page 4: Rajabi

تقدیم به:

با احترام تقدیم به

اســتادم، که همـواره چتر محبتـش بر ســرم است ینپدرم، اول

.بزرگواری که الفبای زندگی را از او آموختم

مادرم، بلند تکیه گاهم، که دامان پرمهـرش یگانه پنــاهم است

.مهربانی که عشــق ورزیدن را از او آموختم

Page 5: Rajabi

علم پردازش تصویر از علوم پرکاربرد و مفید در هوش مصنوعی می باشد، این علم در جامعه امروزی به چکیده :

صورت جامع و تخصصی روز به روز نقش اساسی و مهمتری پیدا می کند و در کشور ما نیز تقریبا در آغاز راه است. صاویر وپردازش آنها می باشد. همچنین با مسئله بزرگی داده های تصویری نیز از موضوعات بسیار مهم در کار با ت

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

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

باشد.

Page 6: Rajabi

فهرست مطالب

صفحه عنوان

1...................................................................................................... مقدمه-فصل یک

ر –فصل دوم 3 ......................................................................................................................... پردازش تصوی

3 .................................................................................................................تاریخچه پردازش تصویر -2-1

5 .........................................................................................................................علم پردازش تصویر -2-2

6 .....................................................................................................اصطالحاتی در پردازش تصویر -2-3

6 ...................................................................................................................................... پیکسل -2-3-1

6 .......................................................................................................................................تصویر -2-3-2

6 ..........................................................................................................خاکستری کردن تصویر -2-3-3

7 ................................................................................................................................... همسایگی -2-3-4

7 ............................................................................................................................. دقت تصویر -2-3-5

7 .................................................................................................. عملیات اصلی در پردازش تصویر -2-4

8 ............تصویر خروجی باید طی کند مراحلی که یک تصویر از لحظه ورود به سیستم تا تولید -2-5

8 ........................................................................................................... دریافت تصویر ورودی -2-5-1

8 ............................................................................................................... پیش پردازش تصویر -2-5-2

8 ........................................................................................................................ پردازش تصویر -2-5-3

8 ............................................................................................................................آنالیز تصویر -2-5-4

9 ........................................................................................................................................ هیستوگرام -2-6

10 ................................................................................................................................... آستانه گیری -2-7

Page 7: Rajabi

فهرست مطالب

صفحه عنوان

10 ........................................................................................................... تشخیص لبه در یک تصویر -2-8

11 .............................................................................................................................. انواع لبه ها -2-8-1

11 ......................................................................................................................... لبه افقی -2-8-1-1

11 ..................................................................................................................... لبه عمودی -2-8-1-2

11 ....................................................................................................................... لبه مورب -2-8-1-3

11 ......................................................................................................................ملیات روی تصاویرع -2-9

11 .................................................................................................................... تفریق دو تصویر -2-9-1

12 ..................................................................................................................... جمع دو تصویر -2-9-2

13 ...................................................................................................... میانگین گیری از تصاویر -2-9-3

13 .............................................................................................................. مکمل کردن تصویر -2-9-4

14 ................................................................................................................ فیلتر کردن تصویر -2-9-5

14 ..............................................................................................................پیکسل های تیز -2-9-5-1

14 ............................................................................................................ پیکسل های آرام -2-9-5-2

14 .......................................................................................................فیلترهای آرام کننده -2-9-5-3

15 ........................................................................................................ فیلترهای تیز کننده -2-9-5-4

15 .................................................................................................................... فشرده سازی تصاویر -2-10

JPEG......................................................................................................................... 16روش -2-10-1

MPEG .................................................................................................................... 16روش -2-10-2

Page 8: Rajabi

فهرست مطالب

صفحه عنوان

MPEG2 ................................................................................................................. 16روش -2-10-3

MPEG4 ................................................................................................................. 17روش -2-10-4

17 ................................................................................................................ کاربرد پردازش تصویر -2-11

FPGA ............................................................................... 18 آرایه های منطقی برنامه پذیر -فصل سوم

20 .......................................................................................................................................... تاریخچه -3-1

FPGA ........................................................................................................................ 21ساختارکلی -3-2

22 ............................................................................................... بلوک های منطقی برنامه پذیر -3-2-1

رنامه پذیر -3-2-2 22 ............................................................................................................... اتصاالت ب

23 .............................................................................................. خروجی -بل.ک های ورودی -3-2-3

از -3-3 23 ................................................................................................... ها FPGAمزیت های استفاده

FPGA................................................................................................................................ 25کاربرد -3-4

3-5- ASIC .............................................................................................................................................. 26

FPGA............................................................................................................. 27انواع معماری های -3-6

FPGA................................................................................................................... 27تولید کنندگان -3-7

FPGA .................................................................................................. 28برنامه نویسی و طراحی با -3-8

29 ...............................................................................................................................شبیه سازی -3-8-1

29 .......................................................................................................... شبیه سازی منطقی -3-8-1-1

30 ............................................................................................................... شبیه ساز زمانی -3-8-1-2

Page 9: Rajabi

فهرست مطالب

صفحه عنوان

FPGA ............................................................................................. 30تگنولوژی های برنامه ریزی -3-9

رنامه ریزی -3-9-1 SRAM .......................................................................................... 30تکنولوژی ب

رنامه ریزی -3-9-2 FLASH .......................................................................................... 31تکنولوژی ب

رنامه ریزی -3-9-3 ANTI-FUSE ................................................................................ 31تکنولوژی ب

32 ....................................................................................................تکنولوژی گیت های شناور -3-9-4

VHDL ............................................................................................. 32زبان توصیف سخت افزار -3-10

VHDL ............................................................................. 33فاکتورهای قابل مالحضه در ارزش -3-11

VHDL ...................................................................................................................... 33مزیت های -3-12

رنامه بزرگ نمایی تصاویر به زبان -فصل چهارم 35 ...............................توصیف سخت افزارپیاده سازی ب

36 ................................................................................................................پیاده سازی بزرگ نمایی -4-1

FPGA ............................................................................................................................ 36پین های -4-2

FPGA .................................................................................................... 36های خروجی پایه -4-2-1

FPGA............................................................................................... 37و پیکربندی configنحوه -4-3

اندازی دستگاه -4-4 39 ......................................................................................................................... راه

40 .................................................................................................................................. طراحی برنامه -4-5

43 ......................................................................................................................... شبیه سازی و نتایج -4-6

47 ..............................................................................................................................گیرینتیجه -فصل پنجم

49 ..................................................................................................................................................کوتاه نوشت

50 ............................................................................................................................................................... منابع

Page 10: Rajabi

فهرست شکل ها

10..........................................................................................................قبل از تعدیل هیستوگرام -1-2شکل

10...........................................................................................................بعد از تبدیل هیستوگرام -2-2شکل

12............................................................................................................................. جمع تصاویر -3-2شکل

13...............................................................................................................میانگین گیری تصویر -4-2شکل

15................................................................................................................تاثیر فیلتر آرام کننده -5-2شکل

15........................................................................................................... کننده تاثیر فیلترهای تیز -6-2شکل

FPGA ................................................................................................................21ساختار کلی -1-3شکل

SRAM..................................................................................................................31سلول یک -2-3شکل

FPGA .........................................................................................................................36ساختار -3-3شکل

46.......................................................................................................................نتیجه شبیه سازی -1-4شکل

Page 11: Rajabi

مقدمه – یکفصل

یگیر تصمیم نهایت و در موقعیت و تحلیل ها ویژگی استخراج یبرا ابزار بهترین تصویر پردازش امروزه

مغز و شوند می ارسال مغز به چشم طریق از اطالعات ،است صورت همین به نیز انسان مورد در. باشد می صحیح

یساز پیاده تصویر پردازش از هدف. کند می صادر فرمان و گرفته را نهایی تصمیم اطالعات این پردازش با

،است حجیم و پیچیده بسیار عملیات این زیرا باشد نمی چشم از دریافتی یها داده قبال در انسان ذهن عملکرد

از اهداف به رسیدن یبرا نیاز مورد ویژگی استخراج یبرا خاصی پردازش وانجام ها پردازش پیش هدف بلکه

.باشد می شده تعیین پیش

به صورت دیجیتال و انجام برخی از عملیات بر روی آن، به منظور پردازش تصویر روشی برای تبدیل یک تصویر

دریافت یک تصویر بهبود یافته و یا برای استخراج برخی از اطالعات مفید از آن است.

پنج کاربرد عمده پردازش تصویر را می توان رباتیک ، سیستم های دفاعی ، مهندسی پزشکی ، کنترل صنعتی و

.کرد گرافیک کامپیوتری عنوان

. امروزه نرم افزارهای مسئله ی بزرگ کردن تصاویر یکی از مسائل مهم در زمینه پردازش تصویر می باشد

گوناگونی در این زمینه وجود دارد. از مهمترین کاربرد های بزرگ کردن تصاویر می توان در زمینه پزشکی اشاره

ه های بزرگ برای بیل بورد ها ، بنرهای بزرگ نمایی تصاویر کوچک به منظور چاپ در اندازکرد. همچنین

بزرگ تبلیغاتی و غیره از دیگر کاربردهای آن می باشد.

ها افزارهای مدرن طراحی سختیکی از مهمترین ابزارنیز افزار های توصیف سختزبانقابل ذکر است که

است به طوری که امروزه عضو جدا نشدنی فرایند طراحی تا د که کاربرد آنها در صنعت رو به افزایش نباشمی

روند. های مدرن به شمار میافزارپیاده سازی سخت

Page 12: Rajabi

مقدمه فصل اول

2

افزار آزاد به شمار های توسعه جنبش سختابزار جزء بهترینافزار ی توصیف سختهابا توجه به اینکه زبان

با استفاده از زبان توصیف سخت بزرگ نمایی تصاویر را پیاده سازی و شبیه سازی مسئله ه ما در این پروژ روند،می

را به آینده واگذار می کنیم. FPGAانجام می دهیم و با توجه به نبود امکانات انتقال بر روی VHDLافزار

فصل بندی به صورت زیر خواهد بود.در یک نگاه کلی شرح

به مجموعه عملیات و پردازش هایی که در راستای انالیز تصویر در تصویر می پردازیم.به پردازش فصل دوم در

، که یکی از علوم پرکاربرد و مفید در هوش زمینه های مختلف انجام شده است، علم پردازش تصویر گویند

تی راجع به در ادامه این فصل به تاریخچه ای از پردازش تصویر می پردازیم و سپس توضیحامصنوعی می باشد.

عملیات روی تصاویر و کاربردهای پردازش تصویر ذکر شده است. امیدواریم که شاهد پیشرفت روزافزون این

علم در کشور باشیم.

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

و مزایای آن پزداخته ایم. VHDLی توصیف سخت افزار رداخته ایم. در ادامه به زبانپ

در فصل چهارم شروع به معرفی و نحوه طراحی و پیاده سازی برنامه بزرگ نمایی تصاویر با استفاده از زبان

و راه اندازی دستگاه FPGAو سپس توضیحاتی راجع به نحوه ی پیکربندی پرداخته VHDLتوصیف سخت افزار

.آورده شده است و در نهایت نتایجی که از طراحی این سخت افزار به دست آورده ایم را نشان می دهیم

در نهایت در فصل پنجم به بررسی نتایج و اهدافی که به دنبال آن بودیم می پردازیم.

Page 13: Rajabi

پردازش تصویر - مفصل دو

که علم پردازش قابل ذکر است . باشد می مصنوعی هوش در مفید و پرکاربرد علوم از ،تصویر پردازش علم

تصویر در دنیای امروزی به صورت جامع و تخصصی ، روز به روز نقش اساسی و مهم تری پیدا می کند و در

تصویر اختالالت و نویز حذف جهت تالش و تصویر یها داده بزرگی مسئله .کشور ما نیز تقریباً در اغاز راه است

تصاویر در دیگر متعدد عوامل و ها رنگ ترکیب تناسب عدم ،نامناسب نور منابع از حاصل یپارامترها نظیر

.باشد می آنها پردازش و تصاویر با کار در مهم بسیار موضوعات از ،دریافتی

صحیح یگیر تصمیم نهایت ودر موقعیت وتحلیل ها ویژگی استخراج یبرا ابزار بهترین تصویر پردازش امروزه

باشد. می

مفاهیم پردازش تصویر می پردازیم.در این فصل به

تاریخچه پردازش تصویر -2-1

تاکنون، موضوع پردازش تصویر، رشد فراوانی کرده است. عالوه بر برنامه تحقیقات فضایی، اکنون 1964از سال

ا از فنون پردازش تصویر، در موارد متعددی استفاده می شود. گر چه اغلب این مسائل با هم نامرتبط هستند، ام

عموما نیازمند روش هایی هستند که قادر به ارتقای اطالعات تصویری برای تعبیر و تحلیل انسان باشد. برای نمونه

تصویر را ارتقا می دهند یا این که برای تعبیر اسانتر تصاویر اشعه ایکس Contrastدر پزشکی شیوه های رایانه ای

یا سایر تصاویر پزشکی، سطوح شدت روشنایی را با رنگ، رمز می کنند. متخصصان جغرافیایی نیز از این روش ها

ت امده است، ودگی هوا که با تصویر برداری هوایی و ماهواره ای بدسآلهای مشابه برای مطالعه الگوهای یا روش

Page 14: Rajabi

پردازش تصویر فصل دوم

4

استفاده می کنند. در باستان شناسی نیز روش های پردازش تصویر برای بازیابی عکس های مات شده ای که تنها

باقی مانده اثار هنری نادر هستند، مورد استفاده قرار می گیرد. در فیزیک و زمینه های مرتبط، فنون رایانه ای بارها

ظیر پالسماهای پرانرژی و تصاویر ریزبینی الکترونی را ارتقا داده اند. تصاویر ازمایش های مربوط به موضوعاتی ن

کاربردهای موفق دیگری از پردازش تصویر را نیز می توان در نجوم، زیست شناسی، پزشکی هسته ای، اجرای

پردازش تصویر یکی از مسائل مهم در هوش مصنوعی است..قانون، دفع و صنعت بیان کرد

متعلق به ناسا شروع به ارسال تصاویر تلویزیونی مبهمی از سطح ماه به زمین 7نه فضایی رنجر سفی 60در اوایل دهه

کرد. استخراج جزئیات تصویر برای یافتن محلی برای فرود سفینه اپولو نیازمند اعمال تصمیماتی روی تصاویر بود.

پردازش تخصصی زمینه ترتیب بدین داده شد. قرار Jet Propulsion (JPL)این کار مهم به عهده البراتوار

.کرد پیدا متعدد های استفاده سریعاً دیگر های تکنولوژی تمام مثل و گردید اغاز رقومی تصاویر

جنبه های نظامی و جاسوسی بود که باعث شد 70و 60ابتدایی ترین کاربردهای پردازش تصاویر رقومی در دهه

پس از ان مصارف دیگری برای تصاویر رقومی سطح زمین پیدا شد که نیاز به تصاویر با کیفیت باالتر بوجود اید.

در کشاورزی و جنگل داری از ان جمله است. همچنین با استفاده از (Multi Spectral)کاربرد تصاویر چند طیفی

شهری از تصاویر رقمی عملیات هایی مثل کنکاش نفت در سرزمین های دور افتاده و یا ردیابی منابع الودگی

.نها انجام شدآخل دفتر کار متخصصین دا

و CAT (Computerized Arial Topography)اختراع اسکنر ها ی 80تا اواسط دهه 70از اواسط دهه

پزشکی را متحول کردند. صنعت چاپ استفاده کننده MRI Resonance Imagery) (Magneticهایاسکنر

رقمی وارد دنیای سرگرمی شد بطوریکه امروزه این نقش به امر پردازش تصاویر 80بعدی بود. در اواخر دهه

عادی تبدیل شده است. به همین ترتیب دنیای صنعت با روبات هایی که عمال می بینند یعنی در واقع با ظهور

.متحول شد و هنوز هم در حال تحول است Machine Visionتکنولوژی

و ایجاد امکان پخش تصاویر با استفاده از تکنولوژی ارتباطات، افراد هر ساله با سریعتر و ارزانتر شدن کامپیوتر ها

بیشتری به این تصاویر دسترسی پیدا می کنند. کنفرانس های ویدئویی یک روش زنده برای انجام کسب و کار

باالتر شده اند و کامپیوترها ی خانگی توانایی نمایش و مدیریت تصاویر را به خوبی پیدا کرده اند. خوشبختانه با

رفتن سرعت پردازش و فضای حافظه کامپیوترها دیگر از بابت امکانات پردازش تصاویر نگرانی ها کمتر شده

.است و روز به روز این روند رو به رشد ادامه پیدا می کند

Page 15: Rajabi

پردازش تصویر فصل دوم

5

امروزه با پیشرفت های متعددی که در روش های اخذ اطالعات گسسته مانند اسکنرها و دوربین های دیجیتالی به

.وجود امده است، پردازش تصویر کاربرد فراوانی یافته است

پردازش تصویرعلم -2-2

به مجموعه عملیات و پردازش هایی که در راستای انالیز تصویر در زمینه های مختلف انجام شده است، علم

که ورودی یک پردازش سیگنالدر معنای خاص پردازش تصویر عبارتست از هر نوع پردازش تصویر گویند.

تواند یک تصویر یا یک مجموعه ای از یک فیلم. خروجی پردازشگر تصویر میصحنهتصویر است مثل عکس یا

مربوط به تصویر باشد. متغیرهایز نشانهای ویژه یا ا

علم پردازش تصویر، از علوم پرکاربرد و مفید در فنون مهندسی می باشد و از دیر باز مطالعات و تحقیقات گسترده

.حاصل شده استدر این زمینه رت گرفته و پیشرفت های فراوانی ای در این زمینه صو

است دانش رایانهای از شود که شاخهپردازش تصاویر امروزه بیشتر به موضوع پردازش تصویر دیجیتال گفته می

پویشگریا پویش شده توسط دوربین دیجیتالدیجیتال که نماینده تصاویر برداشته شده با سیگنالکه با پردازش

هستند سر و کار دارد.

است. بهبود تصاویر دربرگیرنده روشهایی بینایی ماشینو بهبود تصاویرپردازش تصاویر دارای دو شاخه عمده

برای بهتر کردن کیفیت دیداری تصاویر و اطمینان از نمایش افزایش تضادمحوکننده و فیلترچون استفاده از

پردازد ه روشهایی می(است، در حالی که بینایی ماشین بنمایشگر رایانهیا چاپگردرست آنها در محیط مقصد)مانند

ر محوو رباتیکتوان معنی و محتوای تصاویر را درک کرد تا از آنها در کارهایی چون که به کمک آنها می

استفاده شود. صاویرت

مسئله بزرگی داده های تصویری و تالش جهت حذف نویز و اختالالت تصویری نظیر پارامترهای حاصل از منابع

دریافتی، از موضوعات بسیار مهم در نوری نامناسب، عدم تناسب ترکیب رنگ ها و عوامل متعدد دیگر در تصاویر

.کار با تصاویر و پردازش انها می باشد

های های پردازش تصویر شامل برخورد با تصویر به عنوان یک سیگنال دو بعدی و بکاربستن تکنیکاغلب تکنیک

کند ولی می شود. پردازش تصویر اغلب به پردازش دیجیتالی تصویر اشارهاستاندارد پردازش سیگنال روی آنها می

تصویر هم وجود دارند. آنالوگپردازش نوری و

Page 16: Rajabi

پردازش تصویر فصل دوم

6

اصطالحاتی در پردازش تصاویر-2-3

پيکسل-2-3-1

به معنی المان تصویر است. یک تصویر متشکل Picture Elementاست. پیکسل مخفف PIXELکوچکترین جز

از تعداد زیادی پیکسل است که در کنار هم قرار گرفته اند. در واقع زمانی که با یک دوربین دیجیتال عکس می

در اختیار 640× 480باشد به این معنی است که ماتریس با ابعاد 640×480گیرید اگر رزولوشن دوربین شما

پیکسل در عرض دارد. به ازای هر پیکسل یک سلول نوری در دوربین 480در طول و پیکسل 640شماست که

وجود دارد. شدت نور این سلول نوری مقدار عددی را برای این پیکسل تعیین می کند، به طور مثال به ازای رنگ

د.در آن ذخیره می شو 255سیاه مقدار صفر در پیکسل ذخیره می شود و به ازای رنگ سفید مقدار

تصویر-2-3-2

در هر نقطه را fرا مختصات مکانی و مقدار Yو Xکه در آن f(x,y)یک تصویر را میتوان توسط تابع دوبعدی

شدت روشنایی تصویر در آن نقطه می نامند. اصطالح سطح خاکستری نیز به شدت روشنایی تصاویر مونوکروم

ومقدار Yو X تشکیل می شود. زمانی که مقادیراطالق می شود. تصاویر رنگی نیز از تعدادی تصاویر دوبعدی

f(x,y) تصویر دیجیتالی می نامند. دیجیتال کردن مقادیربا مقادیر گسسته و محدود بیان شوند،تصویر را یک X

از M×Nمی گویند. برای نمایش یک تصویر quantizationرا f(x,y)و دیجیتال کردن مقدار samplingرا Yو

ستون دارد استفاده می کنیم. مقدار هر عنصر از آرایه نشان دهنده Nسطر و Mیک آرایه دوبعدی )ماتریس( که

شدت روشنایی تصویر در آن نقطه است. در تمام توابعی که پیاده سازی خواهیم کرد ، هر عنصر آرایه یک مقدار

نشان 255نشان دهنده رنگ تیره)سیاه( و مقدار 0. مقدار داشته باشد 255و 0بیتی است که میتواند مقداری بین 8

دهنده رنگ روشن )سفید( است.

کردن تصویر( Grayscale) یخاکستر -2-3-3

آیند می وجود به آبی و سبز ،قرمز رنگ سه ترکیب از اـه گـرن ،یکامپیوتر گرافیک رنگ مدل ترین رایج در

گرافیک در رنگ مدل این. کرد تولید توان می هـمولف هـس این توسط را متفاوت رنگ16581375 مجموع در که

، HSV ،HSI ،CMYK ،مدل های دیگری همچون دلـماین ارـکن در. شود می شناخته RGB ی با نامکامپیوتر

Page 17: Rajabi

پردازش تصویر فصل دوم

7

Grayscale بین این در. پردازند می ها رنگ نمایش به متفاوتی روش هـب اـه آن از کـهری هـک دارد وجود نیز

.است وردارـبرخی ا ژهـوی تـاهمی از Grayscale رنگ دلـم

Blue)سبز( و Green)قرمز( ، Redمتشکل از سه ماتریس است که هریک از آنها مقادیر RGBیک تصویر

BوG وR )آبی( تصویر رنگی را نگه می دارند. یک پیکسل زمانی مقدار خاکستری خواهد داشت که مولفه های

آن مقادیر یکسانی داشته باشند.

همسایگی -2-3-4

دارد: وجود همسایگی نوع 2

تایی به صورت:8همسایگی .1

(i-1 , j-1),(i , j-1),(i+1 , j-1),(i-1 , j),(i+1 , j),(i-1 ,j+1),(i ,j+1),(i+1, j+1)

تایی به صورت :4همسایگی .2

(i-1 , j),(i+1 , j),(i ,j-1),(i ,j+1)

دقت تصویر -2-3-5

باشد می 4یعنی 2*2دامنه روشنایی بیتی، حداکثر 2ها دارد. با یک تصویر دقت تصویر بستگی به شماره پیکسل

بیتی 8کند. در این حالت تصویر دقت )تفکیک پذیری الزم( را ندارد. تصویر تغییر می 3تا 0که دامنه آن از

است. که دقت باالتری دارد. 255تا 0دارد و تغییرات آن بین 256حداکثر دامنه

تصویر عمليات اصلی در پردازش -2-4

...: تغییر اندازه، چرخش وتبدیالت هندسی.1

تغییر روشنایی، وضوح و یا تغییر فضای رنگ :رنگ.2

یا چند تصویر ترکیب تصاویر : ترکیب دو و. 3

فشرده سازی تصویر : کاهش حجم تصویر. 4

Page 18: Rajabi

پردازش تصویر فصل دوم

8

معنی با قطعات به تصویر تجزیه : قطعه بندی تصویر. 5

تصویر هایتفاوت تصاویر : به دست آوردن تفاوت. 6

میانگین گیری : به دست آوردن تصویر میانگین از دو تصویر. 7

ا توليد تصویر خروجی باید مراحلی که یک تصویر از لحظه ورود به سيستم ت -2-5

طی کند

یورود تصویر دریافت -2-5-1

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

طریق از یدوور تصویر انگشت اثر تشخیص سیستم در مثال عنوان به. شود گرفته دوربین یک از یا و بودهساز

شود. می سیستم وارد انگشت اثر اسکنر

تصویر پردازش پيش -2-5-2

عنوان به .دانست تصویر از یضرور غیر یها مولفه وحذف تصویر ارتقا توان می را مرحله این در کلی اهداف

با باید انگشت تصویر پردازش از قبل که هستند یموارد از پوست یتمیز عدم و یا جراحت، پوست خشکی مثال

پرداخت. ها آن رفع به تصویر پردازشی ها تکنیک از استفاده

تصویر پردازش -2-5-3

خود نظر مورد کاربر یبرا ها آن از بتوان که است تصویر از هایی ویژگی و شناسایی مرحله این در کلی هدف

می انگشت اثر تشخیص سیستم در که هستند هایی ویژگی جمله از انحناها و ویژه نقاط شناسایی .کرد استفاده

.گردند استخراج توانند

تصویر آناليز -2-5-4

شناسایی از پس مثال عنوان به .پردازیم می تصویر آنالیز به شده استخراج یها ویژگی از استفاده با مرحله این در

اثر با متناظر شخص کنیم می سعی تصویر کردن آنالیز با انگشت اثر تشخیص سیستم در انحناها و ویژه نقاط

Page 19: Rajabi

پردازش تصویر فصل دوم

9

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

می کند.استفاده ....و یبند کالس،تصمیم

هيستوگرام -2-6

هیستوگرام تصویر نموداری است که توسط آن تعداد پیکسل های هر سطح روشنایی در تصویر ورودی مشخص

سطح روشنایی باشد ، بنابراین هریک از 256با Grayscaleمی شود. فرض کنید تصویر ورودی یک تصویر

[ می توانند داشته باشند.0...255پیکسل های تصویر مقداری در بازه ]

ت آوردن هیستوگرام تصویر ،کافی است با پیمایش کل پیکسل های تصویر ، تعداد پیکسل های هر برای به دس

سطح روشنایی را محاسبه می کنیم . هیستوگرام نرمال نیز از تقسیم کردن مقادیر هیستوگرام به تعداد کل پیکسل

[ قرار 0،1توگرام در بازه ]های تصویر به دست می آید. نرمال سازی هیستوگرام موجب می شود که مقادیر هیس

گیرند.

که لنز دوربین یکی از کاربـردهـای هیستوگرام در فوکوس خودکـار دوربین های دیجیتالی است. بـدین صورت

از ابتدا تا انتها حرکت کرده و در هر گام از حرکت خود تصویری از صحنه می گیرد. سپس کنتراست تصویر

هیستوگرام آن محاسبه می کند. پس از آن که لنز به انتهای حرکتی خود رسید، محلی گرفته شده را با استفاده از

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

که می گوییم دیگر از کاربردهای هیستورگرام در افزایش کنتراست تصاویر با کنتراست پایین است. زمانی

کنتراست تصویری کم است این بدان معنا است که اختالف بین کمترین و بیشتری شدت روشنایی تصویر کم

است. هم تعدیل سازی هیستوگرام موجب می شود که کنتراست تصویر ورودی تا حد ممکن افزایش یابد.

از هیستوگرام برای آستانه گیری نیز استفاده می شود.

Page 20: Rajabi

پردازش تصویر فصل دوم

10

از تعدیل هيستوگرام قبل-1-2شکل

بعد از تعدیل هيستوگرام -2-2شکل

( Thresholdآستانه گيری ) -2-7

بیتی یک تصویر سیاه وسفید بسازیم برای این کار باید تک تک پیکسل 16فرض کنید می خواهیم از یک عکس

ها را با مقدار مشخصی مقایسه کنیم، اگر بزرگتر از آن مقدار مشخص بود به جای آن رنگ سفید و اگر کوچکتر

می گویند. Thresholdبود به جای آن مقدار سیاه قرار می دهیم به این کار آستانه گیری یا

یک تصویر تشخيص لبه در -2-8

لبه واقع در.طرف آن محل است که به آن لبه می گوییم. 2دلیل ایجاد یک لبه در تصویر اختالف شدت نور در

از خودش مجاور پیکسل با پیکسل کـی ناییـروش دتـش تالفـاخ آن در که شود می گفته تصویر از متیـقس هـب

کنند. می مشخص تصویر را یبند استخوان که هستند تصویر از قسمتی ها لبه. باشد ترـبیش یـمشخص دارـمق

توانند با تغییر نقطه دید تغییر کنند، و نوعاً هندسه صحنه، یعنی می -ها ممکن است وابسته به دیدگاه باشند لبه

که -دهند یا ممکن است نابسته به دیدگاه باشند اند و مانند آن را نشان میاجسامی که جلوی همدیگر را گرفته

Page 21: Rajabi

پردازش تصویر فصل دوم

11

ها و شکل سطح باشند. در دو بعد و باالتر مفهوم گذارینشانشده همچون های اجسام دیدهمعموالً نمایانگر ویژگی

باید در نظر گرفته شود. تصویر

آنکه رنگ باشد؛ حالیک لبه نوعی ممکن است)برای نمونه( مرز میان یک بخش قرمزرنگ و یک بخش سیاه

های ناهمرنگ در یک زمینه یکنواخت باشد. در هر سوی خط یک لبه تعداد کمی پیکسلتواند می یک خط

ها نقش مهمی در کاربردهای پردازش تصویر دارند.وجود خواهد داشت. لبه

ها: لبه انواع -2-8-1

لبه افقی: -2-8-1-1

لـقب لـپیکس اـب را لـپیکس هر و کنیم می حرکتـه ب روعـش یودـعم صورت به اول ستون از افقی یها لبه یبرا

آن به صورت این غیر در.است لبه د آنجاـباش ترـبیش مشخصی عدد از آنها تفاوت اگر کنیم می مقایسه ودشـخ از

نداریم. یکار

لبه عمودی -2-8-1-2

به شروع افقی صورتبا این تفاوت که به لبه های افقی انجام می شودورت ـص به هم یعمود یها لبه یافتن

کنیم. می حرکت

لبه مورب -2-8-1-3

جمع مختصات هر عمودی هستند . به این صورت که جذرلبه افقی و 2می توان گفت لبه های مورب ترکیبی از

پیکسل باید از عددی مشخص بیشتر باشد در غیر این صورت لبه نیست.

عمليات روی تصاویر -2-9

تصویر دو تفریق -2-9-1

تفریق دو تصویر هم اندازه بدین مفهوم است که شدت روشنایی پیکسل های متناظر دو تصویر را از هم کم کنیم .

فرض کنید می خواهیم تغییرات مغز افرادی را بررسی کنیم که دچار بیماری آلزایمر هستند. برای این منظور می

Page 22: Rajabi

پردازش تصویر فصل دوم

12

مغز فردی که دچار بیماری آلزایمر است ، مقایسه توانیم تصویری از یک مغز سالم را در مراحل مختلف با تصویر

کنیم . با اعمال عملگر فوق بر روی دو تصویر مذکور نقاطی از مغز که در آن نقاط مغر دچار تغییر شده است

مشخص می شوند .

ق از یتفرهنگام تفریق مقادیر پیکس ها ، مقادیر منفی را به مقدار صفر تبدیل می کنیم . همچنینی می توانیم هنگام

به عنوان یک مثال کاربردی از تفریق دو تصویر می توان به شناسایی حرکت در . قدرمطلق تفریق نیز استفاده کنیم

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

، برای محاسبه اختالف بین دو تصویر از ذکر شدنطور که در ابتدا شده از دوربین اختالف وجود داشته باشد. و هما

عملگر تفریق استفاده می کنیم. بنابراین با تفریق فریم فعلی و فریم قبلی گرفته شده از دوربین می توانیم اختالف

ثابت از موجود در دو تصویر را پیدا کنیم. از دیگر کاربردهای تفریق دو تصویر می توان به حذف پشت زمینه

تصویر اشاره کرد.

تصویر دو جمع -2-9-2

جمع دو تصویر بدین مفهموم است که در دوتصویر ، شدت روشنایی پیکسل های متناظر دو تصویر را باهم جمع

کنیم . یکی از رایج ترین کاربردهای جمع دو تصویر افزودن پشت زمینه به تصویر است. برای این منظور نیاز به دو

ینه و تصویر شی داریم که تصویر شی باید در مقابل پرده ای با رنگ ثابت گرفته شود. از جمع تصویر پشت زم

کردن دو تصویر مذکور تصویری با پشت زمینه دلخواه به دست می آید.

تصویر دوم تصویر اول

حاصل جمع

جمع تصاویر-3-2شکل

Page 23: Rajabi

پردازش تصویر فصل دوم

13

تصویر از یميانگينگير -2-9-3

هنگامی که چند تصویر یکسان داریم و بر روی هرکدام از آن ها نویزهای مختلفی وجود دارد و می خواهیم

بدین صورت که مقادیر پیکسل های متناظر کیفیت این تصاویر را ارتقا دهیم از میانگین گیری استفاده می کنیم،

کنیم. بدیهی است که هرقدر تعداد می در همه تصاویر را باهم جمع کرده و سپس به تعداد کل تصاویر تقسیم

تصاویر برای میانگین گیری بیشتر باشد ، تصویر حاصل از میانگین گیری آنها نیز بیشتر به واقعیت نزدیک خواهد

بود.

نویز بدون تصویر تصویر نویزدار تصویر نویزدار دار تصویر نویزدار تصویر نویز

میانگین تصاویر نویزدار

ری تصویرن گیمیانگی-4-2شکل

تصویر مکمل کردن -2-9-4

گرفته باشد، از مکمل تصویر در مواردی که اجزای اصلی تصویر در یک تصویر با محدوده سیاه بزرگ قرار

استفاده می کنیم.

، منظور از مکمل کردن تصویر می باشد 1و 0دو سطح شدت روشنایی دارای در یک تصویر سیاه و سفید که فقط

سطح روشنایی Lاست. در تصویری که از 1کردن پیکسل های با مقدار 0و 0کردن پیکسلهای با مقدار 1،

Page 24: Rajabi

پردازش تصویر فصل دوم

14

شدت روشنایی پیکسل ها استفاده می کند ، مکمل یک پیکسل از فرمول زیر به دست ( برای نمایش L-1و...0)

آید :می

Pixel[ I , j ] = L -1 – Pixel[ I , j ]

تصویر کردن فيلتر -2-9-5 پیکسل های تصاویر به دو دسته تقسیم می شوند:

پیکسل های تیز -2-9-5-1

مقدار پیکسل( با پیکسل های همسایه خود زیاد باشند، آنها )را که اختالف شدت روشنایی پیکسل هایی از تصویر

پیکسل های تیز می نامیم. پیکسل های تیز معموال یا نشان دهنده لبه های اشیای موجود در تصویر هستند یا نشان

دهنده نویزهای یک تصویر هستند و در حالت کلی می توان گفت که جزئیات تصویر با استفاده از پیکسل های

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

.نمکی هستند-دارای نویز معروف فلفل

پیکسل های آرام -2-9-5-2

در مقابل پیکسل های تیز، پیکسل های آرام تصویر قرار دارند. پیکسل هایی از تصویر که اختالف شدت روشنایی

پیکسل های همجوار خود کم است، پیکسل های آرام تصویر می نامیم.آنها با

با توجه به مطالب گفته شده به شرح فیلتر کردن تصاویر می پردازیم.

دسته تقسیم می شوند: 2 در حوزه مکانی فیلترها به

فیلترهای آرام کننده -2-9-5-3

تصاویر آرام تری می ای تیز تصویر موجب تولیدفیلترهای آرام کننده با اعمال تغییر در شدت روشنایی پیکسل ه

تصویر نمی گذارند. آرام شدن تصویر بدین شود. همچنین این فیلترها تاثیر چندانی بر روی پیکسل های آرام

رود. به عنوان مثال اعمال یک فیلتر آرام کننده بر روی یک معنی است که بخشی از جزئیات تصویر از بین می

شدت نویزها خواهد شد. یک مثال کاربردی ساده از فیلتر های آرام کننده را می کاهش تصویر نویزدار موجب

.چین و چروک ها از تصاویر صورت بیان کرد توان حذف

ماسکی است که مقدار ،m*n ساده ترین فیلترهای آرام کننده تصویر فیلترهای میانگین هستند. یک فیلتر میانگین

مقدار هر پیکسل در تصویر خروجی برابر است است. به عبارت دیگر /(m.n) 1 هریک از عناصر آن برابر با عدد

.و پیکسل های همسایه پیکسل جاری با میانگین مقدار شدت روشنایی پیکسل جاری

Page 25: Rajabi

پردازش تصویر فصل دوم

15

تصویر اصلی تصویر آرام شده

تاثير فيلتر آرام کننده -5-2شکل

فیلترهای تیزکننده -2-9-5-4

راج خبرخالف فیلترهای آرام کننده، فیلترهای تیز کننده با اعمال تغییر بر روی پیکسل های آرام تصویر موجب است

داری حالتی بلور مانند است ) جزئیات جزئیات بیشتری از تصویر می شوند. در برخی موارد می بینیم که تصویر

.نمایان نیستند( . در چنین مواردی برای حذف خاصیت بلوری، از فیلترهای تیز کننده تصویر استفاده می کنیم

تصویر اصلی تصویر تيز شده

تاثير فيلترهای تيز کننده -6-2شکل

فشرده سازی تصاویر -2-10

های را تا جایی که ممکن است کاهش داد و اساس تمام روش اطالعاتسازی تصاویر باید حجم برای ذخیره

سازی میزان و در صد ها است.ضریب یا نسبت فشردههایی از اطالعات و دادهسازی کنار گذاردن بخشفشرده

کند و تر میسازی و انتقال اطالعات را آسانکند. این روش ذخیرهکنار گذاشتن اطالعات را مشخص می

یابد.مورد نیاز کاهش می فرکانسو باندپهنای

Page 26: Rajabi

پردازش تصویر فصل دوم

16

سازی تصویر از این اصل مهم تبعیت سازی وجود دارد. فشردههایی متعدد و پیشرفته برای فشردهامروزه روش

تواند کند که چشم انسان حد فاصل دو عنصر تصویری نزدیک به هم را یکسان دیده و تمایز آنها را نمیمی

رود که این ر نور و تصویر برای مدت زمان معینی در چشم باقی مانده و از بین نمیتشخیص دهد. همچنین اث

است.مورد توجه بوده تصاویر متحرکویژگی در ساخت

فشرده سازی تصاویر به روشهای مختلفی انجام می شود ،از جمله این روش ها عبارتند از:

JPEGروش -2-10-1

است. از این روش JOINT PHOTOGRAPHIC EXPERT GROUPنام این فرمت در واقع مخفف کلمات

سازی ترین روش در فشردهاولین و ساده JPEGشود. سازی عکس و تصاویر گرافیکی ساکن استفاده میدر فشرده

سازی تصاویر متحرک مورد استفاده قرار گیرد. برای این منظور تصاویر تصویر است در ابتدا سعی شد برای فشرده

برای ارتباط دادن این MOTION JPEGند و با ابداع روش شدبه صورت فریم به فریم مانند عکس فشرده می

ها به هم تالش شد که با مشکالتی همراه بود.عکس

MPEG روش-2-10-2

90است. این روش در ابتدای سال MOVING PICTURE EXPERT GROUPنام این فرمت مخفف عبارت

کرد و در تهیه تصاویر نیه انتقال پیدا میمگابیت بر ثا 5/1ابداع شد و در آن اطالعات تصویر با سرعت حدود

دقیقه تصویر 70مگابایت اطالعات معادل حدود 650شد. این روش امکان ذخیره حدود ویدئویی استفاده می

شوند و به ارسال می سریالهای اطالعات به صورت بیت MPEGمتحرک در یک دیسک را به وجود آورد. در

های اطالعاتی شوند که موقعیت و نحوه قرارگیری بیتکننده نیز ارسال میهای کنترل و هماهنگهمراه آنها بیت

کند.را برای انتقال و ثبت اطالعات صدا و تصویر تعیین می

MPEG2روش - 2-10-3

مگابیت بر 15تا 3شود و امکان دسترسی به اطالعات سازی باالتری استفاده میدر این روش از ضریب فشرده

شود.استفاده میامروزی هایدیویدیاست. از این روش در ثانیه

Page 27: Rajabi

پردازش تصویر فصل دوم

17

MPEG4روش -2-10-4

شود. این روش توانایی از این روش برای تجهیزاتی که با انتقال سریع یا کند اطالعات سرو کار دارند استفاده می

های کامپیوتری باید تصویر برای کاربرانی که از جبران خطا و ارائه تصویر با کیفیت باال را دارد. در شبکه

مناسب است. MPEG4کنند به خوبی نمایش داده شود، در چنین حالتی روش سریع یا کند استفاده می هایمودم

فریم ویدئویی به یک شود. ایده اصلی این روش تقسیم یکهای تلویزیونی نیز استفاده میاز این روش در دوربین

گیرند. هر کدام از این اجزا به صورت مجزا و یا چند موضوع است که مطابق قاعده خاصی کنار هم قرار می

و یا انتقال هستند. کپیجداگانه قابل

کاربرد پردازش تصویر -2-11

کاربرد عمده پردازش تصویر را می توان رباتیک ، سیستم های دفاعی ، مهندسی پزشکی ، کنترل صنعتی و پنج

گرافیک کامپیوتری عنوان کرد. در سیستم های رباتیک معموال از پردازش تصویر برای هدایت ربات و تشخیص

هدف متحرک پردازش تصویر اشیا استفاده می شود. در سیستم های دفاعی برای یافتن هدف و یا رهگیری یک

یکی از قابل اعتمادترین روش های موجود می باشد. در مورد کاربردهای گرافیکی نیز یکی از معروفترین نرم

تشخیص نوع بیماری نیز رایج ترین کاربرد پردازش تصاویر .افزارهای مبتنی بر پردازش تصویر فتوشاپ می باشد

لید صنعتی برای کنترل کیفیت محصوالت تولید شده و همچنین کنترل پزشکی است. در نهایت ، امروزه خطوط تو

زمینه های پردازش تصویر همچنین در حرکات خط تولید از سیستم های مبتنی بر پردازش تصویر بهره جسته اند.

عبارتند از هواشناسی، شهرسازی، کشاورزی، نجوم و فضا نوردی،دیگری نیز کاربردهای فراوانی دارد که مختلف

.فناوری های علمی، باستان شناسی، تبلیغات، سینما، اقتصاد، روانشناسی و زمین شناسی

تأثیر ترین مشخص و اولین. است داشته العاده فوق تأثیرنیز علمی یها پیشرفت سرعت افزایش در تصویر پردازش

تحقیقات مخصوصا و شیمی ، فیزیک پایه علوم پیشرفت در علم این .دید هنر یا عکاسی علم در توان می را آن

است. کرده فراوانی مکانیکی کمک و فیزیکی

Page 28: Rajabi

FPGAآرایه های منطقی برنامه پذیر -فصل سوم

(گفته می VLSI به نوع خاصی از تراشه های سیلیکونی نیمه هادی مجتمع ) از نوع FPGAدر صنعت الکترونیک

شود که برخالف دیگر تراشه های سیلیکونی که دارای یک شبکه الکترونیکی ثابت بر روی خود هستند، دارای

یک مجموعه )ماتریس( از المان های الکترونیکی هستند که در حالت اولیه هیچ مدار الکترونیکی را تشکیل نمی

می باشند که در مجموع به آنها تراشه های قابل برنامه ها متعلق به دسته خاصی از تراشه ها FPGAدهند. در واقع

-Field ( یا در اصطالح کامال جا افتاده ابزارهای قابل برنامه ریزی میدانی ) Programmable Arrayریزی )

Programmable Array – FPD گفته می شود، دلیل این نامگذاری امکان پیکربندی توسط طراح یا مشتری بعد )

ها آنها را برای استفاده های آموزشی مناسب FPGAطبیعت چند بار برنامه پذیر بودن بوه می باشد.از تولید ان

FPGAکرده است چون با استفاده از آنها کاربر می تواند طراحی پردازنده خود را تصحیح و بهینه سازند. همچنین

ی جدیدتر با قیمت مناسب تر تولید می ها برای جامعه دانشگاهی نیز مناسب می باشد چون هر ساله تکنولوژی ها

شود.

FPGA دیجیتال بسیار الکترونیکیکی از تکنولوژیهاییست که در سالهای اخیر وارد صنعت شده و در زمینه

های مخابراتی استفاده می گردد. پروژه "های مهم صنعتی خصوصا پروژهخوب ظاهر شده و امروز در بسیاری از

با استفاده از این مدار مجتمع میتوان مدارات پیچیده تری مانند میکرو کنترلر ، پروسسور تصویر و صدا ، بخشی از

ات مخابراتی و ... را با قیمت نسبی کم طراحی کرد .گیرنده مدار

ها را به طور FPGA ها بسیار باال و در حد نانو ثانیه است . اگر بخواهیم FPGA سرعت اجرای توابع منطقی در

، خطوط LB (Logic Block) - ساده تشریح کنیم ، عبارت است از یک تراشه که از تعداد باالیی بلوک منطقی

تشکیل شده است که به صورت آرایه ای در کنار یکدیگر قرار (IOB) ایه های ورودی / خروجیارتباطی و پ

دارند . خطوط ارتباطی که وظیفه آنها ارتباط بین بلوک های منطقی است از سوئیچ های قابل برنامه ریزی تشکیل

Page 29: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

19

ه ریزی هستند و برخی به تعداد دفعات شده اند . این سوئیچ ها بسته به نوعی که دارند ، برخی تنها یکبار قابل برنام

. زیادی برنامه ریزی می شوند

مربوط می شود . به عنوان مثال بلوک های FPGA تعداد ورودی های هر بلوک منطقی متفاوت است و به نوع

ورودی است . در برخی موارد به بلوک های منطقی ، سلول های منطقی 8، از نوع ACT-1 ی منطقی در خانواده

.نیز گفته می شود

SRAM از تعدادی سلولهای حافظه .LUT ساخته می شوند LUT بسیاری از سلول های منطقی بر اساس جداول

. ، مقدار دهی می شوند FPGA تشکیل می شود که در هنگام برنامه ریزی

توسط زبان توصیف سخت افزار انجام می پذیرد. FPGAپیکربندی به طور کلی

( آشنا باشد، درک این قسمت آسان خواهد بود. AVR ,ARMدر صورتی که فرد با میکروکنترلرهایی )نظیر

میکرو میکروکنترلر یک پردازنده همه منظوره است که دارای ورودی، خروجی و قدرت پردازش می باشد.

می توان برای آنها برنامه Assembly ،basic cد که با زبان های نکامپایلرهای خاصی می باشکنترلر ها دارای

در می دهند و انتقال روی آی سیبه programmer نوشت سپس برنامه نوشته شده را توسط دستگاهی به نام

Rom ریختن برنامه روی میکرو را .شودذخیره میProgramming می گویند. قابل ذکر است که میکروکنترلرها

در هنگام خریداری برنامه ای ندارند و پردازشی انجام نمی دهند بلکه کاربر نهایی است که باید برنامه خود را به

کند. Programزبان قابل قبولی برای آن میکروکنترلر بنویسد و آن را

)که خود می توانند به FPGAبا این تفاوت که در تراشه های نیز اتفاق می افتد. FPGAاین روند در تراشه های

یک میکرو هم تبدیل شوند( کد نیازی به اجرا ندارد بلکه باید مشخص کند که تراشه کدام واحدهای منطقی را به

هم وصل کند، کدام را اتصال کوتاه کند و غیره به طور کلی باید به نوعی سخت افزاری که ما می خواهیم را

یف کند.توص

( نام Hardware Description Code) "کد توصیف سخت افزار "این کد که سخت افزار را توصیف می کند

Hardware )"زبان توصیف سخت افزار"دارد . زبانی که این کد را از روی سینتاکس و قواعد آن مینویسند

Description Language مثل (نامیده می شود. این نوع کد با کد زبان هاییC تفاوت دارد ، زیرا کد زبانC یک

روند نرم افزاری و مجموعه دستورات پی در پی قابل اجرا بر روی پردازنده است اما کد توصیف سخت افزار یک

را تبدیل به یک سخت افزار کاربردی می کند. FPGAتراشه خام میدانی مثل

Page 30: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

20

دارد که مشهورترین آنها Abel, Verilog,VHDLزبان های توصیف سخت افزار نمونه های زیادی از جمله

VHDL,Verilog می باشد. برای هرکدام از این زبان ها محیط های یکپارچه برنامه نویسیIDE مثلModelsim

وجود دارند که تمامی ابزارها برای نوشتن، ویرایش، کامپایل و تبدیل برنامه نوشته شده به کد قالب Quartus و

ا یکجا فراهم می کند.انتقال روی تراشه ر

تاریخچه -3-1

Programmableو Programmable read-only memory( PROM )در ابتدا توسط تراشه های FPGAصنعت

Logic deevices(PLDs) .ها شکل گرفتPROM ها وPLDهر دو قابلیت برنامه ریزی به طور دسته ای در ها

کارخانه را داشتند.

برای Steve Casselmanدپارتمان جنگ نیروی دریایی بودجه ای را برای تحقیق توسط 1980در اواخر دهه

موفق شد و Caselmanگیت برنامه پذیر را پیاده سازی کند، تخصیص داد. 600000ساخت کامپیوتری که بتواند

این اختراع را ثبت نمود. 1992در سال

ژی های صنعتی برای آرایه ها، گیت ها و بلوک های منطقی برنامه پذیر توسط برخی از مفاهیم بنیادی و تکنولو

David W.Page و LuVerne R.Paterson ثبت شده بودند. 1985در سال

Ross Freeman وBernard Vonderscmitt موسسانXilinx برای اولین بار آرایه گیت برنامه پذیر تجاری به نام

XC2064 راع نمودند. اخت 1985را در سالXC2064 گیت های برنامه پذیر و اتصاالت برنامه پذیر میان گیت ها

بلوک منطقی قابل پیکربندی 64دارای XC2064را داشت، که شروع یک تکنولوژی و بازار جدیدی بود.

(CLB دو جدول مراجعه ، )ورودی بود. 3

لید و هم به کمال رساندن آن. در ابتدای دهه ها بود، هم از لحاظ حجم تو FPGAمهمترین دوره زمانی 1990دهه

ها راه خود FPGAها برای مصارف شبکه سازی و ارتباطات استفاده می شد. در اواخر این دهه FPGAاز 1990

را برای مصارف صنعتی باز نمودند.

به وجود آمده است که آن هم ترکیب بلوک های منطقی و اتصاالت هاFPGAگرایش جدیدی در استفاده از

کامل system on programmable chipسنتی با یک میکروپروسسور توکار برای شکل دادن یک FPGAیک

که Xilinxشرکت TMZynq-7000برنامه پذیر SoCمی باشد. بعنوان مثال از این تکنولوژی مخلوط می توان به

Page 31: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

21

بود و یا نمونه FPGAتوکار در منطق ساخته شده GHz dual-core ARM Cortex-A9 1.0ور شامل یک پروسس

اشاره کرد. Arria V FPGAبه نام Alteraشرکت

را که شامل تمامی TMZynq-7000کامال برنامه پذیر را با برند تجاری SoCاولین Xilinxشرکت 2010در سال

به embeddedمعرفی نمود تا طراحان FPGAاست را بر روی محصول ARMویژگی های یک میکروکنترلر

نانومتری، FPGA 28بر روی خانواده ARMراحتی بتوانند از آن استفاده نمایند. با همکاری بستر پروسسوری

توانستند ترکیبی از پردازش موازی و سریال را برای embeddedمعماران سیستم و توسعه دهندگان نرم افزارهای

با FPGAطراحی سیستم های خود بکار ببرند، که به تدریج پیچیدگی استفاده از این نوع را افزایش داد. استفاده از

مجزا به کاهش هزینه قطعات، سیستم های کوچکتر و قابلیت اطمینان بیشتر می انجامد، از CPUیک تراشه

ها می باشد PCBبی اتصاالت تراشه ها بر روی آنجایی که بیشتر مشکالت مدارات الکترونیکی مدرن ناشی از خرا

تا خود تراشه ها.

های امروزی قابلیت برنامه ریزی در زمان اجرا را دارند که باعث می شود ایده پردازش FPGAبسیاری از

که در زمان اجرا خود را هاییCPUپیکربندی شونده یا سیستم های قابل پیکربندی را به وجود می آورد. مثال

ندی می کنند تا برای انجام یک وظیفه مناسب تر شوند.پیکرب

FPGAساختار کلی -3-2

FPGA از یک سری عناصر منطقی که برای کار خاصی محدود نشده اند تشکیل شده است همچنین دارای

بنابراین هر دو جزء اصلی تشکیل دهنده یک مدار یعنی بلوکهای منطقی و اتصاالت قابل برنامه ریزی است.

همچنین اتصاالت بین آنها قابل برنامه ریزی است.

FPGAساختار کلی -1-3شکل

Page 32: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

22

دارای سه جزء اصلی می باشد که عبارتند FPGAهمانطور که در شکل باال نشان داده شده است معماری اصلی

از:

( Logic Blocksبلوک های منطقی برنامه پذیر) .1

اتصاالت برنامه پذیر .2

( I/O Blocks) خروجی-بلوک های ورودی .3

ها LBنگاشت شود. تعداد FPGAیک مدار کاربردی برای کار بایستی باتوجه به میزان منابع در دسترس بر روی

در حالی که تعداد مسیرها و کانال های مورد های مورد نیاز در طراحی به سادگی قابل اندازه گیری هستند، I/Oو

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

بلوک های منطقی برنامه پذیر -3-2-1

ساختار و .باشند بزرگترو یا خیلی ( اندازه ی یک ماکروسل )بهبلوک های منطقی ممکن است خیلی کوچک

MUX( و یا خیلی پیچیده )نظیر چند NANDمحتویات بلوکهای منطقی می تواند خیلی ساده )در حد یک گیت

( به همراه یک فلیپ فالپ باشد. بلوکهای منطقی در حقیقت جایی هستند که قسمتهای Look-Up Tableیا

قرار بگیرد به اجزای FPGAاست روی راراصلی مدار قرار می گیرند. قابل ذکر است که ابتدا باید مداری که ق

یکسانی که همان محتویات بلوکهای منطقی هستند تقسیم شودو بعد از این عمل است که می توان با متصل کردن

بلوکهای پایه به هم مدارهای واقعی را بدست آورد.

اتصاالت برنامه پذیر -3-2-2

بین بلوکهای منطقی قرار می گیرند و از قطعات فلزی که می "عناصری که برای اتصاالت بکار می روند ، معموال

توانند به هم یا به بلوکهای منطقی متصل شوند تشکیل شده اند، برای متصل کردن این قطعات از سوئیچهای قابل

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

را بتوان در مدهای مختلف ورودی یا خروجی یا ورودی/خروجی، همچنین برای ولتاژهای FPGAاینکه پینهای

ولت و ... برنامه ریزی کرد بکار می روند. زیرا طراحی این دو با هم باید یه گونه ای باشد که 5 یا 3.3مختلف

بین پیچیدگی و انطاف پذیری هر "امکان پذیر سازد. معموال FPGAارات منطقی مختلف را روی پیاده سازی مد

دوی بلوکهای منطقی و منبع اتصالی یک نسبت معکوس وجود دارد. یعنی با زیاد شدن یکی دیگری کم می شود

و بالعکس.

Page 33: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

23

تی پلکسرها، ترانزیستورهای هدف اصلی این قسمت کاهش پیچیدگی در طراحی ها می باشد. این قسمت شامل مال

اثر میدان و بافرهای سه حالته می باشد که هرکدام برای ایجاد اتصاالت مطلوب مورد استفاده قرار می گیرند.

خروجی -بلوک های ورودی -3-2-3

FPGAبرای ایجاد ارتباط میان بلوک های منطقی و ساختارهای مسیریابی با طیف گسترده از قطعات خارج از

پد و دیگر اجزای اطراف آن I/Oبرنامه پذیر گفته می شود. I/Oیا I/O padبه بستر و واسطی داریم که به آن ،نیاز

را پشتیبانی می کنند. این سلول ها اجزای مهمی برای یک I/Oفرم هایی از منطق مدارات را بعنوان سلول های

FPGA از مساحت موثر یک %40هستند و تقریباFPGA کنند. در طراحی بلوک های را اشغال میI/O برنامه

پذیر چالش های اساسی وجود دارد که از آنها می توان به تنوع زیاد در ولتاژ تغذیه و استانداردهای ولتاژ مرجع نام

برد.

هاFPGAمزیت های استفاده از -3-3

آنچه که .است FPGA استفاده ازکاهش سخت افزار مورد نیاز و برنامه نویسی ساده و استاندارد از مزیت های

در زیر به چند مورد از آنها اشاره شده است: که است هاییتوانایی است برده باال را ها FPGA قابلیت و توانایی

.باشد می پردازشی های هسته ایجاد در FPGA اصلی کاربرد .1

.است سریع مدار تست .2

. شود می تمام ارزان پایین تیراژ با تولیدات برای .3

جدید ساختار با را FPGA مجددا و داد انجام توان می طراحی در را الزم تغییرات نیاز، با متناسب .4

.نمود ریزی برنامه

.است کاربر توسط ریزی برنامه قابل .5

کار را ریف کرد تا در یک زمان واحد چندتع FPGA هسته پردازشی داخل یک چند توان می .6

.باهم انجام بدهد

و کنندمی اجرا دستورالعمل سریال صورت به میکروپروسسورها و ها DSP و میکروکنترلرها .7

وجود موازی پردازش قابلیت FPGA در اما ندارد، وجود آنها در موازی بصورت پردازش قابلیت

.همزمان را دارد بصورت عملیات انجام قابلیت و دارد

Page 34: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

24

مدارات در پردازشگر عنوان به موارد اکثر ودر باشدمی تخصصی خیلی FPGA کاربردهای .8

آنها را مساعد کارهای پردازشی سنگین مثل هاFPGA باالی سرعت. شودمی استفاده پردازشی

های دیگر خیلی پردازش تصویر و پردازش صدا می کند و سرعت این پردازش نسبت به سیستم

باالتراست.

9. FPGA نیاز به سرعت پردازش روند که ی دیجیتالی به کار میها در پیاده سازی توابع پیچیده

باالیی دارد.

.نویسی ساده و استاندارد برنامه و نیاز مورد افزارسخت کاهش .10

در حد نانو ثانیه است. و باال بسیار ها FPGA در منطقی توابع اجرای سرعت .11

دو. هر یا یاخروجی ورودی صورت به IC های پایه از یک هر تعریف امکان .12

.استفاده عدم یا استفاده هنگام در پایه هر عملکرد وضعیت تعریف امکان .13

.پایه هر به شده اعمال منطقی رونده باال یا رونده پایین های لبه یا سطوح تغیبیرات تشخیص امکان .14

در آنها معماری نقشه که Bootable های سری از استفاده با داخلی ی معمار متناوب تغییر امکان .15

بامعماری را IC می توان ریزی برنامه آدرس تغییر با و شده نگهداری خارجی حافظه یک

.کرد استفاده آن از و کرده Boot جدید

(که این قابلیت را به وجود می آورد تا بدون اعمال تغییراتی که ISP) مدار در ریزی برنامه امکان .16

. داد تغییر را IC ، معماری داخلیjTAG افزاری هستند و تنها از طریق پورت برنامه ریزیسخت

کاهش حیرت انگیز حجم مدار و مجتمع سازی در ابعادی تنها به مساحت چند سانتی متر مربع. .17

ز عدم تطابق استاندارد ا ناشی مشکالت تمامی بردن میان از و طراحی عناصر سازی یکسان کاهش .18

های مختلف.

.مدار در مجزا و مختلف قطعات وجود از ناشی های نویز تمامی بردن میان از .19

چشمگیر توان مصرفی و اتالف توان.کاهش .20

خطاهای به دستیابی و پیشرفته فناوری از استفاده دلیل به انتشار خطاهای و پردازش سرعت افزایش .21

.مگاهرتز 178 از فراتر کالک فرکانس و 4ns تا انتشار

هایگوشی مانند حمل قابل های دستگاه در آنها از استفاده جهت 3.3v و 5vکار با دو سطح ولتاژ .22

بایلمو

ضریب ایمنی صد در صد به دلیل عدم امکان دستیابی به محتوای داخلی و عدم توان توصیف .23

سازی بسیار پیچیده.سازی و فشردهمحتوای داخلی به دلیل انجام ساده

Page 35: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

25

و بسیاری از قابلیتهای حیرت انگیز دیگر که امکان انجام یک طراحی مجتمع ،کم حجم ،بهینه و سریع را فراهم می

.آورد

FPGAکاربردهای -3-4

FPGA د به کار ندیجیتال که نیاز به سرعت پردازش باالیی دار ی در پیاده سازی توابع نسبتا پیچیده و پیچیدهها

( ،رادیوهای نرم افزاری ، DSPمی توان به پردازش سیگنال های دیجیتال ) FPGAاز جمله کاربردهای .می روند.

،تصویربرداری پزشکی ،پردازش تصویر،تشخیص صداو صحبت، رمز نگاری، بیوانفورماتیک، ASICنمونه سازی

شبکه سازی سخت افزاری، نجوم، تشخیص متال و در گستره فراوانی از علوم اشاره کرد.

ه ها برای مصارفی که در آنها نیار به تولید انبوه نمی باشد استفاده می شود .بدین معنی ک FPGAبه طور سنتی از

در استفاده های با حجم کم ، هزینه تولید هر سخت افزار از اول در مقایسه با یک تراشه قابل برنامه ریزی بسیار

بدین منظور استفاده نمایند. FPGAباالتر می شود و شرکت ها ترجیح می دهند از

عبارتند از : FPGAبرخی از کاربردهای

صنایع دفاعی و هوافضا .1

ASICنمونه سازی .2

صوت .3

خودرو .4

مدارات الکترونیکی .5

مرکز داده .6

صنعت .7

پزشکی .8

امنیت .9

پردازش تصویر و ویدئو .10

ارتباطات سیمی .11

ارتباطات بی سیم .12

Page 36: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

26

3-5- ASIC

برای منظور خاص، طراحی و بهینه سازی شده اند. این چیپ ها ASICمدارهای مجتمع با کاربرد خاص یا همان

ها از نظر کارایی، سرعت عملیاتی و توان مصرفی به مراتب بهتر از میکروکنترلرهای قابل برنامه ریزی برای کاربرد

مشابه است اما قابلیت انعطاف و توسعه پذیری یک میکروکنترلر را ندارد. بدین معنی که یک کاربرد خاص

تعبیه شده و قابل تغییر و گسترش نیست حال آنکه در میکروکنترلر میتوان با ASICسخت افزاری درون بصورت

تغییر برنامه ذخیره شده در مموری میکرو، عملکرد آن را تغییر داد.

ASICبرای و برای تعداد کم بسیار گران تر از میکروکنترلر تمام می شود. یعنی هستندبرای تولید انبوه به صرفه ها

شرکت پشتیبان تعداد باالیی را با قیمتی گزاف تولید می کند که قیمت هر چیپ برای آن تعداد ASICپیاده سازی

.از قیمت میکروکنترلر مورد استفاده بطور قابل توجهی ارزان تر است )دقیقاً مثل عملیات چاپ در چاپخانه ها(

ست آن که هزینه اولیه الزم برای تولید این تراشه ها بسیار ها دارای عیوب عمده ای می باشد. نخ ASICاستفاده از

باالست به طوری که اگر تعداد تراشه های مورد نیاز از حد خاص کمتر باشد تولید آن ها از دیدگاه اقتصادی قابل

ه افزایش باشد . ثانیاً زمان اولیه الزم برای طراحی و تولید آن ها نسبتاً طوالنی است که این موضوع بتوجیه نمی

زمان ارائه محصول به بازار منجر می شود . مشکل دیگر این تراشه ها آن است که در صورت نیاز به ایجاد یک

تغییر کوچک در طراحی، باید پروسه زمان بر و پر هزینه فوق مجدداً طی شود و این دلیل آن است که طراح باید

به منظور بهره سب کرده باشد مخصوصا در تولید انبوه.قبل از سفارش تولید از طراحی خود اطمینان کامل را ک

حلی که راهها معرفی شدند FPGAها و انعطاف پذیری میکروکنترلرها، ASICبردن همزمان از کارایی و قابلیت

ها غالباً برای تولید نمونه FPGAبرای ایجاد یک سیستم با انعطاف پذیری باال و کارایی مورد نیاز می باشند.

ی درحد و یه، تست و همچنین استفاده برای کاربردهای تولید محدود ایده آل می باشند. اگرچه از نظر کارااولی

بدین .را ندارند ASICها نیستند و توان مصرف به مراتب باالتری دارند، اما مشکالت ذکر شده ASICاندازه

می نمایند و آزمایشات و تست های نمونه سازی FPGAترتیب تولید کنندگان محصوالت خود را ابتدا توسط

به سازنده می فرستند. ASICخود را بر روی آن انجام داده و سپس طراحی خود را برای تولید یک

ASIC ها دارای یک مزیت مهم می باشد که آن هم این است که مواد در تولید آن هدر نمی روند چون تعداد

معموال تعداد قابل توجهی از FPGAترانزیستور های استفاده شده در طراحی ثابت شده می باشند.در یک

که ASICر مقایسه با د FPGAترانزیستورها بدون استفاده قرار می گیرند که بدین معنی است که قیمت یک

همان کار را می کند ، بسیار بیشتر می شود.

Page 37: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

27

ارزان تر است اما در مواردی که حجم تولید کم است استفاده از ASICبا توجه به توضیحات باال با وجود اینکه

FPGA ارزانتر می شود ، یعنی هزینه تولید هرIC . با افزایش حجم تولید کاهش می یابد و بر عکس

FPGAانواع معماری های -3-6

می باشد که توسط شرکت های مختلفی ساخته شده اند، این معماری ها چهارنوع مختلف دارای FPGAمعماری

عبارتند از:

متقارن بعدی دو ارایه .1

سطری .2

دریایی از گیت ها . 3

مراتبی سلسله مدارات .4

بلوکها این بین ستونی و سطری صورت به اتصاالت منابع که منطقی بلوکهای از بعدی دو ارایه یک از اول نوع

.است یافته اند تشکیل شده واقع

استفاده می شود. Xilinxکت شر توسط معماری نوع این

پیاده سازی می شود. Actelها می باشد و در حال حاضر .توسط شرکت MPGAنوع دوم شبیه به نسلهای اولیه

نوع سوم متشکل از بلوکهای کوچک منطقی است که با الیه هایی برای برقراری اتصال بین این بلوکها پوشیده

ی متصل شوند که در اشده است .در این گونه ساختار سلولهای منطقی تنها قادرند که به نزدیکترین سلول همسایه

برقراری جهت در توان می نیز منطقی لولهایس از ساختار این در. دارد قرار مختصات افقی یا عمودی مشابهی

در گیتی ظرفیت کاهش نیز و سیگنال مسیر در تاخیر افزایش باعث کاری چنین البته که.کرد استفاده ارتباط

Actel ها می باشد که ان هم توسط شرکت MPGA بعدی نسلهای به شبیه دسترس می گردد .این نوع معماری

در معماریهای جدیدش استفاده می شود.

در سری Atera ها میباشد وتوسط شرکت CPLDوها PLDبر گرفته شده ازمعماری FPGAنوع چهارم معماری

MAX .ساخت این کارخانه استفاده شده است

FPGAتوليد کنندگان -3-7

میتوان به موارد زیر اشاره کرد: FPGAاز تولید کنندگان تراشه های

1-Xilinx

Page 38: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

28

2-Altera

3-Lattice Semiconductor

4-Silicon Blue

5-Quick Logic

6-Microsemi

7-Achronix

8-Actel

از بازار تولید را در کنترل خود دارند. %80در حال حاضر بیش از Alteraو Xilinxدو تولید کننده

که اهم آنها به قرار زیرند: ی با قابلیتهای مختص به خود طراحی کرده اندیشرکتها نرم افزارهااین

MAXPLUS II – Fandation - Leonardo Spectrum – Modelsim

کارهای زیر را انجام "رم افزارها از لحاظ قابلیت و امکانات سرویس دهی با هم تفاوتهایی دارند که معموالاین ن

می دهند:

Schematic Editor - text Editor - Waveform Editor (Simulator) - Compiler- synthesizer Fitter –

Programmer

FPGA برنامه نویسی و طراحی با -3-8

: صورت انجام می شود 2ها به طور کلی به FPGA نویسی و طراحی مدارات با برنامه

... و VHDL ،AHDL با استفاده از زبان های توصیف سخت افزاری مانند. 1

با استفاده از طراحی مدار . 2

نسبت به فرم شماتیک بهتر است چون در صورت بزرگ بودن ساختار مورد نظرمان مشخص HDLاستفاده از فرم

کردن حجم زیادی از سیم بندی ها و کنار هم گذاشتن قطعات مشکل خواهد بود، از سوی دیگر شماتیک دید

ساده تری نسبت به طراحی به ما می دهد.

ل از تراشه نهایی است که برای پیاده سازی انتخاب می گردد .معموال در اصوال روش طراحی مدارات منطقی مستق

برای افزایش سرعت ح قرار دارد کهطرا اختیار در ساخته پیش این گونه طراحی ها یک کتابخانه از بلوکهای

Page 39: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

29

بیشتر نامیده می شوند. IP coresاین مدارهای از پیش تعریف شده .پردازش در طراحی آزموده و بهینه شده اند

این مدارها تحت مجوزهای اختصاصی منتشر می شوند و معموال مجانی نمی باشند. اما برخی دیگر برای توسعه

.اعضای پیچیده تر نظیر معموال به صورت مجانی و منبع باز منتشر می شوند. Open Coresدهندگان به اسم

را ماکرو می نامند .هر ماکرو معموال یک CMOSو T TLشمارنده ها و یا ساختار هایی شبیه تراشه های استاندارد

یا چند سلول از تراشه ها را اشغال می کند که با سیم بندی مناسب تابع مورد نظر را ایجاد می کند .در پروسه

طراحی مهمترین بخش را مرحله شبیه سازی تشکیل می دهد. از انجا که طرح به صورت بخش بخش می باشد

د نظر تست کرده و در مور های خروجیتوان جداگانه و با اعمال ورودی و دریافت کلیه این بخش ها را می

نهایت کل طرح را به طور یک جا تست نمود .

در ماکرو ها می توان تنها بخشهای مورد استفاده در طرح را استفاده کردو بقیه بر خالف تراشه های استاندارد

به گونه مشکل این همه این اما با ل برنامه ریزی از طرح زدود.ماکرو را بدون هدر دادن هیچ بخشی از سلول قاب

ی د یگر می تواند ظهور کند.از انجا که هر تراشه با تعداد ثابتی سلول ساخته می شود. بنابراین پیاده سازی طرح با ا

از این رو در ورده کند.آاولین تراشه ای صورت می گیرد که بتواند تعداد سلولهای مورد نیاز برای طرح را بر

سلول باشد برای طرحی که نیاز به 1500سلول و تراشه بعدی دارای 1000صورتی که کوچکترین تراشه دارای

از تراشه اخیر بدون استفاده رها خواهد شد . %30سلول دارد. 1010

طراحی خودش را در مراحل مختلف در طی FPGAدر یک روند معمولی طراحی، یک توسعه دهنده بر روی

teseاخت سبا استفاده از Verilog یا VHDLدر RTLفرآیند طراحی شبیه سازی می کند. ابتدا توصیف

benchشبیه سازی شده و نتایج سیستم قابل مشاهده می شوند. سپس بعد از سنتز شدن طراحی بر روی هاییnetlist

،netlist جمه شده و شبیه سازی دوباره انجام می گیرد تا هیچ گونه خطایی وجود نداشته به توصیف سطح گیت تر

گذاشته می شود که در این مرحله تاخیرهای انتشار به کار شبیه سازی FPGAباشد در نهایت طراحی بر روی

یادداشت می شوند. netlistاضافه شده و این مقادیر بر روی

)با توجه به اندازه مدار ( و همچنین متصل کردن FPGAل یک یا چند از مرحله شروع تا جا دادن طرح در داخ

گفته می شود. FPGAبلوکهای منطقی به هم اصطالحا سنتز مدار روی

شبيه سازی -3-8-1 دو نوع شبیه سازی توسط نرم افزار انجام می شود:

شبیه سازی منطقی -3-8-1-1

می کند.در این عمل اطالعاتی از زمان بندی و همچنین عملیات این شبیه ساز از نظر منطقی عملکرد مدار را تست

بهینه سازمنطقی در اختیار نیست.اگر خطایی در طراحی باشد در این مرحله مشخص می شود.

Page 40: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

30

شبیه ساز زمانی -3-8-1-2های توان و خازن، در این مرحله که پیش از مسیر یابی و رفع سایر مشکالت صورت می گیرد. پارامتر های تاخیر

یز به محیط شبیه سازی منتقل شده و تصویر واقعی از عملکرد تراشه را به دست می دهد . تاخیر های غیره ن مدار و

تراشه واقعی حالت از بدتر معموال و شود می استخراج دارد دسترس فوق در واقع از کتابخانه ای که نرم افزار در

نی بی پیش مقدار از سریعتر معموال تراشه عملکرد تراشه ریزی برنامه از پس که ای گونه به. است شده نظرگرفته در

شده توسط نرم افزار شبیه سازی است.

FPGAتکنولوژی های برنامه ریزی -3-9

به دلیل وجود سوئیچهای الکتریکی FPGAقابلیت برنامه ریزی شدن مدارات مختلف و اتصاالت متفاوت روی

ها باید دارای مشخصاتی باشند تا اثر منفی بر قابل برنامه ریزی است که روی این تراشه وجود دارد .این سوئیچ

ن است که باید تا حد امکان جای کمی را آمهمترین این مشخصات از جمله .نداشته باشند FPGAروی عملکرد

خازنی کمی داشته باشند تا تاخیر زیادی ایجاد نکنند. سایر مشخصاتی که بعضی اشغال کنند و مقاومت و ظرفیت

، (Non_Volatileنها با از دست دادن برق)آاز این سوئیچها دارند قابلیت حفظ اطالعات نوشته شده بر روی

Programmableقابلیت برنامه ریزی داخل مداری) ، (Reprogrammable) آنها روی قابلیت برنامه ریزی مجدد

in systemبر مبتنی سوئیچ های مثال عنوان به.دارند معایبی و مزایا کدام هر آخر مورد سه باشند. که می غیره( و

بار روشن و خاموش شدن هر با نتیجه دهند، در می دست از را خود اطالعات برق قطع با موقت های حافظه

رنامه ریزی شود.بمجددا باید FPGA، سیستم

اشاره شده است: FPGAدر زیر به برخی از تکنولوژی های برنامه ریزی 1. SRAM 2. Antifuse 3. ROM 4. EPROM 5. EEPROM 6. FLASH 7. FUSE

( EEPROMو EPROMو گیت های شناور ) SRAM ،FLASH ،Antifuseقابل ذکر است که تکنولوژی های

از بقیه مهمتر می باشند.

SRAMتکنولوژی برنامه ریزی -3-9-1

در روش اول از یک سلول حافظه موقت برای کنترل روشن یا حافظه به دو گونه استفاده می شود.از سلول

ا به گیت این ترانزیستور متصل یعنی خروجی سلول حافظه ر ده می شود.اخاموش بودن یک ترانزیستور استف

کنند.می

Page 41: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

31

مشخص می کنند رلتی پلکسهای حافظه به ورودیهای انتخاب یک ما های سلول در روش دوم با اتصال خروجی

این روش دارای این ضعف است که به خروجی متصل می شود. های ورودی مالتی پلکسر که کدامیک از خط

دارد این به نیاز کار این که شود نوشته حافظه سلولهای محتوای مجددا شود می قطع سیستم باید هر بار که برق

گذاشته شود تا هر بار FPGAیا یک دیسک مغناطیسی در کنار EPROM یا PROM دائمی حافظه یک که

مشکل دیگر این روش حجم زیادی است که سلول . موقع روشن شدن اطالعات خودش را از روی ان بخواند

مزیت ، ترانزیستور نیاز دارد .ولی در عین حال 6یا 5زیرا یک سلول حافظه به حافظه به خود اختصاص می دهد.

برای Xilinxن حتی در داخل مدار می باشد.شرکت آافظه های موقت قابلیت برنامه ریزی مجدد استفاده از ح

ستفاده می کند.ز این تکنولوژی اهای ساخت خود ا FPGAبرنامه ریزی

SRAMسلول یک -2-3شکل

FLASHتکنولوژی برنامه ریزی -3-9-2

می باشد. این تکنولوژی FLASHیکی دیگر از تکنولوژی های مورد استفاده تکنولوژی برنامه ریزی مبتنی بر

دارای فواید فراوانی می باشد. به عنوان مثال می توان به غیر فرار بودن این تکنولوژی اشاره نمود. همچنین این

دارای مساحت موثر کمتر می باشد. این تکنولوژی دارای معایبی SRAMتکنولوژی نسبت به تکنولوژی مبتنی بر

SRAMبر خالف FLASHنیز می باشد که از این جمله می توان به این نکته اشاره کرد که برنامه ریزی مبتنی بر

غیر CMOSنمی تواند به تعداد نامحدودی دوباره برنامه ریزی یا پیکربندی شود. این تکنولوژی از فرآیند

تاندارد استفاده می نماید.اس

ANTI-FUSEتکنولوژی برنامه ریزی -3-9-3

توسط و شناخته شده PLICEها که تحت عنوان آنمورد استفاده است .یک نوع FPGAدو نوع انتی فیوز در

Quicklogicتوسط شرکت ،شناخته می شود Vialinkاستفاده می شود و نوع دیگر که تحت عنوان Actelشرکت

استفاده می شود.

Page 42: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

32

FPGA مساحت کمی را اشغال می کنند که این ویژگی از اصلی هایی که از قابلیت انتی فیوز استفاده می کنند

ها می آننتی فیوزها باال بودن فرکانس کاری آاستفاده از دیگر مزیت ترین مزیت های این تکنولوژی می باشد،

دارند.باشد چرا که ظرفیت خازنی و اثر مقاومتی کمی

که قابلیت برنامه ریزی مجدد ندارند و وقتی که یک انتی فیوز برنامه ریزی از معایب این روش می توان اشاره کرد

استاندارد CMOSگردد ، همچنین قابل ذکر است که این تکنولوژی از فرآیند نمی بر شد دیگر به حالت قطع

استفاده نمی کند.

(EEPROMو EPROMتکنولوژی گيت های شناور ) -3-9-4

به Lowيا High ترانزیستور ها خود به عنوان سوئیچی عمل می کنند که با اعمال سطح MOSدر تکنولوژی

در این روش از ترانزیستوری استفاده می شود که دارای ها شد. گیتشان می توان باعث قطع و وصل شدن سوئیچ

ستانه ترانزیستور را با شارژ و دشارژ کردن گیت آبا استفاده از این گیت شناور می توان سطح گیت شناور است.

بین دوم تغییر داد و ترانزیستور را به صورت دائم خاموش کرد . به این ترتیب که با گذراندن یک جریان زیاد

ستانه آعث باال رفتن ولتاژ گیت اصلی و درین ترانزیستور مقداری بار روی گیت شناور قرار می گیرد که با

برای از بین ترانزیستور از حد معمول می شود و در نتیجه در ولتاژهای کاری ترانزیستور همیشه خاموش است.

از جریان الکتریکی استفاده می شود. EEPROMبنفش ودر یاز اشعه ماورا EPROMار در ببردن این

از این روش در سری های اولیه تولید خود استفاده می کرد . مزیت این روش مانند روش استفاده Altera شرکت

در EEPROMودر خارج مدار EPROMاز حافظه موقت قابلیت برنامه ریزی مجدد است.الزم به ذکر است که

برنامه ریزی مجدد را دارا می باشند. داخل مدار

VHDLزبان توصيف سخت افزار -3-10

در الکترونیک ربان توصیف سخت افزار، زبانی کامپیوتری است که برای توصیف ساختار، طراحی و عملکرد

به کاربر این اجازه را می دهند HDLمدارات الکترونیکی و مدارات منطقی دیجیتال استفاده می شود. زبان های

در Cکه مدار خودش را با استفاده از ابزارهایی قبل از تولید تست کند. تفاوت اصلی این زبان ها با زبان هایی مانند

ها دستورات را به شکل همزمان اجرا می کنند در حالیکه اکثر زبان های برنامه نویسی بایستی HDLاین است که

ترتیب اجرا نمایند. خطوط برنامه را به

سیستم های اتوماسیون طراحی الکترونیکی را به شکل مجتمع فرم می دهند، به خصوص مدارات HDLزبان های

بسیار پیچیده مانند میکروپروسسورها.

Page 43: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

33

VHDL . زبان یکی از زبان های توصیف سخت افزاری استVHDL به وزارت دفاع آمریکانخستین بار توسط

سرعت باال طراحی شد و مورد استفاده قرار گرفت . سپس در سال مدارهای مجتمعمنظور طراحی و توصیف

ارائه IEEE 1076-1987(در قالب استاندارد مهندسان برق و الکترونیک انجمن) IEEEتوسط انجمن 1987

IEEEگردید. پس از گذشت چند سال و انجام پاره ای از تصحیحات، استاندارد دوم این زبان تحت عنوان

در اختیار عموم قرار گرفت . 1076-1993

VHDLفاکتورهای قابل مالحضه در ارزش -3-11

VHDLمحبوبیت جهانی زبان .1

وجود انواع مختلف روشهای توصیف در این زبان .2

VHDLوجود نرم افزارهای شبیه ساز .3

VHDLدر اختیار داشتن سنتز کننده های .4

VHDLمزیت های -3-12

یک زبان استاندارد می باشد، کد نوشته توسط آن را می توان به روی سنتز VHDLبا توجه به این که .1

های تولید کنندگان مختلف پیاده سازی نمود و نیازی به تغییر کد وجود ندارد . تراشهکننده ها و

ان در دسترس و ارزان قیمت می باشند .این زب کامپایلرهایها و شبیه ساز .2

نمود. توصیف مدل سازیبا استفاده از این زبان می توان سیستم ها را به صورت ساختاری یا رفتاری .3

ستم و چگونگی تولید خروجی ها بر اساس سیگنال های ورودی می باشد رفتاری نشان دهنده عملکرد سی

. با استفاده از این توصیف می توان عملکرد کلی سیستم را بیان کرد و از درگیر شدن با جزئیات بلوک

های سازنده سیستم که در طرح های بزرگ به پیچیدگی توصیف سیستم منجر شود اجتناب نمود . در

نشان دهنده نحوه ارتباط بلوک های سازنده سیستم است و بیانگر جزئیات بیشتری مقابل مدل ساختاری

تا گیتاز سطح افزار سختمی باشد . به این ترتیب با استفاده از این زبان امکان توصیف سخت افزاراز

سیستم فراهم می شود .

می توان سیستم های پیچیده را توسط ارتباط بین بلوک های سازنده با استفاده از توصیف سخت افزاری .4

ساده تر از زبان های VHDLآن ها مدل سازی نمود، به این ترتیب پیاده سازی این سیستم ها توسط زبان

می باشد . cاز قبیل برنامه نویسی

Page 44: Rajabi

FPGAپذیر های منطقی برنامهآرایه سومفصل

34

ه ، می توان از المان های موجود و نوشته شدVHDLها در زبان componentبا بکار گیری کتابخانه ها و .5

ها و توابع در زبان های برنامه نویسی DLL. در واقع عملکرد آن ها شبیه در سایر طراحی ها استفاده نمود

افزاری می باشد.نرم

این زبان بسیار بیشتر از طراحی شماتیک است سرعت طراحی و پیاده سازی سیستم های پیچیده توسط .6

تعیین می شود . به این ترتیب افزار سنتز کنندهها و بلوک ها، توسط نرم گیتزیرا چگونگی اتصال

سازی کرده، تغییرات و اصطالحات مورد نیاز توان سیستم های پیچیده را در مدت زمان کوتاهی پیادهمی

را در برنامه اعمال نمود .

استفاده از این زبان بستر مناسبی برای شبیه سازی سیستم مورد توصیف ایجاد می کند و پس از اطمینان از .7

صحت عملکرد کد نوشته شده در محیط شبیه ساز، می توان توصیف سیستم را به روی تراشه مورد نظر

کرد .پیاده

Page 45: Rajabi

پياده سازی برنامه بزرگ نمایی تصاویر به زبان -فصل چهارم

توصيف سخت افزار

هدف اصلی این پروژه شبیه سازی برنامه بزرگ نمایی تصاویر به زبان توصیف سخت افزار می باشد. که در این

فراهم شود. FPGAراستا تالش شده است پروژه ای کامل و بی نقص ارائه شود تا امکان پیاده سازی آن بر روی

در ادامه به مراحل ساخت سخت افزار طراحی شده می پردازیم.

پياده سازی برنامه بزرگ نمایی -4-1

هدف اصلی از انجام این پروژه بزرگ کردن تصاویر می باشد که برای این منظور به این صورت کار شده که

برای بزرگ کردن تصویر هر پیکسل از تصویر اولیه درون یک ماتریس مربعی که سایز آن برابر با مقدار بزرگ

:که یک ماتریس به صورت زیر داریم مثال فرض میکنیمنمایی است تکرار شود، به عنوان

[𝑎 𝑏 𝑐𝑑 𝑒 𝑓

]

تکرار کنیم. 2×2در صورتی که بخواهیم آن را دوبرابر کنیم باید هرکدام از درایه های آن را در یک ماتریس

ماتریس بزرگ شده به صورت زیر در می آید:

[ [

𝑎 𝑎𝑎 𝑎

] [b bb b

] [c cc c

]

[𝑑 𝑑𝑑 𝑑

] [e ee e

] [f ff f

]

]

Page 46: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

36

FPGAپين های -4-2

1. Data :FPGA پایه دیتا بوده که داده ورودی و خروجی روی آنها قرار می گیرد : 24دارای

Data(0) الیData(23)

2. CMD :FPGA پایه 3داریCommand و ورودی توان به آن دستور داد یا دستور است ، که ب

CMD 2و CMD 0 ،CMD 1باشند : می

3. CMDD :FPGA پایه 13دارایCommand Data است تا بتوان داده مورد نیازCMD را به

FPGA : داد و یا نتیجه اجرا دستور را در آن قرار داد که ورودی/خروجی می باشندCMDD0 الی

CMDD12

4. WE :Write Enable ورودی :

5. RE :Read Enable : ورودی

6. RST :Reset ورودی :

7. CLK :Clock ورودی :

8. RD :Ready برای نشان دادن وضعیت آماده بودن یا نبودن :FPGA استفاده می شود و خروجی

می باشد.

FPGAپایه های خروجی -4-2-1

FPGAساختار -3-3شکل

Page 47: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

37

هستند ، مثال FPGAدارای دو نقش در FPGAهمان طور که در شکل باال مشاهده می شود ، بعضی از پایه های

)ورودی/خروجی( را نیز ایفا Command Data 0)ورودی/خروجی(، نقش Data 0عالوه بر نقش Data(0)پایه

می کند.

FPGAو پيکربندی Configنحوه -4-3

حالت های مختلفی برای عملکردهای مختلف دستگاه CMDD و CMDدر این پروژه با استفاده از پایه های

ایجاد کرده ایم. در زیر نحوه ی این پیکربندی را توضیح می دهیم :

قرار داده و همچنین CMD 0 – CMD 2مورد نظر را روی پایه های Commandدر ابتدا دستور و .1

قرار داده . CMDD12الی CMDD0را روی پایه های Command Dataداده دستور و

را فعال نموده . RSTپایه .2

ها نیز به صورت زیر عمل می کنیم : commandبرای نوشتن دستورات و

ریست :.1

عمکلرد متفاوتی خواهد CMDDقرار داد و بسته به مقدار "000"را برابر CMD[2-0]نمودن باید Resetبرای

داشت :

CMDD[1-0] CMD[2-0] عملکرد 00 برگشت به تنظیمات اولیه ریست نمودن کلی و

000

شده باشد ، و دستگاه با مشکل Loadدر صورتی که یک عکس

روبروشده باشد و یا دستور نادرستی داده باشیم و بخواهیم دستگاه را

شده از بین نرود از این حالت استفاده Loadآماده کار کنیم و عکس

می کنیم

01

شده و عکس بزرگ شده از بین نمی رود Loadعکس

مُد داده ورودی/خروجی تغییر نمی کند10

- 11

.تغییر مُد داده ورودی/خروجی :2

بیتی است( 24 بیتی باشد)به صورت پیش فرض 16بیتی یا 24مُد داده ورودی/خروجی می تواند

Page 48: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

38

شود : "001"برابر CMD[2-0]باید برای تغییر مُد

CMDD[0] CMD[2-0] عملکرد 0 بیتی 24مد داده ورودی/خروجی :

001 1 بیتی 16مد داده ورودی/خروجی :

شده باشد ، و مُد را تغییر دهیم)مُدی متفاوت با عکس بارگذاری شده( ، Loadر صورتی که یک عکس قبال د

شده و بزرگ شده از بین خواهند رفت . Loadعکس

تغییر میزان بزرگنمایی :.3

قرار داده و میزان بزرگ نمایی را داخل "010"را برابر CMD[2-0]برای تغییر میزان بزرگ نمایی ، باید

CMDD : قرار دهیم

CMDD[12-0] CMD[2-0] بزرگ می شود( CMDDمیزان بزرگنمایی)هر پیکسل به مقدار

010 0 : عدم بزرگنمایی : عکس ورودی و خروجی یکسان بوده 0

1 : عکس خروجی دو برابر عکس ورودی است 1

i ( عکس خروجی :i+1برابر عکس ورودی است ) … : i

8191 برابر عکس ورودی است 8192: عکس خروجی 8191

پس از تغییر میزان بزرگنمایی ، عکس بزرگ شده از بین می رود .

گ نمایی بصورت پیش فرض صفر می باشد.میزان بزر

عکس اصلی :تعیین سایز .4

باشد : "CMD[2-0] ،"011برای مشخص نمودن سایز عکس اصلی باید

CMDD[0] CMD[2-0] نتیجه ریخته CMDD[12-1]تغییر طول عکس : طول عکس را در

پیکسل بوده 240 فرض طول عکس بصورت پیش0

011 ریخته CMDD[12-1]تعداد ستون ها را در تغییر تعداد ستون ها :

پیکسل بوده 320 فرض بصورت پیشعرض عکس 1

: Debug Status.خواندن و نوشتن وضعیت : 5

Page 49: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

39

نمائیم و وضعیت آنرا بخوانیم یا تغییر دهیم)در صورت امکان( ، باید debugرا FPGAدر صورتی که بخواهیم

CMD[2-0] قرار داد . "100"را

را FPGAو در صورتی که بخواهیم وضعیت "CMDD[0] ،"0در صورتی که بخواهیم وضعیت را بخوانیم باید

باشد : "1"تغییر دهیم ، باید

CMDD[0] CMD[2-0] نتیجه 0 ریخته می شود CMDD[11:0]در FPGAوضعیت : خواندن

100 1 ریخت CMDD[12:1]نوشتن : وضعیت جدید را باید در

، وضعیت جدید باید امکان پذیر باشد. FPGAبرای نوشتن وضعیت و تغییر دادن وضعیت

شده : Load.خواندن یک پیکسل از عکس 6

برابر با CMD[2-0]را بخوانیم ، باید FPGAشده روی Loadدر صورتی که بخواهیم حافظه مربوط به عکس

قرار گیرد. CMDDشود ، و همچنین شماره پیکسل در "101"

راه اندازی دستگاه -4-4

نموده و سپس موارد زیر را انجام می دهیم : Configبرای راه اندازی دستگاه ، ابتدا آنرا

انتقال عکس به دستگاه : .1

REقرار داده و پایه Dataبرای انتقال یک عکس به دستگاه ، اطالعات اولین پیکسل را روی خط

به دستگاه داده Clockباید غیر فعال باشند( و سپس یک RSTو WEرا فعال نموده )پایه های

را غیرفعال نموده )عدم آمادگی دستگاه برای انجام یک کار یا دستور دیگر( دستگاه RDابتدا پایه

فعال می شود ؛ حال می توان به همین ترتیت RDو پس از ذخیره نمودن دیتا و آمادگی دستگاه پایه

یکی یکی به دستگاه منتقل نمود .اطالعات سایر پیکسل ها را

بزرگنمایی تصویر : .2

را فعال نموده )پایه REو WEباید پایه های یی تصویر و آماده شدن عکس خروجی برای بزرگنما

RST باید غیر فعال باشد( و سپس یکClock .به دستگاه می دهیم

را غیرفعال نموده )عدم آمادگی دستگاه برای انجام یک کار یا دستور دیگر( دستگاه RDابتدا پایه

فعال می RDو پس از بزرگ شدن عکس و آماده شدن عکس خروجی و آمادگی دستگاه پایه

.شود

Page 50: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

40

انتقال عکس بزرگ شده به خروجی : .3

WEه و پایه قرار داد Dataبرای انتقال یک عکس به دستگاه ، اطالعات اولین پیکسل را روی خط

به دستگاه می دهیم. Clockباید غیر فعال باشند( و سپس یک RSTو REرا فعال نموده )پایه های

را غیرفعال نموده )عدم آمادگی دستگاه برای انجام یک کار یا دستور دیگر( و پس از ذخیره دستگاه RDابتدا پایه

می توان به همین ترتیت اطالعات سایر پیکسل ها را فعال می شود ؛ حال RDنمودن دیتا و آمادگی دستگاه پایه

یکی یکی به دستگاه منتقل نمود .

طراحی برنامه -4-5

: BinToIntتابع .1

( تبدیل می کند. integer این تابع مقادیر باینری را به اینتیجر)

FUNCTION BinToInt (bin : BIT_VECTOR) RETURN INTEGER IS

VARIABLE result: INTEGER;

BEGIN

result := 0;

FOR I IN bin’RANGE LOOP

IF bin(i) = ‘1’ THEN

result := result + 2**i;

END IF;

END LOOP;

RETURN result;

END BinToInt;

: IntToBinتابع .2

به باینری استفاده می شود. integerبرای تبدیل مقادیر

Function IntToBin (Number : Integer ; MaxIndex : Integer) Return Bit_Vector is

variable s : Bit_Vector(MaxIndex downto 0) := “000000000000000000000000”;

variable t : Integer;

variable I : Integer;

Page 51: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

41

BEGIN

t := Number;

I := 0;

while t /= 0 Loop

IF(t mod 2 =0) then

s(i) := ‘0’;

ELSE

s(i) := ‘1’;

END IF;

I := I + 1;

t := t / 2;

END Loop;

return (s);

END IntToBin;

عکس از جمله مواقعی که این تابع کاربرد دارد می توان به وقتی اشاره کرد که می خواهیم مقادیر طول و عرض

قرار بده که باید این عدد ابتدا به 320را به دستگاه بدهیم.)به طور مثال به دستگاه می گوییم طول عکس را برابر با

( باینری تبدیل شود

بیتی : 24و 16مد رنگی .3

FUNCTIONدر این پروژه مدهای رنگی را مد نظر قرار دادیم و برای تبدیل آنها به یکدیگر تابع

Color24To16 و 21و 15و 14و 7و 6و5را پیاده سازی کرده ایم. نحوه این تبدیل این گونه است که بیت های

را به 16(. قابل ذکر است که در صورتی که بخواهیم مد 16به مد 24را استفاده نمیکنیم )برای تبدیل مد 23و 22

تبدیل کنیم باید مقادیر بیت های گفته شده را صفر قرار دهیم. 24مد

برای ذخیره سازی عکس حافظه .4

برای ذخیره سازی عکسی که از ورودی دریافت می کنیم یک حافظه به صورت آرایه ایجاد می کنیم که هرکدام

بیتی می باشد و در 24بیتی می باشد. دلیل اینکار به علت وجود مد 24از خانه های آن نیز به صورت یک آرایه

را با مقدار صفر پر کنیم. 23تا 16نیم باید خانه های بیتی استفاده ک16صورتی که بخواهیم از مد

Page 52: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

42

ای به همین صورت باید ایجاد شود.برای ذخیره سازی عکس بزرگ شده نیز حافظه

5. Process (clk , RST)

سخت افزار به حالت های توضیح داده شد 3-4نحوه پیکربندی که در قسمت باتوجه به در این پروسس

مختلفی می رود.

CMD[2:0]می باشند و بیت های Data[0-12]همان خطوط CMDD [12-0] است که بیت هایقابل ذکر

می باشند. Data[15-13]،خطوط

مقدار صفر را داشته باشد مشخص میشود که عملیات الزم روی دستگاه انجام نگرفته RDدر صورتی که خط

مقدار صفر را دارد و وقتی RDخط به عنوان مثال هنگامی که دستگاه در حال بزرگ کردن عکس می باشد

مقدار یک میگیرد که این نشان دهنده ی این است که RDکه عمل بزرگنمایی به طور کامل انجام شد

بعدی میباشد. state به دستگاه عملیات را به طور کامل انجام داده و آماده رفتن

باید RSTباید از صفر به یک تغییر کند.) RSTمقدار خط باید توجه داشته باشیم که برای انجام این اعمال

فعال باشد. (

مقدار دهی میشود که به صورت پیش فرض طول در این پروسس مقادیر بزرگنمایی، طول،عرض عکس

)در این حالت عکس ورودی و خروجی باهم 0و مقدار بزرگنمایی را برابر با 240،عرض آن را 320عکس را

فته ایم.برابر می باشند.( در نظر گر

قابل ذکر است که برای مشخص کردن اینکه خواندن عکس ورودی به اتمام رسیده است یا خیر و برای

را resimage-readyو image-readyمشخص نمودن اینکه بزرگ کردن عکس به پایان رسیده است دو خط

شود که این عملیات به در نظر گرفته ایم که در صورتی که این خطوط مقدار یک را داشته باشند مشخص می

اتمام رسیده است.

6. Resize کردن عکس

در صورتی که Clkباید یک باشند که با آمدن لبه ی باال رونده ی WEو REبرای این عمل مقادیر خطوط

مقدار صفر resimage-readyو RDباشد خط DownLoadImageیا ReSizeImageدستگاه در حالت

که نحوه ی عملکرد آن در forرفته و سپس توسط چهار حلقه ReSizingImage میگیرد و دستگاه به حالت

Page 53: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

43

resimage-readyو RDتوضیح داده شد به بزرگنمایی تصویر می پردازد . در آخر خطوط 1-4قسمت

می رود. ReSizeImageیک گرفته و دستگاه به حالت مقدار

شبيه سازی و نتایج -4-6

در این قسمت به شبیه سازی برنامه نوشته شده می پردازیم. این شبیه سازی با استفاده از نرم افزار شبیه سازی

ModelSim شرکتAltera انجام گرفته است. تمامی قسمت های این برنامه به طور کامل شبیه سازی شده است

.جلوگیری به عمل آیدتا از هر گونه اشکال احتمالی

نوشته شده است که در زیر به توضیح نحوه ی عملکرد testbenchبرای انجام عمل شبیه سازی یک در این پروژه

آن پرداخته ایم.

که SetZoomOutمتشکل از چند پروسیجر است که از جمله ی آن می توان به پروسیجر های testbenchاین

عرض عکس و غیره میتوان اشاره برای Set PicH که برای طول عکس ، SetPicW،برای تعیین میزان بزرگنمایی

ایم.آنها پرداخته برخی از کرد که در ادامه به توضیح

به صورت مجزا از هم در نظر گرفنه DateOutو DataInنوشته شده خطوط testbenchقابل ذکر است که در

شده اند.

در نظر گرفته شده اند تا بتوانیم از آنها در قسمت مخلف برنامه Componentورودی های برنامه به صورت یک

استفاده کنیم.

و 1باید فعال بشود به همین دلیل در ابتدا مقدار RST در تمام پروسیجرهایی که در ادامه به آنها می پردازیم خط

را به خود می گیرد. 0دوباره مقدار 1nsبعد از گذشت

بیتی 24و 16مد رنگی .1

( در این صورت طبق Data IN (15 down to 13))ریخته CMD[2-0]را در 001ین پروسیجر مقدار در ا

در حالت تغییر مد داده ورودی /خروجی قرار میگیرد. 3-4گفته شده در بخش توضیحات

Procedure SetColorMode(Constant Mode;Signal DataIn; Signal RST)

{

DataIn(0) <= Mode;

DataIn(15 downto 13) <= "001";

Page 54: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

44

RST <= '1' , '0' after 1 ns ;

}

تعیین اندازه بزرگ نمایی .2

Data IN (12 down )قرار می گیرد CMDD[12-0]در این پروسیجر مقدار بزرگنمایی تصاویر روی پایه های

to 0) ) همچنین پایه های ،CMD[2-0] می گیرد که در این صورت طبق توضیحات ارائه شده در 010مقدار

در حالت تغییر میزان بزرگ نمایی تصاویر قرار می گیریم. 3-4بخش

Procedure SetZoomOut(Constant ZoomOutValue;Signal DataIn;Signal RST)

{

DataIn(12 downto 0) <= IntToBin(ZoomOutValue,13);

DataIn(15 downto 13) <= "010";

RST <= '1' , '0' after 1 ns ;

}

تغییر طول عکس .3

CMDD[12-1]مقداردهی می کنیم و اندازه طول عکس در 011را با CMD[2-0]در این پروسیجر پایه های

.ریخته می شود

Procedure SetPicW(Constant W;Signal DataIn;Signal RST)

{

DataIn(0) <= '0';

DataIn(12 downto 1) <= IntToBin(W,12);

DataIn(15 downto 13) <= "011";

RST <= '1' , '0' after 1 ns ;

}

تغییر عرض عکس .4

CMDD[12-1]کنیم و اندازه عرض عکس در دهی میمقدار 011را با CMD[2-0]در این پروسیجر پایه های

ریخته می شود.

Procedure SetPicH(Constant H;Signal DataIn;Signal RST)

Page 55: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

45

{

DataIn(0) <= '1';

DataIn(12 downto 1) <= IntToBin(H,12);

DataIn(15 downto 13) <= "011";

RST <= '1' , '0' after 1 ns ;

}

240و 320طول و عرض عکس به صورت پیش فرض پیوست شده( use unitنوشته شده )کد tese benchدر

برابر با صفر در نظرگرفته CModeو ZoomOutدر نظر گرفته شده است و همچنین به صورت پیش فرض مقدار

.(در نظر گرفته شده است 1بیتی با مقدار بزرگنمایی 24در مد 240×320 ) یک عکس شده است.

برابر 6را به دستگاه می دهیم و می خواهیم آن را 3×2تگاه یک عکس ادامه به منظور نشان دادن عملکرد دس در

همانطور که در تصاویر شبیه سازی شده که در زیر آورده ایم مشاهده می شود که سایز عکس در ابتدا کنیم

کرد.ن مشاهده ها را می توا stateهمچنین تغییر در تغییر کرده است 3×2بوده است که در ادامه به 240×320

Page 56: Rajabi

سازی برنامه بزرگ نمایی تصاویر ... پیاده چهارمفصل

46

نتيجه شبيه سازی -1-4شکل

این برنامه داخل سی دی پیوست شده به این پایان نامه می باشد . VHDLکد

Page 57: Rajabi

نتيجه گيری -فصل پنجم

مکانیزاسیون با ها سیستم این . است مصنوعی هوش یها شاخه مهمترین از ماشین بینایی و تصویر پردازش

اساسی از یکی پیرامون محیط درک که آنجایی دهداز می قرار ما اختیار در مناسبی امکانات فعلی یها سیستم

و دهد می نشان بیشتر را خود اهمیت تصویر پردازش مسئله ، شود می محسوب عاملی هر هوشمند یها عامل ترین

در .باشند نمی استفاده قابل اساسا ،آن بدون که هستند وابسته تصویر پردازش به آنچنان کاربردها این از بعضی

پردازش به نیاز طوالنی و مداوم یکارها انجام در انسان توانایی عدم و انسان بینایی یخطاها ، موارد این کنار

و است وسیع بسیار ،رشد حال در یفناور از شاخه این کاربرد دامنه. دهد می جلوه بیشتر را ماشین بینایی و تصویر

مثل جدید یها تکنولوژ تا گرفته ویدئویی نظارت و تولید خط کیفیت کنترل مثل معمولی و معا یکاربردها از

اخیر یسالها در تصویر پردازش علم که چشمگیر رشد به توجه با. است دربرگرفته را راننده بدون یها اتومبیل

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

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

FPGA ها بستری مناسب برای توسعه سیستم های مختلف و کارا را برای طراحان و توسعه دهندگان ایجاد کرده

اند. با توجه به اینکه این مدارات مجتمع قابل برنامه ریزی هستند و می توان بر روی آنها چندین بار برنامه ریخت و

ه قرار می گیرند و در موارد تحقیقاتی بسیار سودمند مورد توجسیستم مورد نظرمان را با استفاده از آن تست کنیم،

می باشند.

در ابتدای این پایان نامه پس از ایراد مقدمه، به تاریخچه ای از پردازش تصویر پرداخته شد و مفاهیمی مانند آستانه

گیری ، هیستوگرام، لبه های تصویر وغیره توضیح داده شد.

Page 58: Rajabi

گیرینتیجه پنجمفصل

48

پرداخته شد و دریافتیم که این مدارات به شکلی طراحی شده FPGAی در فصل سوم به تاریخچه ای از تراشه ها

VHDLو در ادامه به توضیحاتی راجع به ربان توصیف سخت افزاری اند که قابل برنامه ریزی مکرر می باشند

پرداختیم.

طراحی VHDLرا دارد به زبان FPGAکه قابلیت انتقال به روی در فصل چهارم برنامه بزرگ نمایی تصاویر را

کردیم.

Page 59: Rajabi

هاکوتاه نوشت

49

کوتاه نوشت ها

HDL:Hardware Description Language

FPGA:Field – Programmable Gate Array

VHDL: VHSIC(Very High Speed Integrated Circuit) Hardware Description Language

PLD: Programmable Logic Design

CMOS: Complementary Metal-Oxide Semiconductor

JPL: Jet Propulsion

CAT:Computerized Arial Topography

MRI: Magnetic Resonance Imagery

PIXEL: Picture Element

JPEG: Joint Photographic Expert Group

MPEG: Moving Picture Expert Group

LB: Logic Block

LUT: Look-up Table

SOC: System On Chip

ASIC: Application – Specific Integrated Circuit

Page 60: Rajabi

منابع

50

منابع

، مرتضی خادمی، داود جعفری، چاپ پنجم، دانشگاه فردوسی "پردازش تصویر رقمی"گونسالس، رافائل، [1]

.1389مشهد،

لیسانس، دانشکده فنی و "، FPGA طراحی و شبیه سازی یک پردازنده نرم بر روی "سینا برومند ثانی، [2]

. 1392مهندسی، دانشگاه شهید باهنر کرمان،

، لیسانس، گروه مهندسی نرم افزار، دانشگاه شمال. "پردازش تصویر "فاطمه سیفی، [3]

رضا طباطبائیان،مقاله و تازه های علمی برق و کامپیوتر. احمد [4]

. 1382، لیسانس، گروه مهندشی سخت افزار،" VHDL آموزش"فرشید سفیدگران، [5]

نی مهندسی، دانشگاه اصفهان.، دانشکده ف"بان توصیف سخت افزارخودآموز ز"ابراهیم جهاندار، [6]

[7] V . A Pedroni, Circuit Design and Simulation with VHDL , The MIT Press,

2010.

[8] http://en.wikipedia.org.

[9] http://wikiproject.ir

[10] http://iran24h.com

[11] http://fa.wikipedia.org/wiki

http://ai.amini.eu/tutorial/diplntro.aspx,اتاق فکر هوش مصنوعی و رباتیک[12]

،فرزان گیتی، چاپ اول، تهران، موسسه فرهنگی هنری " VHDLآموزش "اشتنان شوهولم، لنارت لبند، [13]

. 1383دیباگران تهران،

Page 61: Rajabi

Abstract: The science of image processing is a useful and widely used science in

artificial intelligence. Day by day, this science has comprehensively and professionally been finding a more significant and fundamental role in modern society and our country, Iran, is almost at the beginning of the way. Besides, in working with images and

processing them, the issue of great image data is one of the considerable points. Also, according to the capabilities and advantages of the FPGA as well as the worldwide

popularity and importance of HDL language, in the present study an effort is made to consider magnifying images in the hardware description language. In addition, designing stages serves as coding different parts in VHDL language and the attempt has been in

the direction of the completion of various parts of this hardware. All device functions; furthermore, are simulated and tested using Modelism software and finally, it is ready

for being loaded on FPGA.

Page 62: Rajabi

Shahid Bahonar University of kerman

Faculty of Technical Engineering

Department of Computer Engineering

B.Sc.Thesis

Image enlargement simulation in VHDL

Supervisor:

Dr. Vahid Sattari Naeini

By:

Vida Rajabi

May 2014