cardosocardoso/ie3444b2010/exp2-vhdl.pdf · ComL@b – Laboratório de Comunicações Digitais...
Transcript of cardosocardoso/ie3444b2010/exp2-vhdl.pdf · ComL@b – Laboratório de Comunicações Digitais...
ComL@b – Laboratório de Comunicações Digitais
www.decom.fee.unicamp.br/~cardoso
Aula 3 – Exp 2: Noções de VHDL
Fabbryccio Cardoso
D lt S A tDalton S. Arantes
DECOM-FEEC-UNICAM
ComL@b – Laboratório de Comunicações Digitais
VHDLVHDL
VHSIC Hardware
Description Language
----------------------------------------------------------------------------
VHSIC
Very High Speed Integrated CircuitsVery High Speed Integrated Circuits
ComL@b – Laboratório de Comunicações Digitais
Domínios de descriçãoDomínios de descrição
Domínio Domínio ComportamentalComportamental
Domínio Domínio EstruturalEstruturalComportamentalComportamental EstruturalEstrutural
Modelos VHDLModelos VHDL
Nível de abstraçãoNível de abstração
Domínio FísicoDomínio Físico
Y-Chart de Gajski
ComL@b – Laboratório de Comunicações Digitais
Descrição EstruturalDescrição Estrutural
Descreve o circuito como um NET LIST
Net List = (Instâncias de componentes) + (Nets)
Descrição estrutural em VHDL =
(Sinais) + (Instância de componentes + mapeamento
de portas)
Versatilidade do VHDL:
Variedade de tipos de sinais
Componentes Genéricos
Possibilidade de criar arrays de instâncias de
componentes
Flexibilidade na ligação de componentes para projetar
entities e architectures
ComL@b – Laboratório de Comunicações Digitais
Exemplo de Descrição EstruturalExemplo de Descrição Estrutural
ComL@b – Laboratório de Comunicações Digitais
HierarquiaHierarquia
Top LevelTop Level
C1 C2 C3
C4 C5B1 B4
B6B2
B8
B5
B7B3 B9
B10
ComL@b – Laboratório de Comunicações Digitais
Descrição ComportamentalDescrição Comportamental
Chamada de descrição
B h i l VHDL
Chamada de descrição
D t Fl VHDLBehavioral em VHDL Data Flow em VHDL
Procedural Não procedural
Expressões sequenciais Expressões concorrentes
Expressões de controle
alteram o fluxo
Dependência no fluxo de
dados restringe a alteram o fluxo
sequencial normal
dados restringe a
concorrência
ComL@b – Laboratório de Comunicações Digitais
Par Entity-ArchitecturePar Entity Architecture
Descreve a interface do componente
Descreve a implementação do componente
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Somador 1 bitExemplo: Somador 1 bit
lib i i td l i 1164 llNome da entidadeNome da entidade
library ieee; use ieee.std_logic_1164.all;entity FullAdder is Sentido da portaSentido da portay
port (X, Y, Cin: in std_logic; -- InputsC S d l i ) O
Sentido da portaSentido da porta
Cout, Sum: out std_logic); -- Outputsend FullAdder;
Nomes das portasNomes das portas;
tipotipoPalavras reservadasPalavras reservadas
X
YSum
FullAdder
Cin Cout
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Somador 1 bite p o So adoDescrição Data Flow (Behavioral)
Architecture DataFlow of FullAdder isbegin -- Expressoes concorrentes
Sum <= X xor Y xor Cin after 10 ns;Sum <= X xor Y xor Cin after 10 ns;Cout <= (X and Y) or (X and Cin) or (Y and Cin) after 15 ns;
end DataFlow;end DataFlow;
ComL@b – Laboratório de Comunicações Digitais
Componente Somador 4-bits (Estrutural)Componente Somador 4 bits (Estrutural)
A
S
B
CiCo
ComL@b – Laboratório de Comunicações Digitais
Exemplo: somador de 4-bitsExemplo: somador de 4 bits
entity Adder4 isport (A, B: in std_logic_vector(3 downto 0);Ci: in std logic; InputsCi: in std_logic; -- InputsS: out std_logic_vector(3 downto 0);Co: out std_logic); -- Outputs
d Add 4end Adder4;
ComL@b – Laboratório de Comunicações Digitais
Exemplo: somador 4-bits (estrutural)Exemplo: somador 4 bits (estrutural)
Architecture Structure of Adder4 isArchitecture Structure of Adder4 isComponent FullAdder
t (X Y Ci i td l i C t S t td l i )port (X, Y, Cin: in std_logic; Cout, Sum: out std_logic);signal C: std_logic_vector (3 downto 1);b i I t ti tibegin -- Instantiations
FA0: FullAdder port map (A(0), B(0), Ci, C(1), S(0));FA1 F llAdd t (A(1) B(1) C(1) C(2) S(1))FA1: FullAdder port map (A(1), B(1), C(1), C(2), S(1));FA2: FullAdder port map (A(2), B(2), C(2), C(3), S(2));
ll dd ( ( ) ( ) ( ) ( ))FA3: FullAdder port map (A(3), B(3), C(3), Co, S(3));end Structure;
ComL@b – Laboratório de Comunicações Digitais
Objetivo do ExperimentoObjetivo do Experimento
Familiarização com o ISE – ambiente de
desenvolvimento integrado da Xilinx.
Obter noções básicas de VHDL.
ComL@b – Laboratório de Comunicações Digitais
Configuração Física do ExperimentoConfiguração Física do Experimento
ComL@b – Laboratório de Comunicações Digitais
Passo 1: Criar novo projeto no ISEPasso 1: Criar novo projeto no ISE
ComL@b – Laboratório de Comunicações Digitais
New Project: New SourceNew Project: New Source
Nã i f t iNão criar novas fontes aqui.(Do not create new sources here)
ComL@b – Laboratório de Comunicações Digitais
New Project: Add Existing SourcesNew Project: Add Existing Sources
Não adicione fontes (Do not add sources).
ComL@b – Laboratório de Comunicações Digitais
Passo 2: Criar componente principal (top-level)Passo 2: Criar componente principal (top level)
Clicar com botão da direita (right click): - Selecionar (Select) “New Source”
ComL@b – Laboratório de Comunicações Digitais
Portas do proj principalPortas do proj_principal
Deixar os campos vazios(Let the fields empty).
ComL@b – Laboratório de Comunicações Digitais
Abrir Fonte “proj principal”Abrir Fonte proj_principal
Duplo click para abrir fonte(Double click to open)(Double click to open).
Descomente (Uncomment)
ComL@b – Laboratório de Comunicações Digitais
Definição e Implementação de ComponenteDefinição e Implementação de Componente
Definição do Componente.(C t D fi iti )(Component Definition)
Implementação do Componente.(Component Implementation)
ComL@b – Laboratório de Comunicações Digitais
Interface do Componente PrincipalInterface do Componente Principal
Declaração de portas.
ComL@b – Laboratório de Comunicações Digitais
Declaração de componentes e de sinaisDeclaração de componentes e de sinais
Declaração de sinais e de componentes internos.ç p
ComL@b – Laboratório de Comunicações Digitais
Declaração de componentes e de sinaisDeclaração de componentes e de sinais
ComL@b – Laboratório de Comunicações Digitais
Instanciar e interconectar componentesInstanciar e interconectar componentes
CLKIN_INRST_IN
CLKFX OUT
clk_innot reset_inClkDiCLKFX_OUT
CLKIN_IBUFG_OUT CLK0_OUT
LOCKED_OUT
ClkDivopenopendcm_lock
instância tipoInst_ClockGen
portas sinais
ComL@b – Laboratório de Comunicações Digitais
Instanciar e interconectar componentesInstanciar e interconectar componentes
CLKIN_INRST_IN
CLKFX OUT
clk_innot reset_inClkDiCLKFX_OUT
CLKIN_IBUFG_OUT CLK0_OUT
LOCKED_OUT
ClkDivopenopendcm_lock
Inst_ClockGen
clk in ClkDivclk_inPCM_Playback_Left
PCM_Playback_RightPCM_Record_Left
ClkDivaudio_left_outaudio_right_outaudio_left_in
PCM_Record_Right audio_right_in
ac97_if_I
ComL@b – Laboratório de Comunicações Digitais
Implementar Componente PrincipalImplementar Componente Principal
Use o arquivo “modelos.vhd” para montar o
componente principal “proj_principal.vhd”.
O arquivo “modelos.vhd” contém declarações e
instância de componentes assim como de sinais.
ComL@b – Laboratório de Comunicações Digitais
Componente ac97 ifComponente ac97_if
Copiar os seguintes arquivos para a pasta do
j tprojeto:
ac97_if
ac97_command_rom.vhd
ac97_core.vhd
ac97_timing.vhd
ac97_if_pkg.vhd
ComL@b – Laboratório de Comunicações Digitais
Adicionar fontes do ac97 ifAdicionar fontes do ac97_if
(1) Select( )
(3) Selecionar e clicar
(2) Duplo Click
(4) clicar
ComL@b – Laboratório de Comunicações Digitais
Após inserção dos fontes do ac97 ifApós inserção dos fontes do ac97_if
ComL@b – Laboratório de Comunicações Digitais
Componente audio clk wrapperComponente audio_clk_wrapper
A implementação do componente
audio_clk_wrapper é disponibilizado como netlist
(NGC).
Copiar para a pasta do projeto o netlist
“audio_clk_wrapper.ngc”.
attribute box type of audio clk wrapper : attribute box_type of audio_clk_wrapper :
component is "black_box";
ComL@b – Laboratório de Comunicações Digitais
Componente ClockGenComponente ClockGen
A implementação do componente ClockGen precisa
ser gerado através da ferramenta Core Generator.
ComL@b – Laboratório de Comunicações Digitais
Geração de ClockGenGeração de ClockGen
(right click)( g )New source
ComL@b – Laboratório de Comunicações Digitais
User Constraints: mapeamento de pinosUser Constraints: mapeamento de pinos
(1) Selecione
(3)
(2) Duplo Click
ComL@b – Laboratório de Comunicações Digitais
Abrir Impact (Xilinx\Accessories)Abrir Impact (Xilinx\Accessories)
ComL@b – Laboratório de Comunicações Digitais
Atribuir binárioAtribuir binário
(1) Right Click - Assign
(2)(2)
ComL@b – Laboratório de Comunicações Digitais
Gravar dispositivoGravar dispositivo
(1) Right Click - Program
(2) Click