موضوع مقاله: زبان توصیف سخت‌افزار | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # زبان توصیف سخت‌افزار | مقدمه: زبان توصیف سخت‌افزار در الکترونیک، یک زبان تخصصی کامپیوتر برای توصیف ساختار و رفتار مدارهای الکترونیکی و اغلب مدارهای منطقی دیجیتال است. | ## بخش 1: زبان توصیف سخت‌افزار | زبان توصیف سخت‌افزار قادر به توصیف دقیق و رسمی از یک مدار الکترونیکی است که اجازه تجزیه و تحلیل خودکار و شبیه‌سازی یک مدار الکترونیکی را می‌دهد. همچنین اجازه سنتز توصیفHDL به یک لیستنت (مشخصات قطعات الکترونیکی فیزیکی و چگونگی اتصال آن‌ها به همدیگر) را می‌دهد که می‌تواند برای تولید مجموعه‌ای از ماسک‌ها و ایجاد یک مدار یکپارچه مورد استفاده قرار گیرد. یک زبان توصیف سخت‌افزار بسیار شبیه به زبان برنامه‌نویسی می‌باشد، مثل C که یک توصیف متنی شامل عبارت، بیانیه‌ها و ساختارهای کنترل است. یکی از مهم‌ترین تفاوت‌ها بین اکثر زبان‌های برنامه‌نویسی و HDLها دقیقاً شامل مفهوم زمان است. HDLها بخش جدای ناپذیر از سیستم‌های اتوماسیون طراحی الکترونیکی (EDA)، به ویژه برای مدارات پیچیده مانند مدارات یکپارچه برنامه‌های خاص، میکروپروسسورها و دستگاه‌های منطقی قابل برنامه‌ریزی هستند. انگیزه با توجه به انفجار پیچیدگی مدارهای الکترونیکی دیجیتال از سال ۱۹۷۰(قانون مور را ببینید) طراحان مدار به یک توصیف منطق دیجیتال جهت ارائه در سطح بالا جدا از یک تکنولوژی خاص الکترونیکی مانند CMOS یا BJT، نیاز پیدا کرده‌اند.HDLها برای پیاده‌سازی سطح انتزاعی از انتقال رجیستر، مدلی از جریان داده و زمان یک مدار ایجاد شده‌اند. HDL مانند زبان‌های برنامه‌نویسی همزمان، شامل نحو و معناشناسی و نمادهای صریح برای بیان همزمانی می‌باشد. در مقابل اکثر زبان‌های برنامه‌نویسی نرم‌افزار، HDLها شامل یک مفهوم صریح و روشن از زمان که ویژگی اصلی سخت‌افزار است، می‌باشند. زبان‌هایی که تنها ویژگی آن بیان همزمانی مداری بین سلسه مراتبی از بلوک‌های رده‌بندی مناسب می‌باشد به عنوان زبان‌های لیستنت برای طراحی از طریق کامپیوتر برق CAD مورد استفاده قرار می‌گیرد. HDL می‌تواند برای بیان طراحی در معماری ساختار و رفتار یا سطح انتقال ثبات به منظور عملکرد مدارات مورد استفاده قرار گیرد. یک برنامه که پیاده‌سازی معانی اساسی حالت‌های زبان و شبیه‌سازی پیشرفت زمان با توانایی مدلسازی یک قطعه از سخت‌افزار را قبل از ساخت فیزیکی، طراحی می‌کند.HDLها قابلیت آن را دارند که توهمی از زبان‌های برنامه‌نویسی بدهند درحالی که آن‌ها دقیقاً به عنوان زبان‌های خاص یا زبان مدلسازی طبقه‌بندی شده‌اند. شبیه‌سازها قادر به حمایت از مدلسازی رویداد گسسته (دیجیتال) و پیوسته در زمان (آنالوگ) هستند و HDLهای هدفمند برای هر دو در دسترس هستند. مقایسه با زبان‌های کنترل جریان ارائه معناشناسی سخت‌افزار با استفاده از زبان‌های برنامه‌نویسی سنتی مانند C++ که بر روی کنترل جریان معناشناسی به عنوان مخالف جریان داده عمل می‌کند، قطعاً امکان‌پذیر است، اگرچه برای اینچنین عملکردی برنامه‌ها باید از قبل با کلاس‌های کتابخانه‌ای پهناور و سنگین تقویت شوند. به‌طور کلی زبان‌های برنامه‌نویسی نرم‌افزار قادر به بیان دقیق زمان نیستند و نمی‌توانند همانند زبان توصیف سخت‌افزار عمل کنند. قبل از معرفی سیستم وریلاگ در سال ۲۰۰۲، مجتمع c++ یکی از معدود روش‌ها برای منطق شبیه‌ساز بود که برای برنامه‌نویسی شی گرا در شناسایی سخت‌افزار استفاده می‌شد. با استفاده از زیر مجموعه ای از زبان توصیف سخت‌افزار، برنامه‌ای به نام سنتزکننده یا ابزار سنتز منطقی، می‌توانید به عملیات منطقی سخت‌افزار از جملات زبان اشاره کرد و یک لیست نت معادل سخت‌افزار اولیه عمومی برای پیاده‌سازی رفتار مشخص تولید کرد. سنتزکننده منطق دیجیتال، برای مثال، به‌طور کلی از لبه کلاک به عنوان روشی برای زمان مدار استفاده می‌کند و از هر گونه ساختار زبان چشم پوشی می‌کند. توانایی داشتن یک زیرمجموعه زبانی قابل سنتز که خودش را اجرا نمی‌کند یک توصیف سخت‌افزار ایجاد کند. تاریخ به نظر می‌رسد اولین زبان توصیف سخت‌افزار در اواخر ۱۹۶۰ همانند اکثر زبان‌های برنامه‌نویسی ظاهر شده. ساختار متن کامپیوتر این متن مفهوم سطح انتقال ثبات را معرفی می‌کرد و برای اولین بار در زبان isp برای توصیف رفتار دیجیتال تجهیزات شرکت (DEC) PDP-8 استفاده شد. زبان با معرفی DEC's PDP-16 ماژول سطح انتقال گیت خیلی وسیعتر می‌شود و یک کتاب توصیف برای استفاده. ISPها برای توصیف روابط بین ورودی و خروجی طراحی منسب می‌باشند و به سرعت توسط تیم‌های تجاری در دسامبر وب همچنین با تعدادی از تیم‌های تحقیقاتی هر دو در ایالات متحده آمریکا و در میان متحدان ان در ناتو به تصویب رسید. تولیدات RTM هرگز به‌طور تجاری خاموش نشدند وDEC بازاریابی آن‌ها را در اواسط ۱۹۸۰ متوقف کرد. کارجداگانه‌ای در ۱۹۷۹ در دانشگاه کایزر سلاترن منجر به تولید یک زبان به نام کارل شد (کایزرسلاترن زبان انتقال ثبات) که شامل طراحی ویژگی‌های زبان حساب‌ها که از چیپ‌های VLSI و صنف طرح سخت‌افزار ساخت یافته حمایت می‌کرد. در میانه سال ۱۹۸۰ یک چارچوب طراحی VLSIحول کرل و ABL توسط یک کنسرسیوم بین‌المللی بودجه توسط اتحادیه اروپا به اجرا گذاشت. | ## بخش 2: زبان توصیف سخت‌افزار | طراحی با استفاده از HDL یکی از نتیجه دستاوردهای سودمند استفاده از HDL، این است که اکثریت طراحی مدارهای دیجیتال مدرن در حول آن هستند، بسیاری از طراحی‌ها به عنوان یک مجموعه از الزامات یا نمودارهای معماری در سطح بالا آغاز شد. ساختارهای کنترل و تصمیم اغلب در برنامه‌های کاربردی فلوچارت نمونه‌سازی یا در یک ویرایشگر نمودار حالت وارد می‌شوند. روند نوشتن توضیحات HDL بسیار وابسته به طبیعت مدار و ترجیح طراح برای برنامه‌نویسی سبک است.HDL صرفاً «زبان ضبط» است که اغلب با یک توضیحات الگوریتم سطح بالا مانند مدل ریاضی به زبان C++ شروع شده‌است. طراحان اغلب از زبان اسکریپت مانند کرل برای تولید تکراری و اتوماتیک ساختار زبان درHDL استفاده می‌کنند. ویرایشگرهای خاص متن ویژگی‌هایی برای کنگره اتوماتیک، رنگ وابسته به نحو و گسترش مبتنی بر ماکرو که از نهاد معماری اعلام سیگنال را ارائه می‌دهند را پیشنهاد می‌دهند. در آماده‌سازی برای سنتز، توصیفات HDL موضوعی برای ارائه از چک‌کننده‌های اتوماتیک است. چک‌کنندها انحراف‌های کد دستورهای استاندارد را گزارش می‌دهند و ساختار کد مبهم بالقوه را قبل از اینکه آن‌ها دلیل سوءتعبیر شوند را شناسایی می‌کنند و برای خطاهای منطقی کدهای رایج را چک می‌کنند، به عنوان مثال پورت شناور یا خروجی اتصال کوتاه را بررسی می‌کنند، این پردازش در رفع خطاهای قبل از سنتز شدن کد کمک می‌کند. هنگامی که ابزار سنتز از توصیفات HDL برای یک گیت نت لیست نقشه‌برداری می‌کند، نت لیست به مرحله قبل آخرین حالت برمی گردد. به‌طور کلی پیشرفت جریان طراحی در راستای یک شکل فیزیکی تحقق می‌یابد، طراحی پایگاه داده که با اطلاعات تکنولوژی خاص به تدریج سنگین می‌شوند و نمی‌تواند در حالت کلی توصیف HDL ذخیره شود، در نهایت یک مدار مجتمع برای استفاده یا برنامه‌ریزی ساخته می‌شود. شبیه‌سازی اجازه توصیف سخت‌افزاریHDL (مدل نامیده می‌شود) برای گذر از تأیید طراحی یک مرحله مهمی که توابع در نظر گرفته شده طراحی (خاص) را در مقابل پیاده‌سازی کد در توصیف HDL اعتبار سنجی می‌کند و همچنین اجازه اکتشاف معماری را می‌دهد. طراح می‌تواند با انتخاب طرح نوشتن تغییرات متعدد طراحی از پایه طرح را آزمایش کند. سپس رفتار آن‌ها را در شبیه‌سازی مقایسه کند؛ بنابراین در شبیه‌سازی برای طراحی موفق HDL خیلی مهم است. یک مهندس برای شبیه‌سازی یک مدل HDL، یک محیط شبیه‌سازی سطح بالا می‌نویسد (تست پنج نامیده می‌شود). یک تست پنج حداقل شامل یک ساختار از مدل (دستگاه تحت تست یا DUT) اعلام پنن سیگنال برای مدل ورودی خروجی و یک موج کلاس است. کد تست پنج رویداد محور است: مهندس حالات HDL را برای پیاده‌سازی تنظیمات سیگنال (تست پنج تولید شده) برای مدل خط اتصال تراکنش (به عنوان یک باس میزبان نوشتن/خواندن) و برای نظارت خروجی DUP. یک شبیه‌ساز HDL –برنامه‌ای که شبیه‌ساز را اجرا می‌کند- کلاک شبیه‌ساز، منبع اصلی برای همه رویدادهای شبیه‌سازی تست پنج را القا می‌کند. رویدادها تنها در هم لحظه دیکته شده به وسیلهٔ تست پنج HDL اتفاق می‌افتند (به عنوان بازنشانده به یکدیگر کدشده به تست پنج) یا در عکس‌العمل (توسط مدل) برای شبیه‌سازی راه اندازی رویدادها. این‌ها به کاربر اجازه توقف و اجرای شبیه‌ساز را در هرزمانی، داخل کردن نقطه انفصال در شبیه‌ساز، (مستقل از کد HDL) و نظارت و اصلاح هر قسمتی در سلسه مرتب مدل HDL را می‌دهد. شبیه‌سازهای مدرن همچنین می‌توانند محیط HDL را به کتابخانه‌های کامپایل شده کاربر پیوند دهند، در میان یک واسط PLI/VHPI تعریف شده. بازبینی طراحی اغلب بیشترین بخش وقت گیر از فرایند طراحی می‌باشد که با توجه به قطع ارتباط بین خصوصیات عملکردی دستگاه، تفسیر دستگاه از خصوصیات، و عدم دقت از زبان HDLاست. اکثر چرخه آزمون اشکال زدایی اولیه در محیط شبیه‌ساز HDL هدایت شده‌است، به عنوان حالت اولیه طراحی به تغییرات مکرر مدار بزرگ است. یک توصیف HDL همچنین می‌تواند نمونه‌سازی و تست شده در سخت‌افزار قابل برنامه‌ریزی در دستگاهایی باشد که اغلب برای این هدف استفاده می‌شوند. نمونه‌سازی سخت‌افزار نسبتاً گران‌تر از شبیه‌سازی HDL است، اما دنیای واقعی از طراحی را نمایش می‌دهد. نمونه‌سازی بهترین راه برای چک کردن اتصال در برابر دیگر دستگاه‌های سخت‌افزاری و نمونه‌های اولی سخت‌افزاری است. حتی کسانی که در حال اجرا در FPGAهای کند هستند زمان شبیه‌سازی را کمتر از شبیه‌سازی خالص HDL پیشنهاد می‌دهند. | ## بخش 3: زبان توصیف سخت‌افزار | بازبینی طراحی با DHL از لحاظ تاریخی، بازبینی طراحی یک کار پرزحمت، حلقه تکراری نوشتن و اجرای موارد آزمون شبیه‌سازی در مقابل طراحی تحت تست بود. چون که تراشه‌های طراحی بزرگتر و پیچیده‌تر شده‌اند، وظیفه بررسی طراحی به نقطه‌ای که آن را در حال حاضر غالب برنامه تیمی طراحی است افزایش پیدا کرده‌است. دنبال راه‌هایی برای بهبود بهره‌وری طراحی، طراحی الکترونیکی صنعت اتوماسیون زبان مشخصات اموال را توسعه داده است. در شرایط تأیید رسمی، ویژگی‌ها بیانیه واقعی در مورد رفتار مورد انتظار یا فرض‌های شی دیگری است. در حالت ایده‌آل، برای توصیف دادن ،HDL می‌توان ثابت کرد درستی یا غلط بودن یک ملک یا ویژگی را با استفاده از روش‌های رسمی ریاضیات، در مورد عملی، خیلی از ویژگی‌ها نمی‌توانند ثابت بشوند زیرا آن‌ها یک فضای راه حل نامحدود را اشغال می‌کنند. به هر حال اگر یک مجموعه از فرضیات عمل یا محدودیت‌ها فراهم شوند، یک چک‌کننده ملک می‌تواند ویژگی‌های خاصی را توسط فضای راه حل باریک معین کاوش کند. اظهارات یک مدل مداری فعالی درست نمی‌کند اما ضبط و اسناد منظور طراح در کد HDL است. در یک محیط شبیه‌سازی، شبیه‌ساز همه اعلان‌های خاص را ارزیابی می‌کند و محل و شدت هرگونه نقض را گزارش می‌دهد. در محیط سنتز، ابراز سنتز معمولاً با سیاست توقف سنتز برهرروی گونه تخلف عمل می‌کند. تأیید مبتنی بر اعلان هنوز در مراحل ابتدایی است اما انتظار می‌رود به بخشی جدایی ناپذیر از مجموعه ابزارهای طراحی HDL تبدیل شود. HDL و زبان‌های برنامه‌نویسی به شدت شبیه به یک زبان برنامه‌نویسی نرم‌افزار است، اما تفاوت عمده وجود دارد. بسیاری از زبان‌های برنامه‌نویسی ذاتاً رویه (تک رشته‌ای)، با پشتیبانی ساختاری و مفهومی محدود به راه اندازی همزمانی هستند. HDLها از سوی دیگر، شباهت زیادی به زبان‌های برنامه‌نویسی هم‌زمان در توانایشان در مدلینگ پردازش موازی (مانند فلیپ فلاپ‌ها و جمع‌کننده‌ها) دارند که به صورت اتوماتیک به‌طور مستقل از یکدیگر اجرا می‌کند. هر تغییری در وردی فرایند به صورت اتوماتیک یک بروزرسانی در پشته فرایند شبیه‌ساز را راه اندازی می‌کند. هر دو زبان‌های برنامه‌نویسی برم افزار و HDLها به وسیله کامپایلر عمل کنند (در HDLها معمولاً سنتز نامیده می‌شوند) ولی با هدف متفاوت. در HDLها «کامپایل» به سنتز منطقی اشاره، به فراینده انتقال لیست کدHDL به یک لستنت گیت فیزیکی قابل درک، خروجی نت لیست هر فرمی را می‌تواند بگیرد، یک لیست نت«شبیه‌سازی» با اطلاعات تأخیر گیت و یک لیستنت «بدون دست» برای مکان سنتز پست و مسیر، یا یک فرمت طرح کلی مجتمع الکترونیک استاندارد صنعتی (EDIF برای تبدیل زیردنباله به یک فایل فرمت JEDEC) از سوی دیگر، یک کامپایلر نرم‌افزار کد منبع را به یک کد شی ریزپردازنده خاص برای اجرا در ریزپردازنده هدف تبدیل می‌کند. چون HDLها و زبان‌های برنامه‌نویسی قرض می‌کنند مفاهیم و ویژگی‌هایی از یکدیگر، مرز بین آن‌ها کمتر نامشخص شده‌است. با این حال، HDL خالص برای اهداف عمومی توسعه نرم‌افزار کاربردی نامناسب هستند، همان‌طور که زبان‌های برنامه‌نویسی همه منظوره برای مدلسازی سخت‌افزار مناسب نیستند. با این حال، چون سیستم‌های الکترونیکی رشد فزاینده پیچیده‌ای دارند، و سیستم‌های قابل پیکربند به‌طور فزاینده رایج شده‌اند، تمایل به رشد در صنعت برای یک زبان واحد وجود دارد که می‌تواند برخی از وظایف هر دو طراحی سخت‌افزار و برنامه‌نویسی نرم‌افزار را انجام دهند. System C یک نمونه از سخت‌افزار سیستم تعبیه شده‌است که می‌تواند بلوک‌های غیرجزئی معماری (جعبه سیاه با ورودی سیگنال مدل و درایور خروجی) را مدل کند. نرم‌افزار هدف در C و C ++ نوشته شده و برای سیستم توسعه میزبان به صورت محلی کامپایل می‌شود (به عنوان مخالف هدف CPU تعبیه شده، که نیاز به میزبان شبیه‌سازی از CPU جاسازی شده یا پردازنده شبیه‌سازی شده). سطح انتزاعی بالا از مدل‌های سیستمی C برای اکتشاف معماری اولیه بسیار مناسب هستند، به عنوان اصلاحات معماری می‌تواند به راحتی با کمی نگرانی برای مسائل پیاده‌سازی سطح سیگنال مورد بررسی قرار گیرد. به هرحال، مدل نخ مورد استفاده در System C و وابستگی آن به حافظه مشترک این معنی است که آن به خوبی اجرای موازی یا مدل‌های سطح پایین‌تر را اجرا نمی‌کند. به منظور بالا بردن سطح انتزاع از طراحی برای کاهش پیچیدگی برنامه‌نویسی در HDLها، ایجاد یک زیر زمینه به نام سنتز سطح بالا وجود دارد. | ## جمع‌بندی | رویکردهای مبتنی بر استانداردهای C یا C ++ (با کتابخانه یا پسوندهای دیگر اجازه می‌دهد برنامه‌نویسی موازی) در ابزار منجنیق C از مربی گرافیک یافت شده‌اند، و همچنین ابزار ضربه C از ضربه تسریع فناوری.