Академический Документы
Профессиональный Документы
Культура Документы
Introduction to VHDL
ECE 5571
4/24/03
Dr. Veton Kpuska
Overview
History of VHDL
Go through a few example of VHDL:
- 8 bit shifter
- 4 to 1 Mux
- State machine
VHDL
VHDL is an International IEEE Standard
Specification Language (IEEE 078-2001)
for Describing Digital Hardware Used by
Industry Worldwide
VHDL stands for VHSIC (Very High Speed
Integrated Circuit) Hardware Description
Language
History of VHDL
In the 1970s the initial idea for a Hardware
Description Language was discussed.
But, the VHSIC program wasnt launched
until 1980.
The goal was to create a common language
that would shorten the time from concept to
implementation for hardware design.
History of VHDL
In July 1983 the contract was awarded to
create VHDL by the Department of Defense
- Intermetrics
- IBM
- Texas Instruments
August 1985 Version 7.2 was released
History of VHDL
It was first in December of 1987 that IEEE
standardized VHDL 1076-1987
VHDL also became an ANSI standard in
1988
In September of 1993 VHDL was restandardized to clarify and enhance the
language
History of VHDL
In 1998 a committee convened to update the
VHDL-1993 standard.
In 2001 IEEE revised the 1993 standard and
the new standard today is 1076-2001
4 to 1 MUX
A
B
C
D
Sel
Inputs
Outputs
Mux
4 to 1 MUX
library ieee;
use ieee.std_logic_1164.all;
-- 4 to 1 mux
entity mymux is
port (A, B, C, D : in
std_logic_vector(0 to 3);
Sel : in
std_logic_vector ( 0 to 1 );
Q : out
std_logic_vector(0 to 3) );
end mymux;
end name_of_entity;
4 to 1 MUX
architecture mux4 of mymux is
constant delay : time := 100 ns;
begin
mux_proc : process ( A, B, C, D, Sel )
variable temp : std_logic_vector(0 to 3);
begin
case Sel is
when "00" => temp := A;
when "01" => temp := B;
when "10" => temp := C;
when "11" => temp := D;
when others => temp := "XXXX";
end case;
Q <= temp after delay;
end process mux_proc;
end mux4;
8- Bit Shifter
Output
Input
clk
load
rst
data
Shifter
8 bits
Q
8 bits
8 Bit Shifter
-- 8-Bit Shift Register
library ieee;
use ieee.std_logic_1164.all;
entity shift is
port (CLK, RST, LOAD : in bit;
Data : in bit_vector(0 to 7);
Q : out bit_vector(0 to 7));
end rotate;
Comment
Library you need to include
entity name_of_entity is
port(all your input and output
signals);
end name_of_entity;
8 bit shifter
architecture shifter1 of shift is
begin
reg : process(RST, CLK)
variable reg : bit_vector(0 to 7);
begin
if(RST = '1') then
reg := "00000000";
elsif(CLK = '1' and CLK'event) then
if(LOAD = '1') then reg := Data;
.
else
reg := reg(1 to 7) & reg(0);
end if;
end if;
Q <= reg;
end process;
end shifter1;
System Overview
DIP Switches
An open
switch will
have a value
of 1 and
closed
switch value
of 0
LED
Programmable
Logic Device
Strobe
(pushbutton)
Functional Overview
PLD monitors data stream looking for commands
PLD responds to On command by turning LED On
PLD responds to Off command by turning LED Off
On
AB
Off
50
Details
PLD receives 4 bits (one Hex digit) of data at a time
Data is ready on rising edge of Strobe
Output 1 to LED for ON / 0 for OFF
Programs Used
requirements specification
documentation
testing using simulation
formal verification
synthesis