پایان نامه بررسی و شبیه سازی عملکرد کنترلر CAN ، با استفاده از زبان توصیف سخت افزاری VHDL، و پیاده سازی آن بر روی FPGA در word دارای 99 صفحه می باشد و دارای تنظیمات و فهرست کامل در microsoft word می باشد و آماده پرینت یا چاپ است
فایل ورد پایان نامه بررسی و شبیه سازی عملکرد کنترلر CAN ، با استفاده از زبان توصیف سخت افزاری VHDL، و پیاده سازی آن بر روی FPGA در word کاملا فرمت بندی و تنظیم شده در استاندارد دانشگاه و مراکز دولتی می باشد.
این پروژه توسط مرکز مرکز پروژه های دانشجویی آماده و تنظیم شده است
توجه : توضیحات زیر بخشی از متن اصلی می باشد که بدون قالب و فرمت بندی کپی شده است
بخشی از فهرست مطالب پروژه پایان نامه بررسی و شبیه سازی عملکرد کنترلر CAN ، با استفاده از زبان توصیف سخت افزاری VHDL، و پیاده سازی آن بر روی FPGA در word
چکیده
فصل اول – مقدمه
1-1- مقدمه
1-2- معرفی CAN
1-3- مقدمه ای بر تراشه های قابل برنامه ریزی
1-4- مروری بر زبان های توصیف سخت افزاری
1-5- نرم افزارهای طراحی تراشه های FPGA
فصل دوم – مروری بر کارهای انجام شده
2-1- مقدمه
2-2- میکروکنترلر مقاوم شده در برابر تشعشع
2-3- کانولوشن کننده های (Convolelrs) دو بعدی
2-4- فیلترهای دیجیتال
2-4-1- فیلترهای با پاسخ ضربه محدود (FIR)
2-4-2- فیلترهای با پاسخ ضربه نامحدود (IIR)
2-4-3- فیلترهای Wavelet متقارن
2-5- تبدیل کسینوسی گسسته و معکوس آن (IDCT,DCT)
2-6- مبدلهای فضای رنگی ( )
2-7- مدولاتور دیجیتال
2-8- کنترلر گذرگاه USB
2-9- کنترلر گذرگاه PCI
2-10-کد کننده گفتار ITU-T G
2-11- کد کننده ها کدفایر
2-12- پیاده سازی سخت افزاری الگوریتم های سطح بالای پردازش تصویر
با استفاده از پیکر بندی جزئی FPGA در زمان اجرا
2-13- مترجم های زبان های سطح بالا به زبان VHDL
2-14- پیاده سازی یک پردازشگر تصویر قابل پیکر بندی مجدد
2-15- جمع بندی
فصل سوم – کنترلر گذرگاه CAN
3-1- مقدمه
3-2- پایه های تراشه کنترلر CAN
3-3- بررسی سخت افزار کنترلر CAN
3-3-1- شمارنده های خطا در کنترلر CAN
3-3-2- ثبات های کنترل
3-3-2-1- ثبات فعال کننده وقفه ها
3-3-2-2- ثبات وضعیت
3-3-2-3- ثبات واسط CPU
3-3-2-4- ثبات پیکربندی گذرگاه
3-3-2-5- ثبات CIK out
3-3-3- واحد زمان بندی بیت
3-3-3-1- سرعت نامی نرخ بیت
3-3-3-2- ثبات صفر زمان بندی بیت
3-3-3-3- ثبات یک زمان بندی بیت
3-3-4- ثبات ماسک توسعه یافته و استاندارد
3-3-5- بسته های پیام
3-3-5-1- میدان کنترل
3-3-5-2- میدان داوری یا شناسه
3-3-5-3- میدان داده
3-3-5-4- میدان ترکیب بندی
3-3-6- ثبات وقفه
3-4- دریافت و ارسال پیام
3-4-1- انواع فریم های اطلاعات قابل مبادله بین گره ها و کنترلر
3-4-1-1- فریم داده
3-4-1-2- فریم دور
3-4-1-3- فریم خطا
3-4-1-4- فریم اضافه بار
3-4-2- بررسی کدهای خطا در تبادلات کنترلرCAN
فصل چهارم – خلاصه ای از خصوصیات اصلی زبان VHDL
4-1- مقدمه
4-2- شی (object)
4-3- عملگرهای زبان VHDL
4-4- توصیف کننده های یک مولفه
4-5- ساختارهای همزمانی و ترتیبی
4-6- روشهای توصیف سخت افزار
4-6-1- روش توصیف ساختاری
4-6-2- روش توصیف فلوی داده (Data Flow)
4-6-3- روش توصیف رفتاری
4-7- کد نویسی قابل سنتز
4-8- جمع بندی
فصل پنجم – پیاده سازی کنترلر گذرگاه CAN
5-1- مقدمه
5-2-ثبات ارسال و دریافت پیام در کنترلر
5-3- ثبات ماسک
5-4- سیستم مقایسه شناسه ها
5-5- افزایش تعداد بسته های پیام
5-6- واحد محاسبه کننده کد CRC
5-7- دیاگرام پایه های کنترلر طراحی شده و پیاده سازی دیکودر آدرس
5-8- نرم افزار مورد استفاده در پیاده سازی کنترلر CAN
5-9- جمع بندی
فصل ششم – نتایج و جمع بندی
6-1- مقدمه
6-2- نتایج حاصل از تست وضعیتهای مختلف کنترلر
6-3- نتایج حاصل از تست واحد CRC توسعه یافته
6-4- نتایج حاصل از تست stuff bit
6-5- ارسال فریم خطا
6-6- بررسی وضعیت پایه فرکانس خروجی CLK out
6-7- بررسی عملکرد حالت Sleep , pwd
6-8- نتایج مربوط به پیاده سازی سخت افزار روی تراشه
6-9- نتیجه گیری و پیشنهادات برای ادامه کار
مراجع
بخشی از منابع و مراجع پروژه پایان نامه بررسی و شبیه سازی عملکرد کنترلر CAN ، با استفاده از زبان توصیف سخت افزاری VHDL، و پیاده سازی آن بر روی FPGA در word
[1]”82527 Serial Communications Controller”, Intel,
[2] “Data Link Layer”, available at Am Weichselgarten 26, D-91058 Erlangen, headquarters@ can – cia. De
[3]”Milsone of CAN history”,
[4] “CANopen,an overview
[5] “CAN in passenger cares
[6] عباس وفائی مبانی تراشه های قابل برنامه ریزی دانشگاه اصفهان، 1380
[7] Ghosh . s, “Hardware Description Language, Concepts and principles”, IEEE Press,
[8]DeLima,F.G.E.,Carro,L.,Lubaszewski,M.,Reis,R., Velazco,R.,”Designing a Radiation Hardened 8051 – Like Micro-Controller”,proceedings of the 13th Symposium on Integrated Circuits and Systems Design , Grenoble- France
( SBCCI’00 )
[9] “Implementing Logic with the Embedded Array in FLEX 10K Devices”
[10] Kazizimierz Wiatr and Ernest Jamro,”Implementation Image Data Convolutions operations in FPGA Rconfigurable Structures for Real – Time Vision Systems”,proceedings of the The Interntional Conference on Information Technology: Coding and Computing
[11] ستار میرزا کوچکی، شهرام طلاکوب” پیاده سازی سخت افزاری یک فیلتر دیجیتال FIR معکوس شده”. دهمین کنفرانس برق، تبریز، اردیبهشت
[12] Oppenhim, A. V. And Schafer, R.W.”Discrete-Time Signal processing”, prentice –Hall,
[13]”Impementing FIR Filters in FLEX Devices”,
[14] Lorca, F.G, Kessal, L., Demigny, D. “Efficient ASIC and FPGA Implementations of IIR Filters for real time edge detection”, proceedings of The 1997 International Conference on Image processing, Cergy pontoise, France (ICIPَ97)
[15] Biquad IIR Filter”
[16] Mari`A.Trenas, Juan Lo`pez and Emilio L.Zapata, “FPGA Implementation of Wavelet packet Transform With Reconfigurable Tree Structure”,proceedings of The 26 th EUROMICRO Conference, Universidad de Malaga,
[17] “Biorthogonal Wavelet Filter Megafunction”,
[18] “Discrete Cosine Transform Megafunctions”,
[19] “RGB2YCrCb8YCrCB2RGB Converter”,
[20]” Digital Modulator Megafunction”,
[21] “New Bus Architectures: How CardBus Fits with IEEE 1394, USB, and PCI and Others.”Intel Inc.1998,
[22]”USB Host Controller Megafunction”
[23] سید مهدی فخرائی، فرشید رئیسی، مهدیه مهران،؛ پیاده سازی کنترلر گذرگاه PCI بر روی “FPGA پایان نامه کارشناسی ارشد، دانشگاه صنعتی خواجه نصرالدین طوسی، زمستان 79
[24] مهران شتابی، احمد اکبری، “ پیاده سازی کد کننده های گفتار با استفاده از سیستم های با قابلیت پیکربندی مجدد”، یازدهمین کنفرانس برق، شیراز، اردیبهشت 82
[25] مهدی قویدل جلیسه، حسن حاج قاسم، محمد ابراهیم نژاد سلمانی، “ طراحی و پیاده سازی ASIC کد کننده و کد بردار کد فایر”، یازدهمین کنفرانس برق، شیراز، اردیبهشت
[26] محمود فتحی، صالح یوسفی. “ پیاده سازی سخت افزاری الگوریتمهای سطح بالای پردازش تصویر با استفاده از پیکربندی جزئی FPGA در زمان اجرا”، یازدهمین کنفرانس برق، شیراز، اردیبهشت
[27] Rinker,R.,Hammes,J,“Compiling Image processing Applications to Reconfigurable Hardware”,Proceedings of the IEEE International Conference on Application Specific Systems, ASAP
[28] Bios,G., Bosi,B.,” High performance Reconfigurable Coprocessor for Digital Mentor Graphics User s Group, Oregan,Oct
[29] Haldar,M., Nayka, A., Choudhary,A., “FPGA Hardware Synthesis From Matlab”, 14th International Conference on VLSI Design, Bangalore, India, January 03-07,
[30] Lbrra, A.,Femandez, C., Alvarez, B. Femandez-Merono J.M..”FPGA Solution for Low Cost Applications of Real – Time Automated Visual Inspection (RT-AVI) Systems”, Dedicated Systems Magazine –2001 Q2)
[31] Woods,r., “Applying an XC 6200 to Real-Time Image Processing”, IEEE Design and Test of Computers, Vol.15, No.1, Jan-March
[32] Fawcett, B.K., Watson, J.,”Reconfigurable processing with Field programmable Gate Arrays”, International Conference on Application-specific System, Architectures, and processor, Chicago, IL,
[33] “Embedded Microcontrollers”, Intel
[34] “CAN Specification 2.0 part B”,
[35] “CAN Specification 2.0 part A”,
[36] Navabi, Z., “VHDL Analysis and Modeling of Digital Systems” , 2nd edition, McGraw – Hill,
[37] Ashenden, P.J., “The designer s Guide to VHDL” , 2nd edition, Academic Press,
[38] Cohen, B., “VHDL Coding Styles and Methodologies ” ,2nd edition, Kluwer Academic Publishers,
[39] Armstrong, J.R. Gray , F.G. , ” VHDL Design Repersentation and Synthesis” , 2nd edition , Prentice – Hall PTR ,
[40] Pellerin, D. and D.Taylor, D., “VHDL Made Easy” , Prentice Hall Inc,
[41] Mano, M.M., ” Computer System Architecture ” 3rd edition , Prentice-Hall,
[42] Mazidi, M.A. ” The 80X86 IBMPC & compatible computers” , 2 nd edition , prentice- Hall, VolumeII,
[43] Anderw Tanebaum, S.” computer Networks” , 3rd edition, Prentice-Hall,
[44] Nair, R ., Ryan G., Farzaneh, F., “A symbol Based Algorithm for Hardware Implementation of cyclic Redundancy Check (CRC)” , 1997 VHDL International User s Forum , Arlington,
[45] Atmel Inc. ” Configurable Lagic Data Book” ,
چکیده
یکی از موضوعات مطرح در اتوماسیون صنعتی و روباتیک تبادل اطلاعات بین اجزاء شبکه مانند CPU و فرستنده و گیرنده هایی است که نظارت و کنترل اجزاء یک سیستم را بعهده دارند از جمله زیر ساختهای لازم برای تبادل اطلاعات وجود شبکه ها و گذرگاه های تعریف شده و استاندارد برای اتصال اجزاء یک سیستم اتوماسیون صنعتی است شبکه کنترل محلی (CAN-Control Area Network) و گذرگاه آن مدتی است که در سیستمهای صنعتی مورد استفاده قرار گرفته است و تراشه های متعددی با عنوان کنترلر گذرگاه CAN مورد استفاده قرار می گیرد یکی از این محصولات تراشه 82527 اینتل می باشد که اخیرا مورد توجه طراحان شبکه های کنترل محلی قرار گرفته است
از ابداعات جدید علم الکترونیک که امروزه کاربرد روزافزونی یافته است طراحی و پیاده سازی مدارهای دیجیتال و پردازنده های با کاربرد خاص بر روی تراشه های قابل برنامه ریزی FPGA است از مزایای مهم این نوع پیاده سازی طراحی مدارهای با قابلیت پیکربندی مجدد بر اساس خواست طراح است
علاوه بر این در صورتی که تهیه یک تراشه با کاربرد خاص بنا به دلایل گوناگون از جمله عدم انتقال تکنولوژی مشکل باشد با داشتن و مشخصات کاری آن تراشه به این روش می توان تراشه مورد نظر را بر روی تراشه های قابل برنامه ریزی پیاده سازی نمود
در این پروژه با استفاده از زبان توصیف سخت افزاری VHDL و تراشه های قابل برنامه ریزی به طراحی و پیاده سازی تراشه 82527 (کنترلر گذرگاه CAN ) اقدام شده است در عین حال اصلاحاتی نیز در عملکرد این تراشه لحاظ شده که کارایی آن را بهبود می بخشد نتایج بدست آمده موفقیت این پروژه را در طراحی ، پیاده سازی و بهبود تراشه با انجام تغییرات پیشنهادی نشان می دهد
1-1- مقدمه
در دو دهه گذشته پیشرفت روز افزون علم الکترونیک تحولات شگرفی را در کار آمدی سطوح فناوری باعث گردیده است به شکلی که این روند رو به افزایش در عرصه های گوناگون از قبیل ارتباطات، پزشکی، اتوماسیون، نظامی و ; کاملا مشهود است
به عنوان نمونه در اتوماسیون صنعتی و روباتیک واحدهای الکترونیکی که بخش مهمی از سیستم بشمار می روند توانسته اند بهره وری سیستم را فزونی بخشند. از مسایل مطرح در این زمینه می توان طراحی و پیاده سازی شبکه های صنعتی را نام برد . از جمله این شبکه ها، (Control Area Network) CAN ، شبکه Profibus و شبکه Ethernet هستند. که هر یک از این شبکه ها در زمینه خاصی کاربرد دارند
در شبکه های فوق و از جمله شبکه کنترل محلی (CAN) نیاز به تراشه های کنترل شبکه است که از نوع تراشه های خاص بوده و انواع متفاوتی از آنها توسط کمپانیهای سازنده به بازار عرضه شده اند. یکی از این محصولات تراشه 82527 اینتل می باشد که مورد توجه طراحان شبکه های کنترل محلی قرار گرفته است
از دیگر ابداعات علم الکترونیک که امروزه کاربرد فراوان دارد طراحی و پیاده سازی مدارهای دیجیتال و پردازنده های با کاربرد خاص بر روی تراشه های قابل برنامه ریزی است. از مزایای مهم این نوع پیادهسازی مدارات دیجتال، طراحی مدارهای با قابلیت پیکربندی مجدد بر اساس خواست طراح است
علاوه بر این در صورتی که تهیه یک تراشه با کاربرد خاص بنا به دلایل گوناگون از جمله عدم انتقال تکنولوژی مشکل باشد با داشتن مشخصات کاری آن تراشه به این روش می توان تراشه مورد نظر را بر روی تراشه های قابل برنامه ریزی پیاده سازی نمود
در این پروژه با استفاده از یکی از زبانهای توصیف سخت افزاری و تراشه های قابل برنامه ریزی به طراحی و پیاده سازی تراشه 82527 ( کنترلر گذرگاه CAN ) اقدام شده است. در عین حال اصلاحاتی نیز در عملکرد این تراشه لحاظ شده که کار آیی آنرا بهبود می بخشد. در ادامه این فصل ابتدا به معرفی گذرگاه CAN می پردازیم. پس از آن مروری بر تراشه های قابل برنامه ریزی و در انتها هم مروری بر زبانهای توصیف سخت افزاری خواهیم داشت
در فصل دوم مروری بر برخی از پیاده سازیها در ارتباط با طراحی و اصلاح پردازنده های عمومی و نیز پیاده سازی پردازشگرهای سیگنال دیجیتال خواهیم داشت. در فصل سوم یکی از پر کاربردترین کنترلرهای گذرگاه CAN و پروتکلهای ارتباطی در این شبکه را معرفی خواهیم نمود.در فصل چهارم به معرفی یکی از زبان های توصیف سخت افزار که در این پروژه مورد استفاده قرار گرفته است می پردازیم. در فصل پنجم به پیاده سازی کنترلر معرفی شده می پردازیم. در انتها نتایج حاصل از پیاده سازی را نشان خواهیم داد و به جمع بندی خواهیم پرداخت
1-2- معرفی CAN
شبکه کنترل محلی (Control Area Network) برای کنترل سیم بندی های ساده تا شبکه های پیچیده قابل استفاده بوده و از جمله موارد کاربرد این شبکه را می توان سیستمهای اتوماسیون صنعتی، وسائل و تجهیزات پزشکی، صنایع خودرو، هواپیما، کشتی سازی و ; را نام برد
به عنوان مثال در اتومبیل های پیشرفته مانند مرسدس بنز برای متصل نمودن و در عین حال مدیریت بر واحدهای الکترونیکی بخشهای مختلف از قبیل موتور، درها، نمایشگرها و ; این شبکه استفاده می شود. در صنایع حمل و نقل ریلی مثل قطار و مترو نیز این شبکه برای کنترل اجزا مختلف سیستم مورد استفاده قرار می گیرد
استانداردهای گوناگون با سرعتهای متفاوت که بر اساس قواعد CAN عمل می نمایند وضع گردیده است و هر یک از صنایع استفاده کننده از شبکه کنترل محلی یکی از این استانداردها را بکار می برند استفاده می نمایند
در این شبکه ارتباطات بین بخشهای مختلف به صورت سریال می باشد و اتصال اجزای مختلف این شبکه توسط گذرگاه سریالی که از پروتکلهای استاندارد CAN پیروی می کند صورت می گیرد
بخشهای مختلف این شبکه عبارتند از
یک کنترلر شبکه، یک میکروکنترلر یا میکروپروسسور و تعداد لازم فرستنده – گیرنده پیام (Transciver) و ایزوله کننده های نوری (Opto cupler)
میکروکنترلر به منظور راه اندازی و فرمان دادن به کنترلر شبکه بکار گرفته می شود. در بعضی از شبکههای بزرگ بیشتر از یک کنترلر وجود دارد. شکل های (1-1) تا (1-3) نحوه اتصال اجزا مختلف این شبکه را نشان می دهند
تراشه های کنترلر زیادی از شرکتهای سازنده نیمه هادی به بازار عرضه شده است. به عنوان نمونه تراشه های 82526 و 82527 از شرکت اینتل تراشه 82200 از کارخانه فیلیپس از جمله تراشه های کنترلر عرضه شده می باشند. کنترلر 82527 در صنعت کاربرد بیشتری دارد زیرا این تراشه از بقیه کاملتر است. از دلایل دیگر کاربرد این تراشه شرکت سازنده آن است، به دلیل اینکه محصولات شرکت اینتل در ایران رایج تر می باشد
کنترلر شبکه توسط گذرگاه سریال (CAN Bus) اطلاعات لازم را از گره های شبکه (فرستنده – گیرنده ها) دریافت نموده و در صورت لزوم در اختیار پردازنده سیستم قرار می دهد. همچنین با توجه به فرامین پردازنده سیستم پیامهائی را به گره های شبکه ارسال می کند
تاریخچه تکامل شبکه کنترل محلی (CAN)
استفاده از شبکه داخلی در وسائط نقلیه توسط شرکت بوش (1983)
تصویب و معرفی قواعد مربوط گذرگاه CAN (1986)
ساخت و ارائه نخستین کنترلر گذرگاه CAN (1987)
تصویب و ارائه نسخه دوم قواعد ارتباطات در گذرگاه CAN توسط شرکت بوش (1991)
معرفی پروتکل (قواعد) لایه های بالائی در شبکه مذکور (1991)
تشکیل و معرفی هیات کاربران CiA (CAN in Automation) (1992)
ارائه قواعد مربوط به لایه کاربردی شبکه توسط CiA(1992)
تولید اولین اتومبیل از کارخانه مرسدس بنز که از CAN استفاده نمود(1992)
تصویب استاندارد ISO 11989 مربوط به CAN (1993)
برگزاری اولین کنفرانس CAN توسط انجمن CiA (1994)
ارائه اصلاحات استاندارد ISO 11898 (1995)
توسعه قواعد ارتباطات در CAN (2000). [1] [2] [3] [4] [5]
1-3- مقدمه ای بر تراشه های قابل برنامه ریزی
مدارهای مجتمع با کاربرد خاص ASIC (Application Specific Integrated Ciccuits) به سه دسته تقسیم می شوند
الف – مدارهای کاملا خاص Full Custom
ب- مدارهای نیمه سفارشی Semi – Custom
ج- مدارهای قابل برنامه ریزی PLD و Gate Array
در مورد اول طرح مدار در حد گیت ها و ترانزیستورها توسط نرم افزارهای شبیه سازی آماده شده و تست می گردد. این مشخصات در اختیار سازنده قرار می گیرد و سازنده این طرح را به صورت ترانزیستوری در آورده و آن را بر روی سطح سیلیکون خام پیاده می نماید
در مورد دسته ب همانند حالت قبل مدار با کمک نرم افزار ویژه طراحی شده و سپس نتیجه طراحی جهت ساخت در اختیار سازنده قرار می گیرد با این تفاوت که این بار مدار بر روی تراشه های نیمه خام گیت ها مثل AND و OR یا مدارهای دیگر بر روی آنها از قبل ایجاد گردیده و فقط اتصالات بین آنها وجود ندارد که اینها اتصالاتی هستند که با توجه به طرح مشتری بر روی تراشه ایجاد می گردند. یک نمونه این مدارها Gate Array می باشد
مدارهای قابل برنامه ریزی آنهائی هستند که بر خلاف دسته اول ساخت آنها در کارخانه سازنده و قسمتهای تکمیلی آن توسط خود مشتری انجام می شود در صورتیکه در مدارهای نیمه خام و قسمت آخر یعنی ایجاد اتصالات توسط سازنده انجام گرفته و تنها قسمت میانی یعنی طراحی اتصالات توسط مشتری قابل انجام است. مدارهای قابل برنامه ریزی شامل انواع PLA ، FPGA و حتی PROM ، EPROM نیز می شوند
تراشه های PGA در دو دهه گذشته محبوبیت زیادی کسب نموده اند. در این تراشه ها هیچ نوع الگوی ارتباطی از قبل تعیین شده ای وجود ندارد و بنابراین طراح آزادی کامل در جهت ایجاد این اتصالات را دارد. بر اساس نوع برنامه ریزی این تراشه ها در دو دسته تقسیم بندی می شوند
الف- نوعی که وارد کردن برنامه در آنها بایستی در کارخانه سازنده انجام گیرد Masked PGA
ب- تراشه های قابل برنامه ریزی در محل
FPGA از لحاظ نوع ساختار ساده ترین و قدیمیترین آنها شامل ماتریسی ازNAND یا NOR های دو وروی می باشد. در تراشه های دسته (الف) همانند دسته (ب) بخش اول کار یعنی ساخت تراشه یا مرحله ایجاد اتصالات در کارخانه سازنده انجام می شود سپس طراح با توجه به طرح خود ارتباط بین دریچه ها را تعیین نموده و پس از شبیه سازی مدار و اطمینان از عملکرد صحیح آن اطلاعات مربوط به اتصالات مورد نظر را به صورت یک برنامه کامپیوتری تحویل کارخانه سازنده می دهد تا ماسکهای مورد نیز تهیه گشته و بقیه مراحل تا پایان کار و تکمیل ساخت تراشه توسط سازنده انجام پذیرد در دسته (ب) بخش ایجاد اتصالات هم توسط کاربر و با کمک دستگاه برنامه ریزی ویژه در محل کار طراح قابل انجام است و احتیاج به مراجعه به سازنده برای انجام این کار نیست
بایستی توجه داشت که دسته (ب) در ازای داشتن این مزیت این نقطه ضعف را نیز دارد که بخش مهمی از سطح سیلیکون برای ایجاد امکانات برنامه ریزی در محل استفاده شده است. بنابراین در نوع اخیر از درصد کمتری از سطح سیلیکون برای ایجاد اصل مدار استفاده می شود.یکی از نقاط ضعف عمده تراشههای Masked PGA در آن است که اگر اشکالی پس از اتمام کار در تراشه ساخته شده کشف شود در آن صورت تمام مراحل تهیه ماسک و ایجاد اتصالات توسط سازنده بایستی دو مرتبه از ابتدا تکرار گردند این موضوع هزینه جبران اشتباه را خیلی بالا می برد نکته دیگری که در استفاده از این نوع تراشه بایستی در نظر داشت این است که تعداد تراشه مورد نیاز باید انقدر زیاد باشد که جبران هزینه های تولید ماسک و غیره را بنماید. همچنین زمان قابل ملاحظه برای انجام این مراحل را توسط کارخانه سازنده نیز بایستی در نظر داشت
نمونه ای از موارد کاربرد تراشه های FPGA
- رمز گذاری و رمز گشایی داده ها
- پردازنده های محاسباتی
- پردازنده های تصویری و صوتی ( فشرده سازی، بازسازی، فیلتر و ;.)
- کنترلرهای گذرگاه های CAN ، PCI و ; [6] [7]
1-4- مروری بر زبان های توصیف سخت افزاری
HDL (Hardware Description Language) روش توسعه یافتهای از توصیف رفتار سیستمهای منطقی به وسیله روابط منطقی است. این زبان ها بسیاری از مشخصه های روابط منطقی و روابط حالت را در درون خود دارند. در این قسمت، بیشتر تمرکز ما بر روی VHDL است
VHDL(VHSIC(Very High Speed Integrated Circuit)Hardware Description Language)
امروزه این زبان به عنوان استاندارد صنعتی MIL SID 454L معرفی شده است و تمامی طرح های ASIC مربوط به وزارت دفاع آمریکا باید طبق این زبان استاندارد نوشته شوند
این زبان به عنوان قسمتی از پروژه VHSIC (مدارهای مجتمع با تکنولوژی مشخصی، تعریف و شبیه سازی نمود. زمانی که یک مدار منطقی بوسیله این زبان تعریف می گردد، می توان ان را به هر پروسه منطقی و یا بر روی ماژول های طراحی شده توسط هر یک از تولید کننده های ابزارهای منطقی انتقال داد. (VHSIC HDL) VHDL یک سیستم منطقی را به صورت ساختار بالا به پایین توصیف می کند
برای بدست آوردن توصیفی از یک سیستم به صورت ساختار بالا به پایین، سیستم را به صورت مجموعه ای از زیر سیستم ها تقسیم می کنیم که بوسیله یک سری رابط به هم متصل می گردند. هر یک از زیر سیستم های بالایی را می توان به توابع و زیر سیستم های کوچکتر تقسیم کرد. این عمل همچنان ادامه می یابد تا به پایین ترین سطح از سیستم دست بیابیم که در این سطح هر یک از زیر سیستم ها را می توان بوسیله گیتها و بخشهای آماده دیگر طراحی نمود
به این ترتیب، بدلیل آنکه هر یک از طبقات این ساختار منطقی به صورت یکتا مشخص شده اند
هر یک از آنها را می توان به تنهایی شبیه سازی نمود و تابع منطقی اجرا شده بوسیله آنها را آزمایش کرده و خطاهای احتمالی را بر طرف نمود. ابتدا صحت عملکرد پایین ترین طبقه این سیستم را آزمایش کرده و با ترکیب زیر سیستم های پایین تر به زیر سیستم های پیچیده تر می رسیم تا جاییکه به طرح سیستم مورد نظر که در بالاترین طبقه این ساختار وجود دارد برسیم
پس از انجام این عمل، به مرحله ترکیب می رسیم که در آن کل طرح را پیاده کرده و سپس برای بدست آوردن پارامترهای زمانی آن، عمل شبیه سازی را انجام می دهیم. [7]
1-5- نرم افزارهای طراحی تراشه های FPGA
از جمله شرکتهای فعال در زمینه نرم افزارهای طراحی تراشه های FPGA می توان از ALTERA نام برد که عرضه کننده مجموعه نرم افزار MAXPlus می باشد. این مجموعه به عنوان ورودی خود توصیف مدار را به زبانهای عمومی VHDL و Verilog HDL و یا زبان اختصاصی ALTERA یعنی AHDL می پذیرد. از بین دیگر فعالان این زمینه می توان از شرکتهای ACTEL ، ATMEL و Xiliپایان نامه بررسی و شبیه سازی عملکرد کنترلر CAN ، با استفاده از زبان توصیف سخت افزاری VHDL، و پیاده سازی آن بر روی FPGA در word نام برد
2-1- مقدمه
در این فصل مروری بر استفاده از زبان های توصیف سخت افزاری و تراشه های FPGA در طراحی پردازنده ها فیلترها و دیگر مدارات دیجیتالی خواهیم داشت
بسیاری از پردازنده ها، پردازشگرهای با کاربرد خاص، پردازشگرهای کمکی (Coprocessor)، کنترلرهای گذرگاه های مختلف اعم از USB ،PCL و ;. را می توان به صورت بهینه بر روی تراشه های FPGA پیاده سازی نمود. علاوه بر این می توان در صورتی که نیاز باشد اصلاحاتی بر روی آنها انجام داد و مطابق با شرایط لازم طراحی را تغییر داد. به عنوان نمونه میکرو کنترلر مقاوم شده در برابر تشعشع از جمله پردازنده های اصلاح شده است که در بخش اول به آن اشاره خواهیم نمود. البته لازم است به ساختمان پردازنده ای که می خواهیم آن را اصلاح نمائیم آگاهی کامل داشته باشیم
علاوه بر این مدارهای ویژه مانند فیلترهای دیجیتال از قبیل FIR ، IIR ، Wavelet ، فیلترهای غیر خطی، وفقی با استفاده از زبان VHDL و تراشه های FPGA قابل ساخت هستند. اکثر توابعی که در الگوریتم های پردازش سیگنال اعم از صوت و تصویر مانند مبدلهای DCT ، FFT سیستم های تعیین موقعیت، آشکارسازهای لبه تصویر و ; مورد استفاده قرار می گیرند را می توان به این روش طراحی نمود. کنترلرهای وقفه، DMA و انواع کنترلرهای گذرگاه ها نیز به صورت بهینه شده و اصلاح یافته بر روی تراشه های FPGA قابل پیاده سازی هستند
برخی از دانشمندان مترجم هائی تهیه نموده اند که با استفاده از این مترجم ها می توان الگوریتم های پردازش تصویر و صوت را که با استفاده از زبانهای سطح بالا مانند C و یا محیط های شبیه سازی مانند مطلب تهیه گشته اند به زبان VHDL تبدیل نمود. در بخش آخر به معرفی یکی از این مترجم ها خواهیم پرداخت
2-2- میکرو کنترلر مقاوم شده در برابر تشعشع
مقاومت در برابر خطا(Fault – Tolerance ) و قابلیت اعتماد بالا از مشخصات ضروری صنایع نظامی می باشند. مدارات دیجیتال بکار گرفته شده در صنایع هوا فضا تحت تاثیر انواع تشعشعات قرار میگیرند. یک روش کاهش خطا به منظور مقاوم شدن در برابر تشعشع استفاده از تکنیک کد همینگ (Hamming) می باشد
یکی از میکرو کنترلرهای دیجیتالی که بیشتر در این صنایع بکار گرفته می شود خانواده میکرو کنترلر 8051 است. این تراشه را که بلوک دیاگرام ساختمان آن در شکل (2-1) نشان داده شده است با استفاده از زبان توصیف سخت افزاری VHDL می توان بوسیله تکنیک کد همینگ نسبت به تشعشع مقاوم نمود
2-3- کانولوشن کننده های (Convolvers) دو بعدی
کانولوشن کننده های دو بعدی در پردازش تصویر به منظور اعمال فیلتر، تشخیص لبه (Edge Detection) ، درون یابی (Interpolation) و واضح نمودن (Sharpening) بسیار موثر هستند به عنوان نونه، عمل یک کانولوشن کننده که لبه های یک تصویر را برای خروجی بر جسته و واضح (Sharpen) می نماید Edge Enhancement نامیده می شود
2-4- فیلترهای دیجیتال
فیلتر های دیجیتال از پر کاربردترین اجزا در پردازش سیگنال های دیجیتال می باشند. کار یک فیلتر حذف قسمتهای نامطلوب یک سیگنال یا استخراج سیگنال هایی در محدوده فرکانسی خاص می باشد. به عبارت دیگر فیلتر فرکانس های مشخصی از یک سیگنال را انتخاب و سپس حذف و یا تغییر می دهد. این کار به منظور کاهش نویز و یا شکل دادن به طیف سیگنال انجام می گیرد
بیشتر فیلترهای قدیمی در کاربردهای DSP با بکارگیری پردازنده های DSP ویژه پیاده سازی میشدند. این پردازنده های DSP قادر به انجام عملیات ضرب و ذخیره اطلاعات با سرعت بالا هستند ولی دارای محدودیت در پهنای باند می باشند. فقط تعداد معینی عملیات قبل از ورود نمونه بعدی توسط این پردازنده ها قابل انجام می باشند که در نتیجه محدود کننده پهنای باند است. پردازنده های DSP به صورت ذاتی ترتیبی می باشند و بنابراین DSP هایی که از یک پردازنده بهره می برند قادر به انجام یک عمل بر روی یک مجموعه داده در هر زمان می باشند. این مسئله باعث محدودیت در فرکانس کلی سیستم می شود. فیلترهای بر پایه FPGA با معماری خطی لوله ای موازی پیاده سازی می شوند که باعث افزایش عملکرد کلی سیستم می گردد. پیاده سازی با FPGA همچنین امکان ارزیابی دقیق در تمام مراحل الگوریتم را امکان پذیر می سازد. موارد ذکر شده عمده ترین تفاوت های بین یک فیلتر بر پایه FPGA با متناظر DSP آن میباشد
پیاده سازی فیلترهای دیجیتال با فرکانس نمونه برداری چند مگا هرتز با بکارگیری DSP های استاندارد غالبا دشوار است و گران تمام می شود. امکان بالقوه پردازش موازی و برنامه ریزی مجدد FPGA ها را به یک راه حل ایده آل تبدیل می کند. قابلیت برنامه ریزی مجدد. تغییر در فیلتر در هر زمان را امکان پذیر می سازد [11]
2-4-1- فیلترهای با پاسخ ضربه محدود(FIR)