زبان توصیف سخت افزار
طراحی سیستم های دیجیتال در سطح گیت فرآیندی خسته کننده است. Hardware Description Language به خانوادهای از زبانهای برنامهنویسی گفته میشود که جهت مدلسازی عملکرد بخشی از یک سختافزار به کار گرفته میشوند. زبان توصیف سخت افزار همانند یک زبان برنامه نویسی کامپیوتر(C, C++, …) است. با این تفاوت که هدف اصلی زبان توصیف سخت افزار (از این پس آن را با نام HDL ذکر میکنیم) توصیف یک سخت افزار است تا اجرای یک برنامه بر روی کامپیوتر. در واقع با استفاده از HDL میتوان یک سیستم دیجیتالی را توصیف نمود به نحوی که قابل خواندن توسط کامپیوتر باشد. (توصیف متنی یک سخت افزار به کمک HDL ها برای کامپیوتر قابل فهم تر از طرح شماتیکی آن سخت افزار با اطلاعات تصویری میباشد).
امروزه شرکت های زیادی وجود دارند که هر کدام از یک HDL انحصاری برای تولید مدارات خود استفاده میکنند. اما Verilog HDL و VHDL دو زبان استانداردی هستند که توسط IEEE پشتیبانی میشوند. هر دو زبان از محبوبیت و کاربرد های یکسانی در صنعت برخوردارند. انتخاب اینکه کدام زبان برای یادگیری بهتر است مهم نیست، چراکه هرکدام خصوصیات یکسانی دارند. اما میتوان گفت قابلیت حمل طراحی در Verilog بیشتر است. یک مدار طراحی شده توسط Verilog را میتوان در انواع مختلف تراشه ها یا نرم افزار های طراحیِ شرکت های مختلف (ابزارهای CAD) ، بدون نیاز یه تغییر مشخصات و دستورات Verilog اجرا کرد. این کار شبیه به تبدیل برنامهای به زبان سطح بالا به زبان سطح ماشین است که برای آن از کامپایلر استفاده میشود. از آنجا که تکنولوژی مدارهای دیجیتال به سرعت در حال تغییر است، این یک قابلیت بسیار مهم به شمار میآید که باعث میشود طراح بتواند یک مدار را با استفاده از Verilog و بدون در نظر گرفتن جزئیات یک تکنولوژی طراحی کند.
هنگامی که توسط HDL یک مدار را توصیف کردیم، جهت ارزیابی عملکرد مدار باید آن را شبیه سازی کنیم. شبیه سازی در این مرحله را شبیه سازی منطقی مینامند. زیرا در این مرحله فقط میتوان منطق طرح را شبیه سازی نمود و مواردی مثل تاخیر گیتها و مسیرها هنوز شناخته شده نیستند. HDL در این مرحله قادر به تشخیص خطای عملیاتی، بدون نیاز به تولید فیزیکی مدار است. به این وسیله میتوان از صحت عملکرد طرح اطمینان حاصل نمود. پس از این مرحله نوبت به سنتز مدار میرسد. در مرحله سنتز، فرآیندهای ترجمه و کامپایل مدار صورت میپذیرد که شامل تبدیل توصیفهای سخت افزاری به معادل های منطقی خود میباشد.