cardosocardoso/ie3444b2010/exp2-vhdl.pdf · ComL@b – Laboratório de Comunicações Digitais...

54
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 t Dalton S. Arantes DECOM-FEEC-UNICAM

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

Very Hard Difficult Language

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

Experimento

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

Arquitetura do ProjetoArquitetura do Projeto

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: Project NameNew Project: Project Name

ComL@b – Laboratório de Comunicações Digitais

New Project: Select DeviceNew Project: Select Device

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

New Project: ConcluirNew Project: Concluir

ComL@b – Laboratório de Comunicações Digitais

Novo Projeto CriadoNovo Projeto Criado

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

New Source: concluirNew Source: concluir

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

Selecione o Tipo do CoreSelecione o Tipo do Core

ComL@b – Laboratório de Comunicações Digitais

ComL@b – Laboratório de Comunicações Digitais

(1)

(2)

ComL@b – Laboratório de Comunicações Digitais

Após a geração de clockgenApós a geração de clockgen

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

Mapeamento de PinosMapeamento de Pinos

(1)

(2)

ComL@b – Laboratório de Comunicações Digitais

Geração do BinárioGeração do Binário

ComL@b – Laboratório de Comunicações Digitais

Abrir Impact (Xilinx\Accessories)Abrir Impact (Xilinx\Accessories)

ComL@b – Laboratório de Comunicações Digitais

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

ComL@b – Laboratório de Comunicações Digitais

AvaliaçãoAvaliação

Visto do experimento = 10 pontos;