Apresentação da Aula11. - DECOM
Transcrição
Apresentação da Aula11. - DECOM
ComL@b – Laboratório de Comunicações Digitais www.decom.fee.unicamp.br/~cardoso Aula 11: Geração de Componentes para Projetos HDL Fabbryccio Cardoso Marcelo Fernandes Dalton S. Arantes DECOM-FEEC-UNICAM ComL@b – Laboratório de Comunicações Digitais Objetivos do Experimento Aprender a importar componentes gerados pelo System Generator em projetos HDL; Familiarizar-se com o ambiente integrado do ISE; Testar os sinais AUDIO_RESET_Z e AC97_BIT_CLOCK da interface do codec AC97 LM4550; Referência: Importing a System Generator Design into a Bigger System (Additional Topics and Tutorials) ComL@b – Laboratório de Comunicações Digitais Projeto Componente Start_AC97 Módulo a ser desenvolvido no System Generator para fixar o sinal AUDIO_RESET_Z no nível lógico 1. Por default o codec AC97 é mantido no estado de reset até que o sinal AUDIO_RESET_Z é conduzido para o nível lógico 1. Utiliza o sinal de clock de 100 MHz disponível no pino AJ15. Componente AC97_Controller Utilizar o sinal AC97_BIT_CLOCK de 12.288 MHz (81.38 ns), que está disponível apenas quando o codec AC97 sai do estado de reset, para gerar um sinal LED_0 com a seguinte característica: 1s 1s ComL@b – Laboratório de Comunicações Digitais Componente Start_AC97 Sample Period = 1 k =1 Bool Vcc System Generator d q Bool en register d q register Bool fpt dbl double AUDIO_RESET_Z NGC Netlist Virtex2P xc2vp30-7ff896 10 Não especificar Desmarcar a opção “Specify IOB Loc (...)” ComL@b – Laboratório de Comunicações Digitais Componente AC97_Controller Desmarcar a opção “Specify IOB Loc (...)” Bool xlinv not System Generator sync d xlregister z -1 q en Bool enable Bool led0 fpt dbl double LED_0 Temporizador enable1 xlchipscope enable2 NGC Netlist led0 ChipScope UFix_24_0 rst out a a=b b Counter 12288000 Constant Bool enable Relational UFix_24_0 1 sync 81.38 Não especificar ComL@b – Laboratório de Comunicações Digitais Criar Projeto ISE (1/5) Top-Level Module Type: Schematic ComL@b – Laboratório de Comunicações Digitais Criar Projeto ISE (2/5) Device Family Device Package Speed Grade Virtex2P xc2vp30 ff896 -7 ComL@b – Laboratório de Comunicações Digitais Criar Projeto ISE (3/5) Não criar novas fontes nesta janela ComL@b – Laboratório de Comunicações Digitais Criar Projeto ISE (4/5) Não adicionar fontes existentes nesta janela ComL@b – Laboratório de Comunicações Digitais Criar Projeto ISE (5/5) Concluir ComL@b – Laboratório de Comunicações Digitais Tela inicial do ISE ComL@b – Laboratório de Comunicações Digitais Próximos Passos Após a compilação do NGCnetlist abrir os templates .vho para declaração e instância dos componentes Start_AC97 e AC97_Controller. O nome dos arquivos têm o seguinte formato: <design>_clk_wrapper.vho. Copiar os arquivos NGC gerados pelo SysGen na pasta do projeto ISE. Criar dois arquivos vhd para encapsular e instanciar os componentes em entidades (entities): usar os templates vho como referência. Gerar símbolos de esquemático a partir das entidades VHDL. Criar esquemático para ter o maior nível da hierarquia. Inserir símbolos dos componentes e marcadores de IO. ComL@b – Laboratório de Comunicações Digitais Template para o módulo Start_AC97 -- The following code must appear in the VHDL architecture header: ------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG component mod_startac97_ex2_clk_wrapper port ( ce: in std_logic := '1'; ce_clr: in std_logic := '0'; clk: in std_logic; audio_reset_z: out std_logic ); end component; -- COMP_TAG_END ------ End COMPONENT Declaration ------------- The following code must appear in the VHDL architecture -- body. Substitute your own instance name and net names. ------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG your_instance_name : mod_startac97_ex2_clk_wrapper port map ( ce => ce, ce_clr => ce_clr, mod_startac97_ex2_clk_wrapper.vho clk => clk, audio_reset_z => audio_reset_z); -- INST_TAG_END ------ End INSTANTIATION Template ------------ ComL@b – Laboratório de Comunicações Digitais Template para o módulo AC97_Controller -- The following code must appear in the VHDL architecture header: ------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG component mod_ac97controlador_ex2_clk_wrapper port ( ce: in std_logic := '1'; ce_clr: in std_logic := '0'; clk: in std_logic; led_0: out std_logic ); end component; -- COMP_TAG_END ------ End COMPONENT Declaration ------------- The following code must appear in the VHDL architecture -- body. Substitute your own instance name and net names. ------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG your_instance_name : mod_ac97controlador_ex2_clk_wrapper port map ( ce => ce, ce_clr => ce_clr, mod_ac97controlador_ex2_clk_wrapper.vho clk => clk, led_0 => led_0); -- INST_TAG_END ------ End INSTANTIATION Template ------------ ComL@b – Laboratório de Comunicações Digitais Criar Nova Fonte: Esquemático e VHDL Create New Source ComL@b – Laboratório de Comunicações Digitais Criar Arquivos VHDL (1/3) Start_AC97 VHDL Module ComL@b – Laboratório de Comunicações Digitais Criar Arquivos VHDL (2/3) Start_AC97 Não definir portas ComL@b – Laboratório de Comunicações Digitais Criar Arquivos VHDL (3/3) ComL@b – Laboratório de Comunicações Digitais Template Gerado para Start_AC97 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; ---- Uncomment the following library declaration if instantiating ---- any Xilinx primitives in this code. --library UNISIM; Descomente --use UNISIM.VComponents.all; entity Start_AC97 is end Start_AC97; Copie aqui a mesma declaração de portas do componente architecture Behavioral of Start_AC97 is begin Copie aqui declaração do componente. Adicione: attribute box_type of foo_clk_wrapper : component is "black_box"; Copie aqui a instância do componente. end Behavioral; ComL@b – Laboratório de Comunicações Digitais Modificar Template Start_AC97 library IEEE; use IEEE.STD_LOGIC_1164.ALL; use IEEE.STD_LOGIC_ARITH.ALL; use IEEE.STD_LOGIC_UNSIGNED.ALL; library UNISIM; use UNISIM.VComponents.all; entity Start_AC97 is port ( ce: in std_logic := '1'; ce_clr: in std_logic := '0'; clk: in std_logic; led_0: out std_logic ); end Start_AC97; architecture Behavioral of Start_AC97 is component mod_ac97controlador_ex2_clk_wrapper port ( ce: in std_logic := '1'; ce_clr: in std_logic := '0'; clk: in std_logic; led_0: out std_logic ); end component; attribute box_type of mod_ac97controlador_ex2_clk_wrapper : component is "black_box"; begin startac97 : mod_ac97controlador_ex2_clk_wrapper port map ( ce => ce, ce_clr => ce_clr, clk => clk, led_0 => led_0); end Behavioral; ComL@b – Laboratório de Comunicações Digitais Repita os procedimentos usados para criar a entity Start_AC97 para criar novo arquivo VHDL para a entity AC97_Controller ComL@b – Laboratório de Comunicações Digitais ISE após criação de arquivos VHDL ComL@b – Laboratório de Comunicações Digitais Gerar Símbolos de Esquemático Para cada entity: - Criar símbolo de esquemático. ComL@b – Laboratório de Comunicações Digitais Criar nova fonte: esquemático (1/2) aula11 ComL@b – Laboratório de Comunicações Digitais Criar nova fonte: esquemático (2/2) ComL@b – Laboratório de Comunicações Digitais Editar Esquemático (1/2) Símbolos gerados para as entidades ac97_controller e start_ac97 ComL@b – Laboratório de Comunicações Digitais Editar Esquemático (1/2) ComL@b – Laboratório de Comunicações Digitais Verificar esquemático ComL@b – Laboratório de Comunicações Digitais Hierarquia após edição do esquemático ComL@b – Laboratório de Comunicações Digitais User Constraints Dê um duplo click em Assign Package Pins ComL@b – Laboratório de Comunicações Digitais User Constraint: Xilinx PACE AC97_BIT_CLOCK = F8 audio_reset_z = E6 led_0 = AC4 SYS_CLK = AJ15 ComL@b – Laboratório de Comunicações Digitais Executar Design Flow Design Flow pode ser executado passo-a-passo no Process View. ComL@b – Laboratório de Comunicações Digitais Após execução do design flow ComL@b – Laboratório de Comunicações Digitais Finalização Carregue o bitstream (arquivo .bit) que foi gerado na FPGA. Use o Chipscope para debugar o projeto em hardware. Use o arquivo cdc que foi gerado pelo SysGen na pasta temp do projeto AC97_Controller para configurar o Chipscope (menu file/import). ComL@b – Laboratório de Comunicações Digitais Experimento: Geração de componentes para executar um teste simples no Codec AC97 Para o experimento, será verificada a execução das seguintes tarefas: 1. Implementação dos módulos em System Generator. 2. Projeto completo no ISE. 3. Funcionamento do sistemas em hardware e debug com Chipscope.
Documentos relacionados
Aula 12: Usando o codec de áudio AC97
SDATA_OUT na borda de subida do clock pelo controlador. - Dados são lidos na borda de descida do clock pelo chip AC97.
Leia maisAnotações relatório 1 O código cedido pelo professor
-- Revision 0.01 - File Created -- Additional Comments: --------------------------------------------------------------------------------library IEEE; use IEEE.STD_LOGIC_1164.ALL; entity base_tempo ...
Leia mais