تكامل طراحي ديجيتال به كمك كامپيوتر
با ظهور تكنولوژي مدار مجتمع، امكان پيادهسازي مدارات ديجيتال بر روي يك تراشه فراهم گرديد. اولين نسل مداراتمجتع يا IC ها، SSI سر نام Small Scale Integration نام دارد كه در اين نسل تراشهها با تعداد بسيار اندكي ترانزيستور و گيتهاي منطقي ساخته ميشدند، پس از آن حجم مجتمع سازي در نسلهاي MSI سر نام Medium ScaleIntegration و LSI سر نام Large Scale Integration به سرعت گسترش يافت و به طوري كه امكان مجتمع سازي هزاران گيت منطقي، در داخل يك تراشه براي طراحان سختافزار فراهم آمده بود.
در اين مرحله روند طراحي بسيار پيچيده و دشوار گرديده بود و طراحان نياز داشتند تا بخشي از مراحل طراحي را به كامپيوتر بسپارند. به كمك ابزارهاي طراحي ديجتال كامپيوتري يا CAD Toolها طراحان توانستند كامپيوتر را در فرايند طراحي اجزاي خود سهيم سازند.
نمايي از يك طراحي بسيار پيچيده
زبان توصيف سختافزار چيست ؟
روش اول:
روش دوم:
طراحي يك سختافزار بر اساس طرح شماتيك مداري كه در گذشته از آن به وفور استفاده ميشد، با اينكه شامل اطلاعات بسيار كاملي در مورد سختافزار و اجزاي تشكيل دهنده آن بود، اما در توصيف طرحهاي بزرگ به خاطر حجم بسيار زياد اجزاي تشكيل دهنده طرح بسيار پيچيده گشته و حجم مستندات آن خارج از كنترل ميگشت. همچنين در روش سنتي طراحي از ايدههاي مطرح شده در طرح هيچ گونه حفاظتي به عمل نميآمد و امكان سواستفاده از آنها توسط اشخاصي كه طرح به آنها فروخته ميشود، وجود داشت.
نمايي از يك سختافزار مدرن، طراحي شده به كمك زبانهاي توصيف سختافزار
مهمترين وجه تمايز يك زبان توصيف سختافزار با يك زبان برنامهنويسي متداول مانند C ، در نحوه اجراي خطكدها ميباشد، در زبانهاي برنامه نويسي متداول مانند C خط كدهاي نوشته شده به ترتيب از بالا به پايين اجرا شده تا در نهايت به اتمام برسند، در حالي كه در زبانهاي توصيف سختافزار اجراي دستورات ماهيت ترتيبي و سريال نداشته و تمام خطكدها به صورت موازي و همزمان اجرا ميشوند، در واقع براي توصيف سختافزاري كه ممكن است از چندين بخش ساخته شده باشد كه خروجي آنها به صورت همزمان تغيير ميكند، زبانهاي برنامهنويسي متداول با ماهيت اجراي ترتيبي خود كاربردي ندارند.
شبيه سازي سختافزار به كمك HDLها
زبانهاي توصيفسختافزار Verilog و VHDL در ميان ساير HDLها محبوبيت بيشتري پيدا كردهاند كه در ادامه مقاله به بررسي و مقايسهآنها خواهيم پرداخت.
زبان توصيف سختافزار VHDL
اين زبان در ابتدا به سفارش وزارت دفاع آمريكا جهت مستندسازي اطلاعات مدارات ديجيتال و تراشههاي به كار گرفته شده در ادوات نظامي، طراحي شد. اطلاعات بسيار زياد و پيچيده مدارات ديجيتال به كار گرفته شده در ادوات نظامي، مانع از توسعه سريع آنها ميشد و اطلاعات طراحي را فقط براي طراح قابل خواندن و پيگيري ميساخت به طوري كه توسعه همان طرح توسط شخصديگر دشوار بود، به همين خاطر در سال 1980 زباني طراحي شد كه توصيف يك مدار در سطوح مختلف انتزاع در آن ميسر باشد. پس از آن ابزارهايي جهت شبيهسازي مدارات طراحي شده با اين زبان ايجاد شد، سپس ابزارهاي كامپيوتري جهت سنتز كردن كدهاي VHDL عرضه شدند كه به كمك اين ابزار، توصيف سختافزاري يك مدار را ميتوان به راحتي به معادل فيزيكي آن جهت پياده سازي و ساخت مرتبط كرد.
در طراحي زبان توصيف سختافزاري VHDL از مفاهيم زبان برنامهنويسي Ada بهره برده شده به همين خاطر اين زبان در syntax بسيار مشابه Ada ميباشد. اين زبان به گونهاي طراحي شده كه مسائل همزماني و موازيسازي سختافزار را به خوبي پوشش دهد.
در سال 1983 دوشركت بزرگ IBM و Texas Instrument به همراه شركت Intermetrics قراردادي را جهت توسعه اين زبان براي كاربردهاي طراحي مدارات ديجيتال امضا كردند و چهار سال بعد اين زبان به توسط IEEE استاندارد سازي شد پس از آن وزارت دفاع آمريكا شركتهاي تابع خود را مقيد ساخت تا تمامي مدارات ديجيتال خود را به اين زبان توصيف كنند.
جگنده F-22 يكي از اولين پروژههايي بود كه تمامي مدارات و مستندات الكترونيكي آن به زبان VHDL نگاشته شده بود، موفقيت اين پروژه موجب شد تا زبان VHDL بيش از پيش توسعه يافته و مورد استفاده قرار گيرد.
در سال 1993 استاندارد IEEE-1076 ويرايش شد و در آن تمهيداتي جهت پوشش دادن به سيگنالهايي كه در آن واحد چند مقدار به آنها داده ميشود، انديشيده شد. در سال 1996 ابزارهاي شبيه سازي و سنتز مدارات ديجيتال توصيف شده توسط VHDL به صورت تجاري عرضه شدند تا مراحل طراحي تا پيادهسازي كامپيوتري يك سختافزار به كمك VHDL تكميل شود.
در سال 2006 كميته فني VHDL مستقر در كنسرسيوم Accellera كه توسط IEEE جهت به روزرساني استاندارد VHDL ايجاد شده است، نسخه سوم از پيش نويس استاندارد VHDL-2006 را ارائه كرد.
يك نمونه از برنامه VHDL كه به توصيف يك گيت AND ساده بدون ملاحظات زماني پرداخته است در زير آورده شده است :
std_logic from the IEEE library
library IEEE;
use IEEE.std_logic_1164.all; -- this is the entity
entity name_of_entity is
port (
IN1 : in std_logic;
IN2 : in std_logic;
OUT1: out std_logic);
end entity name_of_entity; -- here comes the architecture
architecture name_of_architecture of name_of_entity is -- Internal signals and components would be defined here
begin
OUT1 <= IN1 and IN2;
end architecture name_of_architecture;
زبان توصيف سختافزار Verilog
Syntax اين زبان بسيار مشابه به زبان C ميباشد و در توسعه آن از ويژگيهاي زبان C الگو گرفته شده است. اين زبان در سال 1981 توسط Phil Moorby در شركت Gateway DesignAutomation ابداع شد و در سال 1985 نرمافزار شبيهساز اين زبان به نام Verilog-XL عرضه شد در سال 1989 اين شركت به همراه حقوق معنوي اين زبان توسط شركت Cadance خريداري و سپس مستندات آنرا براي استفاده عمومي، به صورت رايگان در اختيار مردم قرار گرفت.
در سال 1993 اين زبان توسط IEEE بازنگري و استانداردسازي شد در همين سال بر اساس آمار EETimes حدود 85 درصد از طراحيهاي مدارات مجتمعي كه به كارخانههاي توليدكننده ادوات نيمههادي سفارش داده شدند، به زبان Verilog توصيف شده بودند.
يك نمونه از برنامه Verilog كه به توصيف يك فليپفلاپ پرداخته است در زير آورده شده است :
module toplevel(clock,reset);
input clock;
input reset;
reg flop1;
reg flop2; always @ (posedge reset or posedge clock)
if (reset)
begin
flop1 <= 0;
flop2 <= 1;
end
else
begin
flop1 <= flop2;
flop2 <= flop1;
end
endmodule
Verilogدر برابر VHDL
همانطور كه مشاهده ميكنيد، زبان Verilog توانايي مدلسازي سختافزار تا پايينترين سطح انتزاع يعني سطح ترانزيستور و سوييچ را دارا ميباشد در حالي كه زبان VHDL توانايي مدلسازي سختافزار در بالاترين سطوح انتزاع (تا سطح سيستم) را دارد. علارقم اينكه به كمك قابليت PLI زبان Verilog تا حدودي ميتوان به توصيف سيستمي يك سختافزار پرداخت، اما اصولا بهرهگيري از HDL ها جهت توصيف يك سيستم ناكارآمد است و براي اين منظور زبانهاي كارآمد ديگري مانند SystemC و System Verilog طراحي شده كه به كمك آنها ميتوان سختافزار را از بالاترين سطح انتزاع توصيف نمود. لذا قابليتهاي توصيف سيستمي VHDL را به سختي ميتوان در زمره برتريهاي آن نسبت به Verilog قلمداد كرد.
انواع داده در زبان Verilog نسبت به VHDL ساده تر و استفاده از آنها آسانتر ميباشد، ضمن اينكه اين انواع داده در Verilog به مدلسازي ساختاري نزديكتر هستند، در اين زبان برخلاف VHDL انواع داده مشخصي تعريف شده است و كاربر نميتواند انواع داده جديد به آن اضافه كند. به دليل سادگي استفاده از انواع دادهها زبان Verilog نسبت به VHDL ارجحيت دارد.
براي فردي كه پيشزمينهاي در مورد زبانهاي برنامه نويسي ندارد، يادگيري زبان Verilogسادهتر از VHDL است، چرا كه نوشتن كدهاي VHDL كمي پيچيده تر از Verilogميباشد و براي تسلط بر خط كد اين VHDL، زمان بيشتري نياز است، علاوه بر اينكه در زبان VHDL روشهاي متعددي براي مدل كردن يك مدار وجود دارد كه در ساختارهاي بزرگ ميتواند موجب سردرگمي افراد تازه كار شود.
انتخاب يك زبان توصيف سختافزار
سليقه شخصي :
C مسلط هستند، زبان Verilog را كه خط كد مشابه C دارند ترجيح ميدهند، ضمن اينكه خوانايي كدهاي اين زبان بهتر از VHDL است.
موجوديت ابزارهاي شبيهسازي و سنتز : در حال حاضر ابزارهاي شبيهساز رايگان متعددي براي زبان Verilog وجود دارند كه از ميانآنها ميتوان به كامپايلر Icarus Verilog اشاره كرد، در حالي كه ابزارهاي شبيهساز متنباز اندكي براي VHDL موجود هستند و اقلب ابزارهاي شبيهسازي اين زبان، به صورت تجاري به فروش ميرسند.
عوامل تجاري و بازاريابي : بر اساس آمارهاي منتشر شده در سال 1998بازار ابزارهاي شبيهسازي زبان Verilog حدود 150 ميليون دلار اعتبار داشت به طوري كه اعتبار اين بازار نسبت به سال 1994 دو برابر شده بود، در سال 2003 نيز شركت Synopses يكي از بزرگترين شركتهاي اين بازار چند صد ميليون دلاري، اعلام كرد كه تيم توسعه و تحقيقات اين شركت تنها بر روي Verilog متمركز شده اند و در ابزارهاي شبيهسازي اين شركت از VHDLپشتيباني نخواهد شد.
زبان توصيف سختافزاري Verilog مورد استقبال صنايع بزرگ قرار گرفته است به طوري كه امروزه اين زبان به عنوان يك زبان پركاربرد در صنعت طراحي و توليد مدارات ديجيتال شناخته شده است. در مقابل زبان VHDL از سوي جامعه آكادميك مورد استقبال قرار گرفته و بيشتر در پروژههاي دانشگاهي از آن بهره گرفته ميشود.
تمركز وبسايت تخصصي سختافزار ايران نيز با توجه به برتريهاي ذكر شده بر روي زبان توصيف سختافزاري Verilog ميباشد. به همين منظور جهت فراگيري اين زبان خودآموز زير را به خوانندگان گرامي اهدا ميكنيم.
خودآموز زبان Verilog نگاشته جناب آقاي دكتر صفري استاديار دانشگاه تهران در گروه مهندسي كامپيوتر-سختافزار:
جهت فراگيري زبان توصيف سختافزاري VHDL نيز مراجع و كتبهاي متعددي وجود دارد كه بر اساس مشورتهاي صورت گرفته Tutorial منتشر شده توسط سايت cic.org.tw به خوانندگان محترم پيشنهاد داده ميشود،نسخهPDF اين خودآموز را ميتوانيد از اين آدرس دانلود كنيد.
منابع: WayneWolf, "ModernVLSIDesign" 3rd Edition, Prentice-Hall
SamirPalnitkar, "Verilog®HDL: A Guide to Digital Design and Synthesis", Second Edition, Prentice-Hall
DouglasJ.Smith, "HDLChip Design", Doone publications
ارسال مقاله توسط کاربر محترم سايت :hojat20