پیاده سازی یک گیت AND ساده با استفاده از VHDL
در ادامه میخواهیم یک گیت ساده منطقی را با استفاده از زبان برنامه نویسی VHDL پیاده سازی کنیم. به این نکته توجه داشته باشید که این کد به صورت آسنکرون پیاده سازی شده است. بهتر است در انجام پروژه FPGA کدها به صورت سنکرون پیاده سازی شده باشند.
چیزی که اینجا میخواهیم برنامه نویسی کنیم به صورت شکل زیر خواهد بود:

entity and_gate is
port (
A : in std_logic;
B : in std_logic;
C : out std_logic
);
end and_gate;
architecture and_gate_arch of and_gate is
begin
C <= A and B;
end and_gate_arch;
توضیح مختصر:
مشاهده میکنید که ابتدا متغیر A و B به عنوان ورودی تعریف شده اند. خروجی C است و سپس در ساختار برنامه فقط با نوشتن کلمه and توانستیم برنامه را بنویسیم.
نکته دیگر اینکه زبان VHDL به حروف بزرگ و کوچک انگلیسی حساس نیست.
توضیحات مفصل:
توضیح مفصل:
1. تعریف Entity
entity and_gate is
در این خط، یک موجودیت (entity) به نام and_gate تعریف میشود. موجودیتها در VHDL نمایندهی یک ماژول یا بلوک سختافزاری هستند.
2. تعریف ورودی و خروجیها
port(
A : in std_logic; -- تعریف ورودی اول
B : in std_logic; -- تعریف ورودی دوم
C : out std_logic -- تعریف خروجی
);
در این بخش، ورودیها و خروجیهای موجودیت تعریف میشوند:
• A و B به عنوان ورودیهای نوع std_logic تعریف شدهاند. نوع std_logic در VHDL برای نمایش سیگنالهای دیجیتال استفاده میشود.
• C به عنوان خروجی نوع std_logicتعریف شده است.
3. پایان تعریف موجودیت
end and_gate;
این خط نشاندهندهی پایان تعریف موجودیت and_gate است.
4. تعریف ساختار برنامه
architecture and_gate_arch of and_gate is
در اینجا، ساختار (architecture) مربوط به موجودیت and_gate با نام and_gate_arch تعریف میشود. این بخش شامل پیادهسازی داخلی و رفتار گیت است.
5. بدنه برنامه
begin
C <= A and B; -- بدنه برنامه، برنامه نویسی گیت اند
در این قسمت، بدنه برنامه قرار دارد. عملگر <= برای انتساب استفاده میشود. عبارت C <= A and B; به این معنی است که خروجی C برابر با نتیجهی منطقی AND بین ورودیهای A و B است.
6. پایان ساختار برنامه
end and_gate_arch;
این خط نشاندهندهی پایان تعریف ساختار and_gate_archاست.
نکات مهم
• حساسیت به حروف بزرگ و کوچک: زبان VHDL به حروف بزرگ و کوچک حساس نیست، به این معنی که A, a, AND, andبه طور یکسان در نظر گرفته میشوند.
• سازماندهی کد: ساختار VHDL شامل دو بخش اصلی است: موجودیت (entity) که ورودیها و خروجیها را مشخص میکند و ساختار (architecture) که نحوهی عملکرد و پیادهسازی داخلی را توصیف میکند.
• استفاده از نوع std_logic: این نوع دادهای به شما اجازه میدهد تا سیگنالهای دیجیتال را با وضعیتهای مختلف (0, 1, Z, X و ...) مدیریت کنید.
با توجه به توضیحات بالا، این کد یک گیت AND ساده را با استفاده از VHDL پیادهسازی کرده است که ورودیهای آن دو سیگنال دیجیتال هستند و خروجی آن نتیجه منطقی AND این دو ورودی است.