تست بنچ (Testbench) در VHDL


در طراحی دیجیتال با زبان 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 را تأیید کنیم.