در طراحی دیجیتال با زبان VHDL، تست بنچ ابزار مهمی برای بررسی صحت عملکرد مدار است. این فایل مستقل از طراحی اصلی اجرا شده و با اعمال سیگنالهای مختلف، عملکرد مدار را تست میکند.
ویژگیهای تست بنچ:
- تست بنچ پورت ندارد.
- از سیگنالها برای اتصال به طراحی استفاده میشود.
- از دستورات
wait for
برای شبیهسازی زمان استفاده میشود. - قابل سنتز نیست و فقط در شبیهساز استفاده میشود.
طراحی تحت تست (DUT):
entity and_gate is
Port (
a : in std_logic;
b : in std_logic;
y : out std_logic
);
end and_gate;
architecture Behavioral of and_gate is
begin
y <= a and b;
end Behavioral;
تست بنچ برای and_gate:
entity and_gate_tb is
end entity;
architecture sim of and_gate_tb is
signal a, b, y : std_logic;
begin
-- فراخوانی DUT
uut: entity work.and_gate
port map (
a => a,
b => b,
y => y
);
-- تحریک ورودیها
stim_proc: process
begin
a <= '0'; b <= '0'; wait for 10 ns;
a <= '0'; b <= '1'; wait for 10 ns;
a <= '1'; b <= '0'; wait for 10 ns;
a <= '1'; b <= '1'; wait for 10 ns;
wait;
end process;
end sim;
نتیجه:
با اجرای این تست بنچ در محیط شبیهسازی مانند Vivado Simulator یا ModelSim، میتوانیم خروجی y را در زمانهای مختلف مشاهده و صحت عملکرد گیت AND را تأیید کنیم.