زبان توصيف سختافزار چيست ؟
HDL سر نام Hardware Description Language ، به خانوادهاي از زبانهاي برنامهنويسي گفته ميشود كه جهت مدلسازي عملكرد بخشي از يك سختافزار به كار گرفته ميشوند. توصيف سختافزار به كمك HDLها به دو شكل كلي امكان پذير است:
روش اول: مدلسازي ساختاري سختافزار، كه با تشرح ارتباطات خارجي، اجزاي تشكيل دهنده داخلي و اتصالات ميانها، جهت توصيف ساختار و اجزاي تشكيل دهنده يك سختافزار به كار برده ميشود.
روش دوم: مدلسازي رفتاري سختافزار، جهت توصيف انتزاعي رفتار يك سختافزار بدون در نظر گرفتن جزئيات ساختار آن ميباشد كه بدون لحاظ كردن اجزاي تشكيل دهنده، به توصيف خروجيهاي مدل بر اساس تابعي از وروديهاي آن ميپردازد. مدلسازي رفتاري يك سختافزار در سطوح مختلفي از انتزاع صورت ميپذيرد كه سطوح بالاتر رفتار سختافزار را به صورت چكيدهتر با جزئيات كمتري نسبت به سطوح پايين تر انتزاع، توصيف ميكنند.
طراحي يك سختافزار بر اساس طرح شماتيك مداري كه در گذشته از آن به وفور استفاده ميشد، با اينكه شامل اطلاعات بسيار كاملي در مورد سختافزار و اجزاي تشكيل دهنده آن بود، اما در توصيف طرحهاي بزرگ به خاطر حجم بسيار زياد اجزاي تشكيل دهنده طرح بسيار پيچيده گشته و حجم مستندات آن خارج از كنترل ميگشت. همچنين در روش سنتي طراحي از ايدههاي مطرح شده در طرح هيچ گونه حفاظتي به عمل نميآمد و امكان سواستفاده از آنها توسط اشخاصي كه طرح به آنها فروخته ميشود، وجود داشت.

نمايي از يك سختافزار مدرن، طراحي شده به كمك زبانهاي توصيف سختافزار
در طراحي يك سختافزار با توصيف متني آن به كمك يك زبان برنامهنويسي، هم حجم مستندات طرح كاهش يافته و هم امكان حفاظت ايدههاي طرح به وجود آمده است. علاوه بر اين توصيف متني يك سختافزار به كمك HDLها براي كامپيوتر قابل فهمتر از طرح شماتيكي آن سختافزار با اطلاعات تصويري ميباشد.
مهمترين وجه تمايز يك زبان توصيف سختافزار با يك زبان برنامهنويسي متداول مانند C ، در نحوه اجراي خطكدها ميباشد، در زبانهاي برنامه نويسي متداول مانند C خط كدهاي نوشته شده به ترتيب از بالا به پايين اجرا شده تا در نهايت به اتمام برسند، در حالي كه در زبانهاي توصيف سختافزار اجراي دستورات ماهيت ترتيبي و سريال نداشته و تمام خطكدها به صورت موازي و همزمان اجرا ميشوند، در واقع براي توصيف سختافزاري كه ممكن است از چندين بخش ساخته شده باشد كه خروجي آنها به صورت همزمان تغيير ميكند، زبانهاي برنامهنويسي متداول با ماهيت اجراي ترتيبي خود كاربردي ندارند.
شبيه سازي سختافزار به كمك HDLها
به كمك زبانهاي توصيف سختافزار علاوه بر طراحي ميتوانيم يك سختافزار را شبيه سازي كرده تا قابليتها و عملكرد آن را قبل از پيادهسازي آزمايش كنيم. در دنياي واقعي تست كردن يك سختافزار، خود نيازمند يك سختافزار ديگر است كه مجموعهاي از وروديهاي مجاز را براي سختافزار زير تست توليد كرده و خروجي حاصله را با مقدار مورد انتظار مقايسه كند. در فضاي مجازي كه كامپيوتر در اختيار ما قرار داده است نيز ميتوانيم قبل از پياده سازي و ساختن سختافزار، عملكرد آنرا با طراحي يك سختافزار جانبي جهت تست، سختافزار اصلي را ارزيابي كنيم، به اين ترتيب كه به كمك زبان توصيف سختافزار، برنامهاي نوشته ميشود تا زنجيرهاي از وروديها را به سختافزار مورد آزمايش داده و خروجي آن را با مقادير مورد انتظار طراح مقايسه نمايد، به اين برنامه كه جهت آزمايش عملكرد سختافزار نوشته ميشود، Testbench گفته ميشود.
زبانهاي توصيفسختافزار Verilog و VHDL در ميان ساير HDLها محبوبيت بيشتري پيدا كردهاند كه در ادامه مقاله به بررسي و مقايسهآنها خواهيم پرداخت.