ساختار کلی یک کد VHDL

هر کد VHDL از سه بخش اصلی تشکیل می‌شود:

1. کتابخانه‌ها (Libraries):

برای استفاده از توابع و بسته‌های آماده در کد، کتابخانه‌ها در ابتدای کد وارد می‌شوند.

library IEEE; 
use IEEE.STD_LOGIC_1164.ALL;
  • IEEE: یک کتابخانه استاندارد برای طراحی مدارهای دیجیتال است.
  • STD_LOGIC_1164: بسته‌ای که انواع داده منطقی (0, 1, Z, X) را تعریف می‌کند.

2. Entity (واحد موجودیت):

در بخش Entity، ورودی‌ها و خروجی‌های مدار تعریف می‌شوند.

entity AND_Gate is
port(
        A, B : in STD_LOGIC;   -- ورودی‌ها
        Y: out STD_LOGIC   -- خروجی
);
end AND_Gate;
  • A و B: دو ورودی منطقی
  • Y: خروجی منطقی
  • STD_LOGIC: نوع داده‌ای برای نمایش سیگنال‌های دیجیتال

3. Architecture (معماری):

در این قسمت، رفتار یا ساختار مدار تعریف می‌شود.

architecture Behavioral of AND_Gate is begin     
   Y <= A and B; 
end Behavioral
  • Behavioral: نحوه عملکرد گیت AND را نشان می‌دهد.
  • Y <= A and B: گیت AND زمانی "1" می‌دهد که A و B هر دو "1" باشند.

انواع مدل‌سازی در VHDL

VHDL سه روش مدل‌سازی دارد که هر کدام برای موقعیت‌های خاصی کاربرد دارند:

1. Behavioral (رفتاری):

  • بر توصیف رفتار سیستم تمرکز دارد.
  • برای مدل‌سازی مدارهای پیچیده مناسب است.
  • شبیه‌سازی سریع‌تر، اما بهینه‌سازی کمتر.

2. Structural (ساختاری):

  • سیستم را به اجزای کوچک‌تر تقسیم کرده و نحوه اتصال آن‌ها را نشان می‌دهد.
  • برای طراحی در سطح گیت یا ماژول مناسب است.

3. Dataflow (جریان داده):

  • براساس معادلات منطقی و رابطه‌های ریاضی است.
  • برای مدارهای ترکیبی (Combinational) مانند جمع‌کننده‌ها مناسب است.