what is VHDL

                                      what is VHDL ???




The Very High Speed Integrated Circuit (VHSIC) Hardware Description Language (VHDL) is a language that describes the behavior of electronic circuits, most commonly digital circuits. VHDL is defined by IEEE standards. There are two common variants: VHDL-1987 and VHDL-1993. VHDL can be used for designing hardware and for creating test entities to verify the behavior of that hardware. VHDL is used as a design entry format by a variety of EDA tools, including synthesis tools such as Quartus II Integrated Synthesis, simulation tools, and formal verification tools.



Adventages :


  •  it allows the behavior of the required system to be described (modeled) and verified (simulated) before synthesis 
  • A VHDL project is multipurpose. Being created once, a calculation block can be used in many other projects
  • A VHDL project is portable. Being created for one element base, a computing device project can be ported on another element base

Design exemples :

desing of a 2 input And Gate :


                                                                       library IEEE;
                                                                       use IEEE.std_logic_1164.all;

                                                                       -- this is the entity
                                                                       entity AndGate is
                                                                       port ( 
                                                                          A : in std_logic;
                                                                          b : in std_logic;
                                                                          c  : out std_logic);
                                                                       end entity AndGate;

                                                                       -- this is the architecture
                                                                       architecture arch of AndGate is
                                                                       begin
                                                                          c <= a and b;
                                                                       end architecture arch;


desing of a 2 to MUX:


                                                                       library IEEE;
                                                                       use IEEE.std_logic_1164.all;

                                                                       -- this is the entity
                                                                       entity MUX is
                                                                       port ( 
                                                                          A : in std_logic;
                                                                          b : in std_logic;
                                                                          sel : in std_logic;
                                                                          c  : out std_logic);
                                                                       end entity MUX;

                                                                       -- this is the architecture
                                                                       architecture arch of MUX is
                                                                       begin
                                                                           process(a,b,sel)
                                                                           begin
                                                                           if (sel == '0' ) then
                                                                           c <= a ;
                                                                           elsif (sel == '1' ) then
                                                                           c <= b ;
                                                                           end if ;
                                                                           end process ;
                                                                       end architecture arch;
desing of a  Flip Flop:



                                                                       library IEEE;
                                                                       use IEEE.std_logic_1164.all;

                                                                       -- this is the entity
                                                                       entity FF is
                                                                       port ( 
                                                                          d : in std_logic;
                                                                          clk : in std_logic;
                                                                          q  : out std_logic);
                                                                       end entity FF;

                                                                       -- this is the architecture
                                                                       architecture arch of FF is
                                                                       begin
                                                                           process(clk)
                                                                           begin
                                                                           if (clk ' event and clk == '1' ) then
                                                                           q<= d ;
                                                                           end if ;
                                                                           end process ;
                                                                       end architecture arch;





Commentaires

Posts les plus consultés de ce blog

controle a PWM output in Arduino using LabView

temperature and humidity supervision System

CORDIC Algorithm