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.