مقایسه تفاوت های بین دو زبان Verilog و VHDL

مقایسه تفاوت های بین دو زبان Verilog و VHDL

مقدمه

طراحان سخت افزار های الکترونیکی ، رفتار و ساختار یک مجموعه ی دیجیتال را با استفاده از زبان های HDL ( مخفف Hardware Description Language ) توصیف می کنند . زبان های توصیف سخت افزار در حال حاضر شامل سه نوع زبان متفاوت VHDL ، Verilog و System Verilog هستند . این زبان های توصیف سخت افزار با زبان های برنامه نویسی نرم افزاری تفاوت دارند زیرا در آنها از ارتباطات سیگنالی و زمان انتشار سیگنال ها سخن به میان است . در هر یک از سه زبان HDL گفته شده سبک توصیف سخت افزار منحصر به خود را دارند . در زبان VHDL و Verilog پیاده سازی در سطح رجیستری است ( Register Transfer Level ) که یک سطح بالاتر از سطح گیت ( Gate Level ) است . اما زبان SystemVerilog در ادامه مسیر تکامل پیاده سازی سخت افزاری از سطح بالاتری از طراحی سیستم های دیجیتال پشتیبانی می کند که در آن در کنار استفاده از نسخه بهبود یافته Verilog ، برنامه نویسی شی گرا ( Object Oriented ) نیز اضافه شده است .

 


ویژگی های VHDL در مقابل Verilog

VHDL که مخفف Very High Speed Integrated Circuit Hardware Description Language است از نظر Syntax غنی تر از Verilog است و توانایی مدل‌سازی سخت‌افزار در بالاترین سطوح انتزاع (تا سطح سیستم) را دارد در حالی که Verilog بیشتر به زبان C شبیه است و از توصیف سخت افزار در سطوح پایین تر طراحی ( سطح گیت ) نیز پشتیبانی می کند . شکل زیر نشان‌دهنده میزان مقیاس پذیری این دو زبان در سطوح مختلف انتزاع در توصیف رفتاری می‌باشد .

HDLs

در زبان VHDL سطح سیستم قابلیتی را ایجاد می کند تا توابع و پروسه ها بتواند در قالب یک پکیج بسته یا Core با Core های دیگر به صورت جداگانه ترکیب شود . یعنی از به هم پیوستن Core های کوچکتر Core های بزرگتر ساخته می شود. اما در Verilog هیچ مفهوم بسته ای وجود ندارد و کلیه توابع و پروسه ها باید در قالب یک ماژول تعریف شود که این ماژول در قالب هدر فایل به برنامه افزوده می شود .

انواع داده در زبان Verilog نسبت به VHDL ساده تر و استفاده از آنها آسان‌تر می‌باشد، ضمن اینکه این انواع داده در Verilog به مدلسازی ساختاری نزدیک‌تر هستند، در این زبان برخلاف VHDL انواع داده مشخصی تعریف شده است و کاربر نمی‌تواند انواع داده جدید به آن اضافه کند.

برای فردی که پیش‌زمینه‌ای در مورد زبان‌های برنامه نویسی ندارد، یادگیری زبان Verilog‌ساده‌تر از VHDL است، چرا که نوشتن کد‌های VHDL کمی پیچیده تر از Verilog‌می‌باشد و Verilog تقریبا ۵۰ درصد به زبان C شبیه است .

 


نمونه یک کد VHDL

reg1: process (rst, cllk)
begin
if  rst = ‘1’ then
q_reg <= (others => ‘0’);
q_i <= (others => ‘0’);
elsif  rising_edge(clk) then
if  s_l = ‘1’ then
q_i(0) <= q_i(7);
loop1:  for i in 6 downto 0 loop
q_i(i + 1) <= q_i(i);
end loop loop1;
q_reg <= y;
else
q_i <= q_reg;
q_reg <= y;
end if;
end if;
end process reg1;


نمونه یک کد Verilog

always @(posedge CLK or posedge RST)
begin
if (RST) begin
q_reg = 0;
Q = 0;
end else if (S_L) begin
Q[7:0] = {Q[6:0],Q[7]};
q_reg = Y;
end else begin
Q = q_reg;
q_reg = Y;
end
end

این مطلب را با دوستانتان به اشتراگ بگذارید

دیدگاه (2)

  • محمدرضا آریا پاسخ

    ضمن عرض سلام ، ادب و احترام
    واقعا خدا قوت مهندس عزیز بخاطر سایت عالی و به روز و مفیدتون
    خدمتون عرض کنم اگه اشتباه نکنم VHDL مخفف Very(high speed)HDL باشه

    ۱۲/۱۱/۱۳۹۴ در ۲۰:۱۰
    • محمد حسین پاسخ

      سلام دوست عزیز سپاسگزارم بله حق با شماست اصلاح می کنم تشکر

      ۱۲/۱۱/۱۳۹۴ در ۲۱:۱۹

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

هفت + بیست =