Documentos de Académico
Documentos de Profesional
Documentos de Cultura
VHDL PDF
VHDL PDF
LENGUAJE VHDL
LDD 2007-08 1
NDICE.
Introduccin.
1. Conceptos bsicos del lenguaje y
Aplicaciones.
2. Tipos de datos y Seales.
3. Sentencias concurrentes y secuenciales.
4. Registros y mquinas de estados finitos.
LDD 2007-08 2
Bibliografa:
- VHDL Lenguaje estndar de diseo electrnico.
Llus Ters, Yago Torroja, Serafn Olcoz, Eugenio Villar.
Ed, Mc Graw-Hill, 1998
LDD 2007-08 3
PROCESO BSICO DE DISEO
Requisitos y Altera
especificaciones
Diseo modelo VHDL
Diseo Funcional
Compilacin
Diseo
Modelado Arquitectural (RTL)
Simulacin
y
Sntesis Diseo Lgico
(puertas) Anlisis de Timing
Diseo Fsico
(transistores-layout) Configuracin del PLD
LDD 2007-08 5
BREVE HISTORIA: EL LENGUAJE
VHDL
VHDL:
(Very HIGH Speed Integrated Circuit Hardware Description
Language)
proyecto del departamento de defensa de los E.E.U.U. para
desarrollar C.I. de 0,5m de muy altas prestaciones.
LDD 2007-08 6
PROPIEDADES
BSICAS.
LDD 2007-08 7
Ventajas del uso de VHDL
Es un lenguaje normalizado compatible con la mayora de las
herramientas de diseo (Std IEEE 1076-1987)
LDD 2007-08 8
Otras Ventajas
LDD 2007-08 9
Sntesis de hardware
descripcin funcional
process descripcin estructural
begin
for I in 0 to 10 loop
:::
end loop; Sntesis
end process;
Sntesis
Restricciones
LDD 2007-08 12
1.Aplication and language Introduction
- What is VHDL ?
- Aplication areas
- Limitations of VHDL
- VHDL styles
- Main laguages concepts
- Entity
- Architecture
- Hierarchy
- Declaration
- Processes and types
- Packages
LDD 2007-08 13
What is VHDL?
LDD 2007-08 14
Limitations
LDD 2007-08 15
eman ta zabal zazu
LDD 2007-08 16
VHDL Styles
LDD 2007-08 17
eman ta zabal zazu
LDD 2007-08 18
eman ta zabal zazu
LDD 2007-08 19
eman ta zabal zazu
LDD 2007-08 20
eman ta zabal zazu
LDD 2007-08 21
Entity
LDD 2007-08 22
Architecture
LDD 2007-08 23
eman ta zabal zazu
LDD 2007-08 24
eman ta zabal zazu
LDD 2007-08 25
eman ta zabal zazu
LDD 2007-08 26
eman ta zabal zazu
LDD 2007-08 27
eman ta zabal zazu
LDD 2007-08 28
eman ta zabal zazu
LDD 2007-08 29
eman ta zabal zazu
LDD 2007-08 30
Processes
LDD 2007-08 31
eman ta zabal zazu
LDD 2007-08 32
Types
LDD 2007-08 33
The package
LDD 2007-08 34
eman ta zabal zazu
LDD 2007-08 35
2. Signals and Data Types
- The concept of a type
- Standard data types
- Assignments to signals
- Type definition
- Multi valued logic
- Standard Logic
- Using Standard Logic
VHDL Operators
- Logical Operators
- Relational Operators
- Arithmetic Operators
eman ta zabal zazu
LDD 2007-08 36
Type definition
LDD 2007-08 37
Type definition
LDD 2007-08 38
Type concept and specification
LDD 2007-08 39
eman ta zabal zazu
LDD 2007-08 40
eman ta zabal zazu
LDD 2007-08 41
eman ta zabal zazu
LDD 2007-08 42
eman ta zabal zazu
LDD 2007-08 43
Type std_logic is (
U, Uninitiliced
X Unknown
0 Logic 0 Strong drive
1 logic 1
Z high
impedance
W Unknown Weak drive
L logic 0
H logic 1
_ Dont care
LDD 2007-08 44
eman ta zabal zazu
LDD 2007-08 45
eman ta zabal zazu
LDD 2007-08 46
Using Standard Logic
library IEEE;
use IEEE.Std_logic_1164.all;
entity MULS is
port ( A, B, : in std_logic ;
Z : out std_logic );
end MULS;
LDD 2007-08 47
OPERADORES EN VHDL
LDD 2007-08 48
OPERADORES LGICOS
Son los siguientes:
AND, NAND, OR, NOR
XOR, XNOR
NOT
Adems de desplazamientos lgicos/aritmticos
izda/dcha y rotaciones: SLL, SRL, SLA, SRA, ROL,
ROR.
Todos misma prioridad (de izda a dcha) salvo NOT que
es siempre prioritaria.
eman ta zabal zazu
LDD 2007-08 49
OPERADORES LGICOS
Tipos para los que estn definidos:
LDD 2007-08 50
library IEEE;
use IEEE.Std_logic_1164.all;
entity MULS is
port ( A, B, : in std_logic ;
Z : out std_logic );
end MULS;
architecture EX of MULS is
begin
z <= A and not (B or C );
end EX;
eman ta zabal zazu
LDD 2007-08 51
Signal A_BUS, B_BUS, Z_BUS:
std_logic_vector ( 3 downto 0 );
Equivalente a
LDD 2007-08 52
OPERADORES RELACIONALES
LDD 2007-08 53
eman ta zabal zazu
LDD 2007-08 54
eman ta zabal zazu
LDD 2007-08 55
OPERADORES ARITMTICOS
LDD 2007-08 56
CONSTANTES
LDD 2007-08 57
Arrays...
LDD 2007-08 58
eman ta zabal zazu
LDD 2007-08 59
eman ta zabal zazu
LDD 2007-08 60
c 1 2 3 4
z 3 2 1 0
LDD 2007-08 61
eman ta zabal zazu
LDD 2007-08 62
Concatenation
and aggregates
eman ta zabal zazu
LDD 2007-08 63
eman ta zabal zazu
LDD 2007-08 64
eman ta zabal zazu
LDD 2007-08 65
eman ta zabal zazu
LDD 2007-08 66
eman ta zabal zazu
LDD 2007-08 67
eman ta zabal zazu
LDD 2007-08 68
eman ta zabal zazu
LDD 2007-08 69
3. Concurrent and secuential Statements
- Concurrent Assignment Statements
- The Process
- Process execution
- Sensitivity lists
- The if statement
- The case statement
-The for loop
-Variables
LDD 2007-08 70
eman ta zabal zazu
LDD 2007-08 71
eman ta zabal zazu
LDD 2007-08 72
eman ta zabal zazu
LDD 2007-08 73
eman ta zabal zazu
LDD 2007-08 74
SENTENCIA WHEN ... SELECT
Es una sentencia concurrente que permite
realizar asignaciones condicionales de valores,
expresiones u objetos a seales.
Sintxis :
[etiqueta:]seal<= valor1 when condicin1 else
valor2 when condicin2 else
valorn when condicinn else
unaffected;
eman ta zabal zazu
LDD 2007-08 75
SENTENCIA WITH... SELECT
Es una sentencia concurrente que permite
realizar asignaciones condicionales de valores,
expresiones u objetos a seales (anloga a
WHEN..SELECT).
Sintxis :
[etiqueta:]with expresin select
seal<= valor1 when resultado1 else
valor2 when resultado2 else
valorn when resultadon else
eman ta zabal zazu
unaffected when others;
LDD 2007-08 76
eman ta zabal zazu
LDD 2007-08 77
eman ta zabal zazu
LDD 2007-08 78
eman ta zabal zazu
LDD 2007-08 79
eman ta zabal zazu
LDD 2007-08 80
eman ta zabal zazu
LDD 2007-08 81
eman ta zabal zazu
LDD 2007-08 82
eman ta zabal zazu
LDD 2007-08 83
Process execution
LDD 2007-08 84
eman ta zabal zazu
LDD 2007-08 85
Sensitivity Lists
LDD 2007-08 86
eman ta zabal zazu
LDD 2007-08 87
eman ta zabal zazu
LDD 2007-08 88
eman ta zabal zazu
LDD 2007-08 89
The If Statement
LDD 2007-08 90
Executes first true branch
eman ta zabal zazu
LDD 2007-08 91
The Case Statement
LDD 2007-08 92
eman ta zabal zazu
LDD 2007-08 93
The For Loop
LDD 2007-08 94
eman ta zabal zazu
LDD 2007-08 95
Variable usage
LDD 2007-08 96
4 ODD
A ( 3 downto 0 )
Process (A)
variable TMP : std_logic;
begin
TMP:= 0;
for I in Alow to Ahigh loop
TMP := TMP xor A(I);
end loop;
ODD <= TMP;
end process;
eman ta zabal zazu
LDD 2007-08 97
eman ta zabal zazu
LDD 2007-08 98
eman ta zabal zazu
LDD 2007-08 99
eman ta zabal zazu
E2 E1
1 0
S2 X S1
E3
0
Y
1
0
X
S1,S0
1
eman ta zabal zazu
end una;
LDD 2007-08 120
Lgica combinacional
Seale
Generar s
Entradas estado salida
siguiente Estado Registro Estado
siguiente presente
Generar
seales de
Clk
salida
0
(borrar registro y
overflow) borrar sumar
OVF<--0 1 0
INIC SUM
CLR
E3(11) 1
E1(01)
LDR
(cargar el
registro)
1 0
SUM + Cout
INIC
1
(activar
0 OVF<--1 overflow)
E2(10)
(borrar registro y
overflow)
OVF<--0 1 0
CLR INIC
library IEEE;
use IEEE.std_logic_1164.all;
use IEEE.std_logic_arith.all;
entity p1_ucV is
port( CLK ,RESETL : in std_logic;
INIC, SUM, COUT : in std_logic;
CLRL, LDRL, OVF1, OVF0L: out std_logic;
ESTADO : out integer range 0 to 3);
end p1_ucV;
architecture UC of p1_ucV is
signal EST_PRES, EST_SIG_EST integer range 0 to 3;
begin
ES: process (EST_PRES, INIC,SUM,COUT)
begin
EST_SIG <= EST_PRES;
case EST_PRES is
end UC;