برنامه And با شبیه سازی

در مثال زیر قصد داریم یک ضرب کننده را با دو ورودی طراحی کنیم.

 

                                                                                                                                                                                             

  : مراحل کار به صورت زیر می باشد

  • نوشتن برنامه با کد VHDL 

  • طراحی برنامه توسط TEST Bench
  • اجرای برنامه Simulate با Modelsim     

کد VHDL:

library IEEE;  -- Name of the library

use IEEE.STD_LOGIC_1164.ALL-- name of the  package  in IEEE library 

entity AND_GATE is

   Port ( in1       :  in    STD_LOGIC;
             in2        :  in    STD_LOGIC;
             out1      :  out  STD_LOGIC );
  end AND_GATE;

architecture Behavioral of AND_GATE is

    begin 
        out1<=in1 AND in2;               
    end Behavioral;

ساختار Test Bench:

LIBRARY IEEE;

USE IEEE.STD_LOGIC_1164.ALL;

ENTITY AND_GATE_TEST_BENCH IS
END AND_GATE_TEST_BENCH;

 

ARCHITECTURE behavior OF AND_GATE_TEST_BENCH IS 

  -- Decleration of our model as a component
COMPONENT AND_GATE
PORT(
           in1     : IN  std_logic;
           in2      : IN  std_logic;
           out1   : OUT  std_logic
            );
END COMPONENT;
  --inputs 
  signal in1 : std_logic := '0';
  signal in2 : std_logic := '0';
  --outputs
  signal out1: std_logic;

 

--Instantiate 
U1: AND_GATE PORT MAP (in1   =>  in1,
                                                    in2   =>  in2 ,
                                                    out1=> out1   );
process
     begin                 
          wait for 10 ms;    
          in1 <='1';
          wait for 10 ms;
          in2<='0';
          in1 <='1';
          wait for 10 ms;
          in1 <='1';
          wait for 10 ms;
          assert false
          report "simulation over"
         severity failure;
   end process;


 

LIBRARY IEEE;
USE IEEE.STD_LOGIC_1164.ALL;

ENTITY AND_GATE_TEST_BENCH IS
END AND_GATE_TEST_BENCH;

ARCHITECTURE behavior OF AND_GATE_TEST_BENCH IS 

COMPONENT AND_GATE
PORT(
           in1     : IN  std_logic;
           in2      : IN  std_logic;
           out1   : OUT  std_logic            );
END COMPONENT;

  signal in1 : std_logic := '0';
  signal in2 : std_logic := '0'; 
  signal out1: std_logic;

BEGIN
    U1: AND_GATE PORT MAP (in1   =>  in1,
                                                        in2   =>  in2 ,
                                                       out1=> out1   );
   process
       begin                 
             wait for 10 ms;    
             in1 <='1';
             wait for 10 ms;
             in2<='0';
             in1 <='1';
             wait for 10 ms;
             in1 <='1';
            wait for 10 ms;
            assert false
            report "simulation over"
            severity failure;
      end process; 
   END;

:Simulation

با استفاده از ابزار Modelsim می توانیم شماتیک برنامه را نشان دهیم:

 

 

 

 

 

 

 

 

 

 

 

 

برچسب ها: 

دیدگاه‌ها

برنامه هاتون عالیه خیلی بهم کمک کرد مرسی

دیدگاه جدیدی بگذارید

CAPTCHA
This question is for testing whether or not you are a human visitor and to prevent automated spam submissions.
1 + 1 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.