دوستان عزیز من سعی کردم مختصری از تجارب خودم رو شرح بدم و میدونم که این مطالب کم، ناقص و خیلی کلی هستن. سعی خواهم کرد در پستهای بعدی مطالب رو تکمیل کنم. بسیار مشتاق شنیدن نظرات سایر کاربران هم هستم.
FPGA و کاربرد آن در واحدهای پردازش و کنترل سیستم های مخابراتی
در این نوشتار یکی از حوزه های کاربردی FPGA که بخش های پردازش و کنترلی سیستم های مخابراتی می باشد توضیح داده شده است. علت انتخاب این حوزه آشنایی من به عنوان نویسنده با این حوزه می باشد. امید است که این مطالب باعث آشنایی مهندسین عزیز با قابلیتهای FPGA در این حوزه باشد تا بتوانند در طراحی چنین سیستم هایی مد نظر داشته باشند.
با توجه به وضعیت کنونی کشور و وجود انواع تحریم ها مخصوصا در حوزه های مخابراتی و نظامی تسلط بر استفاده از FPGAها مار را قادر خواهد ساخت تا سیستم های مورد نیاز خود را خود طراحی کرده و توسط FPGAها به مرحله اجرا برسانیم.
معمولا برای پیاده سازی یک پروژه مخابراتی(یا کارهای مشابه) مراحل زیر انجام می گیرد.
1. طراحی مفهومی
2. طراحی سیستمی
3. شبیه سازی سیستمی
4. طراحی سخت افزاری
5. شبیه سازی طرح سخت افزار
6. پیاده سازی سخت افزار
7. تست سخت افزاری و رفع معایب
8. تستهای EMI, EMC و ...
در ادامه هر کدام از این بخش ها به صورت مختصر توضیح داده می شود. تمرکز این توضیحات بر بخش های پردازشی و دیجیتالی متمرکز است و توضیحات آن در مورد سایر بخش ها چندان کافی نمی باشد.
طراحی مفهومی: این بخش از کار طراحی های ابتدایی پروژه را شامل می شود. در این مرحله طرح معمولا به صورت بلوک دیاگرامی پباده می شود. گروه طراح این بخش بایستی با قابلیتهای مختلف بخش هایی از سازمان که قرار است کار را انجام دهند آشنایی داشته باشد و پروژه را به قسمتهای مناسبی تقسیم بندی کرده و هر قسمت را با استفاده از گروه های موجود با جزئیات بیشتر طراحی کند. در شرکتهایی که پروژه های مخابراتی را انجام میدهند عمدتا گروه های آنتن، RF، سیستم، دیجیتال و نرم افزار بخش های مختلف پروژه را انجام می دهند.
طراحی سیستمی: پس از اینکه طرح اولیه مشخص شد طراحی های سیستمی با جزئیات بیشتر شروع می شود. با توجه به تجربه ای که من دارم در این مرحله معمولا از نرم افزار MATLAB برای طراحی و شبیه سازی استفاده می شود. این نرم افزار به دلیل داشتن امکانات و بلوکهای پردازشی متنوع و قوی کمک زیادی به طراحان می کند. طرح در این مرحله از نظر سیستمی یا الگریتمی مورد تست و شبیه سازی قرار می گیرد تا رفته رفته با بررسی عملکردهای قسمتهای مختلف طرح و ایجاد ارتباط بین آنها و مرتفع سازی معایب طرح تکمیل شود.
شبیه سازی سیستمی: طراحی انجام شده در بخش قبل امکان شبیه سازی را به طراح می دهد. با این کار او از عیب و ایراد طرح خود مطلع شده و با رفع آنها طرح سیستمی نهایی را آماده می کند.
طراحی سخت افزاری: مفهوم این طراحی در واقع تبدیل طراحی انجام گرفته در مرحله قبل به طرحی قابل پیاده سازی در بخش دیجیتال (در اینجا هدف FPGA) می باشد. برای انجام هر چه بهتر این بخش بهتر است در مراحل طراحی سیستمی مشاوره گروه دیجیتال نیز مورد استفاده قرار گیرد تا در این مرحله، تبدیل از طراحی سیستمی به طراحی دیجیتال با بیشترین سرعت انجام گیرد. لازم است گروه دیجیتال برای تبدیل بهتر و سریعتر طرح علاوه بر آشنایی با بلوک دیاگرام سیستمی طرح با عملکرد و ارتباطات بخش های مختلف نیز به خوبی آشنا شود زیرا این آشنایی این امکان را به طراحان دیجیتال خواهد داد تا از قید و بند طراحی دقیقا برابر با طرح بخش سیستمی رهایی یابند. در ادامه توضیحات این بخش با توضیحات بیشتری ارائه خواهد گردید. این طراحی در واقع با تبدیل بلوک دیاگرام های طراحی شده در نرم افزار MATLAB به کدهای HDL انجام می گیرد. در کشور ما معمولا این طراحی ها با هدف پیاده سازی بر روی FPGAهای شرکت های Xilinx یا Altera انجام می گیرد. و به طور معمول از نرم افزارهای خود این شرکتها استفاده می شود.
شبیه سازی طرح سخت افزاری: طراحی انجام گرفته در مرحله قبل بایستی قبل از اجرا بر روی سخت افزار مورد شبیه سازی قرار گیرد. بهترین نرم افزاری که در حال حاضر برای این کار وجود دارد Modelsim می باشد. شاید در برخی مواقع افراد در این مرحله ترجیح دهند که مستقیم طرح خود را بر روی سخت افزار مورد تست قرار دهند ولی تجربه ای که من داشته ام همیشه مرا تشویق می کند که سختی Test Bench نویسی را بپذیرمو قبل از هر تست سخت افزاری ابتدا از صحت کدهای توشته شده اطمینان حاصل کنم.
پیاده سازی سخت افزاری: این مرحله انتقال طراحی های انجام گرفته بر روی سخت افزار می باشد. شاید برخی از افراد در این مرحله شک کنند که آیا طرحی که در شبیه سازی جواب گرفته ایم ممکن است در عمل هم درست کار کند. نکته بسیار مهمی که من به آن رسیده ام این است که اگر مراحل ط ادوراحی های ذکر شده در قبل به درستی و با دقت انجام گرفته باشد این مرحله به سهولت انجام گرفته و به هیچ مشکلی نخواهیم خورد. معمولا هر وقت هم مشکلی باشد در طرح ما خواهد بود. به عبارتی FPGAها بسیار دقیق عمل کرده و هیچ تفاوتی بین شبیه سازی و عملکر واقعی در آن ها نمی توان دید مگر در مواردی که برخی نکات مربوط به Timingها رعایت نشده باشد.
تست سخت افزاری و رفع معایب: در این مرحله کارکرد سخت افزار مورد تست قرار میگیرد تا از نظر طراحی اگر لازم به تغییراتی در طرح هستیم، تغییرات را انجام دهیم.
متاسفانه این بخش از کار همان 5 درصد معروف از کار است به اندازه بقیه 95 درصد زمان گیر می شود و علت اصلی آن نیز نادرست یا ناقص انجام شدن مراحل قبل است. نکته خیلی تاسف برانگیز کار نیز این است که معمولا وقتی کار به اینجا میرسد تازه کارفرما هوس تغییر در برخی خواسته های خود را میکند.
تست های EMI, EMC: این مراحل جزو تستهای نهایی سیستم می باشد و بسیار مورد تاکید کارفرمایان. لذا بهتر است از همان ابتدای کار که به طراحی سیستم اندیشیده می شوذ به این تستها نیز توجه شود. تجربه ای که خود من دارم این است که معمولا با توجه به علاق ما به کارهای R&D بیشتر در بخشهای طراحی زمان و هزینه صرف میکنیم و با هزاران امید سیستمی را آماده میکنیم که از نظر عملکردی به درستی کار می کند ولی به دلیل برآورده نشدن این تست ها مجبور به دوباره کاری و صرف هزینه های اضافه میکنیم.
FPGA و کاربرد آن در واحدهای پردازش و کنترل سیستم های مخابراتی
در این نوشتار یکی از حوزه های کاربردی FPGA که بخش های پردازش و کنترلی سیستم های مخابراتی می باشد توضیح داده شده است. علت انتخاب این حوزه آشنایی من به عنوان نویسنده با این حوزه می باشد. امید است که این مطالب باعث آشنایی مهندسین عزیز با قابلیتهای FPGA در این حوزه باشد تا بتوانند در طراحی چنین سیستم هایی مد نظر داشته باشند.
با توجه به وضعیت کنونی کشور و وجود انواع تحریم ها مخصوصا در حوزه های مخابراتی و نظامی تسلط بر استفاده از FPGAها مار را قادر خواهد ساخت تا سیستم های مورد نیاز خود را خود طراحی کرده و توسط FPGAها به مرحله اجرا برسانیم.
معمولا برای پیاده سازی یک پروژه مخابراتی(یا کارهای مشابه) مراحل زیر انجام می گیرد.
1. طراحی مفهومی
2. طراحی سیستمی
3. شبیه سازی سیستمی
4. طراحی سخت افزاری
5. شبیه سازی طرح سخت افزار
6. پیاده سازی سخت افزار
7. تست سخت افزاری و رفع معایب
8. تستهای EMI, EMC و ...
در ادامه هر کدام از این بخش ها به صورت مختصر توضیح داده می شود. تمرکز این توضیحات بر بخش های پردازشی و دیجیتالی متمرکز است و توضیحات آن در مورد سایر بخش ها چندان کافی نمی باشد.
طراحی مفهومی: این بخش از کار طراحی های ابتدایی پروژه را شامل می شود. در این مرحله طرح معمولا به صورت بلوک دیاگرامی پباده می شود. گروه طراح این بخش بایستی با قابلیتهای مختلف بخش هایی از سازمان که قرار است کار را انجام دهند آشنایی داشته باشد و پروژه را به قسمتهای مناسبی تقسیم بندی کرده و هر قسمت را با استفاده از گروه های موجود با جزئیات بیشتر طراحی کند. در شرکتهایی که پروژه های مخابراتی را انجام میدهند عمدتا گروه های آنتن، RF، سیستم، دیجیتال و نرم افزار بخش های مختلف پروژه را انجام می دهند.
طراحی سیستمی: پس از اینکه طرح اولیه مشخص شد طراحی های سیستمی با جزئیات بیشتر شروع می شود. با توجه به تجربه ای که من دارم در این مرحله معمولا از نرم افزار MATLAB برای طراحی و شبیه سازی استفاده می شود. این نرم افزار به دلیل داشتن امکانات و بلوکهای پردازشی متنوع و قوی کمک زیادی به طراحان می کند. طرح در این مرحله از نظر سیستمی یا الگریتمی مورد تست و شبیه سازی قرار می گیرد تا رفته رفته با بررسی عملکردهای قسمتهای مختلف طرح و ایجاد ارتباط بین آنها و مرتفع سازی معایب طرح تکمیل شود.
شبیه سازی سیستمی: طراحی انجام شده در بخش قبل امکان شبیه سازی را به طراح می دهد. با این کار او از عیب و ایراد طرح خود مطلع شده و با رفع آنها طرح سیستمی نهایی را آماده می کند.
طراحی سخت افزاری: مفهوم این طراحی در واقع تبدیل طراحی انجام گرفته در مرحله قبل به طرحی قابل پیاده سازی در بخش دیجیتال (در اینجا هدف FPGA) می باشد. برای انجام هر چه بهتر این بخش بهتر است در مراحل طراحی سیستمی مشاوره گروه دیجیتال نیز مورد استفاده قرار گیرد تا در این مرحله، تبدیل از طراحی سیستمی به طراحی دیجیتال با بیشترین سرعت انجام گیرد. لازم است گروه دیجیتال برای تبدیل بهتر و سریعتر طرح علاوه بر آشنایی با بلوک دیاگرام سیستمی طرح با عملکرد و ارتباطات بخش های مختلف نیز به خوبی آشنا شود زیرا این آشنایی این امکان را به طراحان دیجیتال خواهد داد تا از قید و بند طراحی دقیقا برابر با طرح بخش سیستمی رهایی یابند. در ادامه توضیحات این بخش با توضیحات بیشتری ارائه خواهد گردید. این طراحی در واقع با تبدیل بلوک دیاگرام های طراحی شده در نرم افزار MATLAB به کدهای HDL انجام می گیرد. در کشور ما معمولا این طراحی ها با هدف پیاده سازی بر روی FPGAهای شرکت های Xilinx یا Altera انجام می گیرد. و به طور معمول از نرم افزارهای خود این شرکتها استفاده می شود.
شبیه سازی طرح سخت افزاری: طراحی انجام گرفته در مرحله قبل بایستی قبل از اجرا بر روی سخت افزار مورد شبیه سازی قرار گیرد. بهترین نرم افزاری که در حال حاضر برای این کار وجود دارد Modelsim می باشد. شاید در برخی مواقع افراد در این مرحله ترجیح دهند که مستقیم طرح خود را بر روی سخت افزار مورد تست قرار دهند ولی تجربه ای که من داشته ام همیشه مرا تشویق می کند که سختی Test Bench نویسی را بپذیرمو قبل از هر تست سخت افزاری ابتدا از صحت کدهای توشته شده اطمینان حاصل کنم.
پیاده سازی سخت افزاری: این مرحله انتقال طراحی های انجام گرفته بر روی سخت افزار می باشد. شاید برخی از افراد در این مرحله شک کنند که آیا طرحی که در شبیه سازی جواب گرفته ایم ممکن است در عمل هم درست کار کند. نکته بسیار مهمی که من به آن رسیده ام این است که اگر مراحل ط ادوراحی های ذکر شده در قبل به درستی و با دقت انجام گرفته باشد این مرحله به سهولت انجام گرفته و به هیچ مشکلی نخواهیم خورد. معمولا هر وقت هم مشکلی باشد در طرح ما خواهد بود. به عبارتی FPGAها بسیار دقیق عمل کرده و هیچ تفاوتی بین شبیه سازی و عملکر واقعی در آن ها نمی توان دید مگر در مواردی که برخی نکات مربوط به Timingها رعایت نشده باشد.
تست سخت افزاری و رفع معایب: در این مرحله کارکرد سخت افزار مورد تست قرار میگیرد تا از نظر طراحی اگر لازم به تغییراتی در طرح هستیم، تغییرات را انجام دهیم.
متاسفانه این بخش از کار همان 5 درصد معروف از کار است به اندازه بقیه 95 درصد زمان گیر می شود و علت اصلی آن نیز نادرست یا ناقص انجام شدن مراحل قبل است. نکته خیلی تاسف برانگیز کار نیز این است که معمولا وقتی کار به اینجا میرسد تازه کارفرما هوس تغییر در برخی خواسته های خود را میکند.
تست های EMI, EMC: این مراحل جزو تستهای نهایی سیستم می باشد و بسیار مورد تاکید کارفرمایان. لذا بهتر است از همان ابتدای کار که به طراحی سیستم اندیشیده می شوذ به این تستها نیز توجه شود. تجربه ای که خود من دارم این است که معمولا با توجه به علاق ما به کارهای R&D بیشتر در بخشهای طراحی زمان و هزینه صرف میکنیم و با هزاران امید سیستمی را آماده میکنیم که از نظر عملکردی به درستی کار می کند ولی به دلیل برآورده نشدن این تست ها مجبور به دوباره کاری و صرف هزینه های اضافه میکنیم.
دیدگاه