<HDL>
PCS 2215
Sistemas Digitais I
Contedo
Perspectiva Histrica
O que uma
linguagem de
descrio de
Hardware?
Como e por que
utilizar HDLs?
VHDL
Histrico
Requisitos
Componentes
Tipos de dados e
operadores
Bancada de testes
Modelo de tempo
Exemplo
<HDL>
PCS 2215
Sistemas Digitais I
21/10/2013
Perspectiva Histrica
H + de 30 anos:
Lpis, papel, gabarito
Anos 80:
Editor de esquemticos;
Introduo de HDL.
<HDL>
PCS 2215
Sistemas Digitais I
33
Linguagem para:
Modelar circuitos eletrnicos;
Descrever circuitos;
Testar circuitos;
Descrever lista de ligaes de um circuito.
<HDL>
PCS 2215
Sistemas Digitais I
21/10/2013
<HDL>
PCS 2215
Sistemas Digitais I
55
Nveis de abstrao
Architectural
Behavioral
Structural
Algorithmic
Processor
Functional Block
Systems
Hardware Modules
Algorithms
Logic
ALUs, Registers
Register Transfer
Gates, FFs
Circuit
Logic
Transistors
Transfer Functions
Rectangles
Cell, Module Plans
Floor Plans
Clusters
Physical Partitions
Physical/Geometry
Andrade, Corra, Gomi e Margi 2.013
<HDL>
PCS 2215
Sistemas Digitais I
66
21/10/2013
Nveis de abstrao
<HDL>
PCS 2215
Sistemas Digitais I
77
Possibilidades de Uso
Descrio
Sntese
Descrio de Teste
Simulao funcional
Mapeamento
Simulao de tempo
<HDL>
PCS 2215
Sistemas Digitais I
88
21/10/2013
<HDL>
PCS 2215
Sistemas Digitais I
99
VHDL
<HDL>
PCS 2215
Sistemas Digitais I
10
21/10/2013
VHDL - Datas
<HDL>
PCS 2215
Sistemas Digitais I
11
VHDL - Requisitos
<HDL>
PCS 2215
Sistemas Digitais I
12
21/10/2013
Componentes
Entidades (entities)
Arquiteturas (architectures)
Configuraes (configurations)
opcional
Bibliotecas de funes/procedimentos
(packages) opcional
<HDL>
PCS 2215
Sistemas Digitais I
13
Declarao de Entidade
<HDL>
PCS 2215
Sistemas Digitais I
14
21/10/2013
Exemplo: Entidade
entity entity-name is
port (signal-names: mode signal-type;
signal-names: mode signal-type;
....
signal-names: mode signal-type);
end entity-name;
Andrade, Corra, Gomi e Margi 2.013
<HDL>
PCS 2215
Sistemas Digitais I
15
Arquitetura
<HDL>
PCS 2215
Sistemas Digitais I
16
21/10/2013
Arquitetura (cont.)
architecture architecture-name of entity-name is
type declarations
signal declarations
constant declarations
Opcionais
function definitions
procedure definitions
component declarations
begin
concurrent-statement
Funcionamento
....
concorrente
concurrent-statement
end architecture-name;
Andrade, Corra, Gomi e Margi 2.013
<HDL>
PCS 2215
Sistemas Digitais I
17
Comportamento:
Comandos sequenciais, baseados em
processos (como uma linguagem de
programao) que so uma sequncia de
aes.
Estrutura:
Comandos concorrentes com registradores
explcitos (fluxo de dados e unidade de
controle);
Conectividade: conexo no nvel de componente (netlist).
<HDL>
PCS 2215
Sistemas Digitais I
18
21/10/2013
Definio de Processo
architecture arch of ent is
begin
nome_processo: process (clock)
begin
comando sequencial; Um processo deve
comando sequencial; ter uma lista de
wait until (condio); sensibilidade OU ...
comando sequencial;
...
... OU, pelo menos,
wait for (time);
deve ter um
...
comando wait.
end process;
end arch;
Andrade, Corra, Gomi e Margi 2.013
<HDL>
PCS 2215
Sistemas Digitais I
19
Exemplo: Comportamento
entity reg2 is
port ( d0, d1, en, clk : in bit;
q0, q1 : out bit );
end entity reg2;
architecture behav of reg2 is
begin
storage : process is
variable stored_d0, stored_d1 : bit;
begin
wait until clk = '1';
if en = '1' then
stored_d0 := d0;
stored_d1 := d1;
end if;
q0 <= stored_d0 after 5 ns;
q1 <= stored_d1 after 5 ns;
end process storage;
end architecture behav;
Andrade, Corra, Gomi e Margi 2.013
<HDL>
PCS 2215
Sistemas Digitais I
20
10
21/10/2013
Exemplo: Estrutura
entity reg2 is
port ( d0, d1, en, clk : in bit;
q0, q1 : out bit );
end entity reg2;
architecture struct of reg2 is
signal int_clk : bit;
begin
bit0 : entity work.d_ff(basic)
port map (d0, int_clk, q0);
bit1 : entity work.d_ff(basic)
port map (d1, int_clk, q1);
gate : entity work.and2(basic)
port map (en, clk, int_clk);
end architecture struct;
Andrade, Corra, Gomi e Margi 2.013
<HDL>
PCS 2215
Sistemas Digitais I
21
Tipos de Dados
<HDL>
PCS 2215
Sistemas Digitais I
22
11
21/10/2013
Tipos pr-definidos
bit
bit_vector
boolean
character
<HDL>
integer
real
severity_level
string
time
PCS 2215
Sistemas Digitais I
23
Tipos Enumerados
<HDL>
PCS 2215
Sistemas Digitais I
24
12
21/10/2013
<HDL>
PCS 2215
Sistemas Digitais I
25
25
std_logic, std_logic_vector
'U' - Uninitialized
'X' - Forcing Unknown
'0' - Forcing 0
'1' - Forcing 1
'Z' - High Impedance
'W' - Weak Unknown
'L' - Weak 0
'H' - Weak '1'
'-' - Don't care
<HDL>
PCS 2215
Sistemas Digitais I
26
13
21/10/2013
Operadores
Aritmticos
Booleanos
adio
AND
and
subtrao
OR
or
Multiplicao
NAND
nand
Diviso
NOR
nor
Mdulo
mod
OU exclusivo
xor
Resto da diviso
rem
NOU exclusivo
xnor
Valor absoluto
abs
complementao not
Exponenciao
**
<HDL>
PCS 2215
Sistemas Digitais I
27
27
Projeto Simples
Package
Standard Libraries
Package
Entity/Architecture
Entity/Architecture
Entity/Architecture
Arquivo fonte VHDL
Andrade, Corra, Gomi e Margi 2.013
<HDL>
PCS 2215
Sistemas Digitais I
28
14
21/10/2013
Entity/Architecture
Entity/Architecture
Entity/Architecture
Configuration
Entity/Architecture
Andrade, Corra, Gomi e Margi 2.013
<HDL>
PCS 2215
Sistemas Digitais I
29
Bancadas de teste
Ou testbenchs.
Semelhante bancada de laboratrio.
Descrita usando comandos de
comportamento (sequencial) do VHDL.
Use uma descrio de estrutura para
incluir o componente em teste.
Em geral, utilizada para gerar testes
automticos.
<HDL>
PCS 2215
Sistemas Digitais I
30
15
21/10/2013
Data
Load
Aplica os
Estmulos
Clk
Verifica
Resultados
Rst
A
EQ
Dispositivo em Teste
Andrade, Corra, Gomi e Margi 2.013
<HDL>
PCS 2215
Sistemas Digitais I
31
<HDL>
PCS 2215
Sistemas Digitais I
32
16
21/10/2013
<HDL>
PCS 2215
Sistemas Digitais I
33
<HDL>
PCS 2215
Sistemas Digitais I
34
17
21/10/2013
<HDL>
PCS 2215
Sistemas Digitais I
35
<HDL>
PCS 2215
Sistemas Digitais I
36
18
21/10/2013
Ciclo de Simulao
<HDL>
PCS 2215
Sistemas Digitais I
37
<HDL>
PCS 2215
Sistemas Digitais I
38
19
21/10/2013
<HDL>
PCS 2215
39
Sistemas Digitais I
39
<HDL>
PCS 2215
Sistemas Digitais I
40
20
21/10/2013
<HDL>
PCS 2215
Sistemas Digitais I
41
<HDL>
PCS 2215
Sistemas Digitais I
42
21
21/10/2013
<HDL>
PCS 2215
Sistemas Digitais I
43
<HDL>
PCS 2215
Sistemas Digitais I
44
22
21/10/2013
<HDL>
PCS 2215
Sistemas Digitais I
45
Exerccio 1
library IEEE;
use IEEE.std_logic_1164.all;
entity caixa is
port(
x : in STD_LOGIC;
y : in STD_LOGIC;
z : in STD_LOGIC;
f : out STD_LOGIC
);
end caixa;
<HDL>
Sistemas Digitais I
46
23
21/10/2013
Exerccio 2
library IEEE;
<HDL>
PCS 2215
Sistemas Digitais I
47
Exerccio desafio 1
Instale a ferramenta Altera Quartus II, que
utilizada em Lab. Digital, disponvel em
http://www.pcs.usp.br/~labdig/download.html
Tutoriais e manuais disponveis em
http://www.pcs.usp.br/~labdig/apostilas.2sem
.html
<HDL>
PCS 2215
Sistemas Digitais I
48
24
21/10/2013
<HDL>
PCS 2215
Sistemas Digitais I
49
Lio de Casa
Leitura
Obrigatria:
Captulo 5, seo 5.1 e 5.3 do Livro
Texto.
Exerccios:
<HDL>
PCS 2215
Sistemas Digitais I
50
25
21/10/2013
Bibliografia
<HDL>
PCS 2215
Sistemas Digitais I
51
26