Protocolo da Interface Serial do Codec AC97 - DECOM

Transcrição

Protocolo da Interface Serial do Codec AC97 - DECOM
ComL@b – Laboratório de Comunicações Digitais
www.decom.fee.unicamp.br/~cardoso
Aula 14:Protocolo da Interface Serial do
Codec de Áudio AC97
Fabbryccio Cardoso
Marcelo Fernandes
Dalton S. Arantes
DECOM-FEEC-UNICAMP
ComL@b – Laboratório de Comunicações Digitais
Objetivos do Experimento
„
Familiarizar-se com o uso do Chipscope Pro Core
Generator para geração de módulos ICON
(Integrated Controller) e ILA (Integrated Logic
Analizer), visando monitoração dos sinais da
interface serial no experimento da Aula 13.
„
O relatório deverá conter:
…
uma descrição geral do protocolo serial usado na
interface com o Codec AC97;
…
verificação com o chipscope do funcionamento do
protocolo para transferência de sinais entre a FPGA e
o chip LM4550.
ComL@b – Laboratório de Comunicações Digitais
ICON
„
Provê uma ponte de comunicação entre a porta
JTAG da FPGA e até 15 ILAs;
„
Após geração do core, também é gerado um
arquivo de exemplo como “icon_xst_example.vhd”.
Este exemplo mostra como declarar e instanciar o
componente icon;
„
No componente ICON, cada porta de controle
(coltrol0, control1, etc) deve ser utilizada para um
componente ILA.
ComL@b – Laboratório de Comunicações Digitais
ILA
„
O componente ILA implementa um analisador
lógico configurável que possibilita monitorar sinais
internos de um projeto;
„
O ILA é síncrono e, por este motivo, é necessário
um ILA para cada domínio de clock em que se
deseja monitorar sinais;
„
Para cada ILA é necessário uma porta de controle
do componente ICOM. Na versão 7.1 é possível ter
até 15 componentes ILAs.
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Passo 1 – Geração do ICON 1/3
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Passo 1 – Geração do ICON 2/3
Pasta do projeto
Número de portas
de controle, ou seja,
de ILAs que poderão
ser utilizados.
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Passo 1 – Geração do ICON 3/3
Geração de
exemplo
ComL@b – Laboratório de Comunicações Digitais
Arquivo de exemplo gerado para o ICON
library IEEE;
use IEEE.std_logic_1164.all;
entity icon_xst_example is
end icon_xst_example;
architecture structure of icon_xst_example is
--------------------------------------------------------------------- ICON core component declaration
-------------------------------------------------------------------component icon
port
(
control0 : out std_logic_vector(35 downto 0);
control1 : out std_logic_vector(35 downto 0)
);
end component;
--------------------------------------------------------------------- ICON core signal declarations
-------------------------------------------------------------------signal control0
: std_logic_vector(35 downto 0);
signal control1
: std_logic_vector(35 downto 0);
begin
--------------------------------------------------------------------- ICON core instance
-------------------------------------------------------------------i_icon : icon
port map
(
control0 => control0,
control1 => control1
);
end structure;
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Passo 2 – Geração do ILA 1/5
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Passo 2 – Geração do ILA 2/5
Pasta do projeto
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Passo 2 – Geração do ILA 3/5
Número de sinais
que serão monitorados
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Passo 2 – Geração do ILA 4/5
Marcar a opção de
visualizar os sinais de
trigger como dados.
ComL@b – Laboratório de Comunicações Digitais
Exemplo: Passo 2 – Geração do ILA 5/5
Gerar exemplo
de utilização
Gerar cdc
ComL@b – Laboratório de Comunicações Digitais
Arquivo de exemplo gerado para o ILA
library IEEE;
use IEEE.std_logic_1164.all;
entity ila_xst_example is
end ila_xst_example;
architecture structure of ila_xst_example is
--------------------------------------------------------------------- ILA core component declaration
-------------------------------------------------------------------component ila
port
(
control : in std_logic_vector(35 downto 0);
clk
: in std_logic;
trig0
: in std_logic_vector(0 downto 0);
trig1
: in std_logic_vector(0 downto 0);
trig2
: in std_logic_vector(0 downto 0)
);
end component;
--------------------------------------------------------------------- ILA core signal declarations
-------------------------------------------------------------------signal control : std_logic_vector(35 downto 0);
signal clk
: std_logic;
signal trig0
: std_logic_vector(0 downto 0);
signal trig1
: std_logic_vector(0 downto 0);
signal trig2
: std_logic_vector(0 downto 0);
begin
--------------------------------------------------------------------- ILA core instance
-------------------------------------------------------------------i_ila : ila
port map
(
control => control,
clk
=> clk,
trig0 => trig0,
trig1 => trig1,
trig2 => trig2
);
end structure;
ComL@b – Laboratório de Comunicações Digitais
Dicas
„
Deseja-se monitorar apenas os sinais da interface
serial do codec AC97: SData_In, Sdata_Out e Sync.
„
Todos os sinais alvo estão no domínio do clock
AC97Clk, então será necessário usar apenas um
ILA e, consequentemente, um ICON com apenas
uma porta de controle.