یکی از چالشهای یک طراح دیجیتال با FPGA مسأله تست مدار دیجیتال پیادهسازی شده است. دلیل بنیادین چنین چالشی مربوط به تفاوت پردازندهها و تراشههای FPGA است.
More...
همانطور که در مقاله مقایسه FPGAها و پردازندهها بیان شد، به هنگام کار با پردازندهها با سختافزاری از پیش آماده شده سروکار داریم که دستورات مشخصی را به ترتیب اجرا میکند. در هر لحظه از زمان فقط یکی از این دستورات اجرا میشود. بنابراین عیبیابی آن نسبتاً آسان است؛ چون میتوان برنامه را خط به خط اجرا و دنبال کرد و همزمان نتایج متغیرهای مختلف را بررسی نموده تا ایرادات احتمالی آشکار شوند.
اما در مورد FPGAها، از آن جایی که در حال توصیف یک سختافزار دیجیتال هستیم و ماهیت سختافزار به گونهای است که ممکن است دهها و صدها عملیات مختلف را به طور موازی انجام دهد، و همچنین دستوراتی که خط به خط و به ترتیب اجرا شوند وجود ندارد، نمیتوان به آسانی عیبیابی یک برنامه کامپیوتری، اتفاقات را دنبال کرد. همین مسأله باعث میشود عیبیابی در طراحی با FPGA نسبتاً دشوار و کند انجام شود.
روشهای تست مدار دیجیتال
اولین ابزار کمکی برای عیبیابی، نرمافزارهای شبیهسازی است که به کمک آن میتوان شبیهسازی منطقی و زمانی را انجام داد. به کمک این شبیهسازها میتوان سیگنالهای دلخواه در طرح را مانیتور کرد. شاید دومین ابزاری که بیشترین کمک را میتواند در رفع عیوب طرح بکند، منطق و تجربه خود طراح باشد.
هنگامی که رفتار یک سیگنال یا رجیستر بر مبنای نتایجی که شبیهساز ارائه میکند مطابق انتظار طراح نیست، ممکن است بخشهای مختلفی در کد توصیف سختافزاری، دلیل خطا باشد. بنابراین طراح باید با تمرکز زیاد و بررسی دقیق کد، سعی در یافتن اشتباهات احتمالی کند.
برای آشنایی با شبیهسازی مدار به کمک نرمافزار ISim این برنامه ویدئویی را ببینید…
تست مدار دیجیتال در حین اجرا با ChipScope
بسیاری از خطاها وقتی طرح بسیار بزرگ شده است اتفاق میافتد. همچنین خطاهایی وجود دارند که پس از شبیهسازی طولانی ممکن است خود را نشان دهند. باتوجه به اینکه عمل شبیهسازی خصوصاً برای طرحهای بزرگ یا برای بازههای زمانی طولانی، بسیار زمانبر است، در عمل کارایی شبیهسازها محدود میشوند.
برای رفع این مشکل، شرکت Xilinx نرمافزاری را طراحی کرده است که به کمک رابط Jtag موجود در تراشههای FPGA، این امکان را به طراح میدهد که مقادیر رجیسترهای مورد نظر خود را بعد از پیکرهبندی FPGA و به هنگام کار آن مانیتور کند. این نرمافزار که Chipscope نام دارد، به همراه مجموعه نرمافزار ISE Design Suite به طراحان ارائه میشود.
برای آشنایی با روشهای تست مدار با نرمافزار ChipScope این برنامه ویدئویی را مشاهده کنید…
طراح ابتدا کدهای بسیار کوچک از پیش آماده شدهای را که در نرمافزار ISE برای استفاده با نرمافزار Chipscope وجود دارند در کنار کد اصلی خود قرار میدهد. به کمک این کدهای کمکی، دو دسته سیگنال انتخاب میشوند:
- سیگنالهایی که طراح مایل است محتوای آنها را به هنگام کار تراشه مشاهده کند؛
- سیگنالهایی که طراح مایل است به عنوان شرط برای خواندن محتوای سیگنالهای گروه اول استفاده کند.
فرض کنید طراح سیگنالهای A و B را در گروه اول انتخاب کرده است و سیگنال C را برای گروه دوم. بعد از اینکه کد کمکی به همراه کد اصلی در FPGA قرار گرفت، طراح میتواند از طریق نرمافزار Chipscope تعیین کند که در صورت رخ دادن یک شرط خاص روی سیگنال C، مقدار رجیسترهای A و B از طریق پورت Jtag تراشه FPGA خوانده شده و در نرمافزار نمایش داده شود.
یکی از محاسن استفاده از نرمافزار Chipscope سرعت بسیار زیاد عیبیابی است؛ زیرا به جای شبیهسازی، عملاً مدار مورد نظر درون FPGA قرار دارد که سرعت کار آن بسیار زیاد است. همچنین در این حالت، مواردی که امکان شبیهسازی آن وجود ندارد نیز در نظر گرفته میشود و نتایج در شرایطی کاملاً واقعی محاسبه میشوند.
تست مدار دیجیتال به کمک MATLAB
برای تست مدار دیجیتال معمولاً نیاز به مقایسه نتایج طرح پیادهسازی شده با نتایج یک مدل مرجع است. برای این کار معمولاً از یک نرمافزار شبیهساز مثل MATLAB برای ساخت مدل مرجع استفاده میشود. پس از ساخت مدل مرجع، باید مجموعهای از ورودیهای مختلف را که باعث شوند همه شرایط احتمالی در طرح مورد ارزیابی قرار گیرند به مدل اعمال کرد. سپس نتایج حاصل از این ورودیها باید در یک فایل ذخیره شوند.
برای ارزیابی مدار پیادهسازی شده باید همان مجموعه از ورودیها را عیناً به شبیهساز کد توصیف سختافزاری (مثلاً نرمافزار ModelSim) اعمال کرد و خروجیهای متناظر را مجدداً در یک فایل ذخیره کرد.
آخرین مرحله از فرآیند درستیآزمایی طرح، مقایسه نتایج حاصل از مدل مرجع با نتایج حاصل از شبیهسازی کد توصیف سختافزاری است که میتوان آن را در همان نرمافزار شبیهساز مدل مرجع (مثلاً نرمافزار MATLAB) انجام داد. در فرآیند حرفهای طراحی سختافزار دیجیتال، انجام درستیآزمایی به کمک یک مدل مرجع یکی از مهمترین مراحل ارائه پروژه است که به کمک آن میتوان به مدیر یا کارفرما صحت عملکرد طرح را اثبات نمود.
جمعبندی
طراحی سیستمهای دیجیتال پیشرفته مبتنی بر FPGA روز به روز اهمیت بیشتری پیدا میکنند و شرکتهای تولید کننده این تکنولوژی، هر سال قابلیتهای جدیدتری را به محصولات خود اضافه میکنند. در سلسله مقالات آشنایی با FPGA، مفاهیم پایه مرتبط با بکارگیری FPGA در طراحی دیجیتال مورد بررسی قرار گرفت و مسیر طراحی به طور مختصر شرح داده شد.
در انتها باید به این نکته مهم اشاره کنم که برای تبدیل شدن به یک طراح حرفهای دیجیتال مبتنی بر FPGA، به جز آشنایی و تسلط بر FPGA و نرمافزارهای طراحی مرتبط، افزایش سطح دانش در زمینههای دیجیتال و پیادهسازی الگوریتمهای پردازش سیگنال شرط لازم است.
آیا مقاله آشنایی با FPGA – تست مدار دیجیتال برای شما مفید بود؟
لطفا نظرتان را در مورد این برنامه در پایین همین پست با دیگران به اشتراک بگذارید. همچنین با کلیک روی هر کدام از دکمههای اشتراک گذاری ابتدای این مطلب و به اشتراکگذاری آن در شبکههای اجتماعی میتوانید افراد بیشتری را در یادگیری این مطالب سهیم کنید.

