Conceitos de Linguagens de Descrição de Hardware (Verilog, VHDL) 1 Alex Vidigal Bastos alexvbh@gmail.com
Objetivos da Aula Apresentar o conceito gerais de Linguagens de Descrição de Hardware (Verilog / VHDL) Apresentar o Fluxo de Projeto utilizando HDLs Mostrar alguns ambientes de desenvolvimento para Verilog e VHDL Requisitos Portas lógicas / Circuitos Digitais Lógica Programação 2
Mercado de Trabalho Oquepedem? Conhecimentos em HDL(geralmente VHDL ou Verilog); Experiência com FPGA(Field programmable gate array); Conhecimentos em alguma ferramenta tanto de síntese quanto de testes; Quanto pagam? OpisosalarialéemtornodeR$3.000,00 SaláriospodemiratéR$15.000,00 Quemsão eles? Ceitec(Porto Alegre); http://www.ceitec-sa.com/ Freescale (São Paulo); http://www.freescale.com/webapp/sps/site/overview.jsp?cod e=brazil 3
Ao final da aula Deve estar claro para o aluno onde deveser utilizado linguagens de descrição de hardware. Deve estar claro os conceitos básicos sobre as linguagens Verilog e VHDL e algumas de suas diferenças. Oalunodeveestaraptoparainiciaroaprendizadodelinguagensde descrição de hardware( Verilog/ VHDL). 4
Agenda Linguagens de Descrição de Hardware(HDLs) Fluxo de Projetos Verilog VHDL Ambientes de Desenvolvimento 5
Agenda Linguagens de Descrição de Hardware(HDLs) Fluxo de Projetos Verilog VHDL Ambientes de Desenvolvimento 6
Linguagens de Descrição de Hardware (HDLs) -Visão Geral Linguagens de Descrição de Hardware (HDLs) são usadas extensivamente na indústria para projetos de sistemas digitais variando de microprocessadores para componentes dentro de aparelhos de consumo; São utillizadas para projetar hardware. Tal como o nome implica, uma HDL também pode ser usada para descrever a funcionalidade do hardware, bem como a sua aplicação; Diferença entre uma linguagem de programação de software: paralelismo; 7
Linguagens de Descrição de Hardware (HDLs) -Exemplos VHDL(VHSIC Hardware Description Language) Verilog AHDL MyHDL Dentre outras; VHSIC(Very High Speed Integrated Circuit) 8
Linguagens de Descrição de Hardware (HDLs) -ASICs 9
Linguagens de Descrição de Hardware (HDLs) -Vantagens Menor espaço ocupado na placa; Menor consumo de energia; Maior confiabilidade; Menor complexidade de desenvolvimento; E geralmente, menor custo. 10
Sumário Linguagens de Descrição de Hardware(HDLs) Fluxo de Projetos Verilog VHDL Ambientes de Desenvolvimento 11
Fluxo de Projetos -Introdução Com as linguagens de descrição de hardware, o processou passou a ser como desenvolver um software, tendo como etapas: A especificação do projeto em alto nível; Codificação; Verificação/ testes; Sintetização; 12
Fluxo de Projetos Nível Comportamental O nível comportamental de uma hierarquia de projeto é um refinamento lógico da especificação; Deve fornecer informações funcionais precisas sobre como o estado do sistema é afetado para cada operação específica; 13
Fluxo de Projetos Nível Estrutural O nível estrutural responde as questões de como as funções são realmente implementadas e também para definir o número de ciclos requeridos para executar cada operação; Representa o mapeamento do modelo comportamental para uma implementação mais específica; 14
Fluxo de Projetos Nível Físico O nível físico específica os detalhes a nível do chip, layout e transistores; É definido o mapeamento da descrição do nível estrutural sobre uma tecnologia específica; 15
Fluxo de Projetos Boas práticas de programação Códigos bem feitos é um papel importante em um fluxo de projeto, pois códigos ruins NÃO permitem uma otimização eficiente durante a síntese; Convenção de Nomes; Particionamento do Projeto; 16
Agenda Linguagens de Descrição de Hardware(HDLs) Fluxo de Projetos Verilog VHDL Ambientes de Desenvolvimento 17
Verilog-Introdução Foi projetada primeiramente em 1984/1985; Permite representar a hierarquia de um projeto. As estruturas de Verilog que constrõem a hierarquia são: Módulos; Portas 18
Verilog-Hierarquia UmmodeloemVerilogécompostodemódulos. 19
Verilog-Hierarquia A maneira mais comum de representar uma relação hierárquica é: system instantiates comp1, comp2 comp_2 instantiates sub_3 20
Verilog Módulos A maneira mais comum de representar uma relação hierárquica é: top.childb.node1.leaf2 localização na hierarquia 21
Verilog Portas Portas são estruturas em Verilog onde os dados passam entre módulos pai e filho; Podemserpensadascomofiosdeligaçãodosmódulos; As conexões fornecidas pelas portas podem ser de entrada, saída ou bidirecioanais. Portas são listadas em uma lista de portas na definição do móduloesuadireçãoédeclaradaapósainstruçãodomódulo; 22
Verilog Módulos Ummóduloédefinidocomo: module <module_name_1>(<portlist>);.. <module_name_2> <instance_name>(<portlist>);.. endmodule 23
Verilog Módulos Ummóduloédefinidocomo: module top(<portlist>);.. type2 childb(<portlist>);.. endmodule 24
Verilog Portas 25
Verilog Instanciação Instanciação do módulo também contém a lista de portas. Este é o meio de ligação de sinais entre o módulo pai e o módulo filho; 26
Verilog Instanciação Na instanciação de um módulo, a lista de portas pode ser baseada no nome da porta ou de acordo com a posição da porta na definição do módulo; Posição- foof1(source1,,sink1,,bus); Nome - foo f1 (.in1(source1),.in2(source2),.out1(sink1),.out2(sink2),.bidi(bus)); 27
Verilog Tipos de Componentes Modelos em Verilog são compostos por módulos. Módulos por sua vez, são de diferentes tipos de componentes, estes incluem: Parâmetros; Fios; Registradores; Primitivas e Instâncias; Atribuições; Blocos Procedurais; Tarefas, Definições Funções 28
Verilog Exemplo moduleand2(a,b,y); input a,b; output y; assigny=a&b; endmodule 29
Verilog Exemplo 30
Verilog Exemplo 31
Verilog Exemplo 32
Agenda Linguagens de Descrição de Hardware(HDLs) Fluxo de Projetos Verilog VHDL Ambientes de Desenvolvimento 33
VHDL -Introdução Surgiuem1987comopadrãoIEEE1076-1987; Suportar projetos com múltiplos níveis de hierarquia, podendo a descrição consistir na interligação de outras descrições menores; Com exceção de regiões específicas do código, todos os comandos são executados concorrentemente; VHDL não foi originalmente concebida para síntese de circuitos, assim, nem todas as construções são suportadas pelas ferramentas de síntese; 34
VHDL Entidade de um projeto Pode representar desde uma simples porta lógica a um sistema complexo, sendo composta de: - Declaração da entidade e arquitetura; 35
VHDL Declaração da entidade de um projeto ENTITY <name_entity> IS --definição de constantes --definição das portas END <name_entity> ; 36
VHDL Declaração da entidade de um projeto ENTITY entidade_abc IS GENERIC(n : INTEGER :=5); PORT(x0,x1 :IN tipo_a; --entradas y0,y1 :OUT tipo_b; --saídas y2 : BUFFER tipo_c; --saída z0, z1 : INOUT tipo_d; --entrada/saída END entidade_abc; 37
VHDL Declaração do corpo de um projeto ARCHITECTURE nome_identificador OF entidade_abc IS BEGIN END; -- região de declarações; -- declaração de sinais e constantes; -- declaração de componentes referenciados; -- declaração e corpo sub_programas; -- definição de novos tipos de dados locais; -- comandos concorrentes; 38
VHDL Exemplo ENTITY comb IS PORT(e0,e1: IN Bit; s0 : OUT Bit); End comb; ARCHITECTURE prt_e OF comb IS BEGIN s0 <= e1nande2; END prt_e; ARCHITECTURE prt_ou OF comb IS BEGIN s0 <= Note1ouNote2; END prt_ou; 39
VHDL Exemplo 40
VHDL Exemplo ENTITY portas IS PORT(a,b,c : IN Bit; x,y : OUT Bit); End portas; ARCHITECTURE teste OF portas IS BEGIN x<=aandb; y<=corb; END 41
Agenda Linguagens de Descrição de Hardware(HDLs) Fluxo de Projetos Verilog VHDL Ambientes de Desenvolvimento 42
Ambientes de Desenvolvimento AlteraQuartusII Windows/Linux 43
Ambientes de Desenvolvimento ISE Design Suite/ Project Navigator 44
Ambientes de Desenvolvimento Linux IDE Eclipse; GTKWave; Compilador Verilog; Windows IDE Eclipse; GTKWave; Compilador iverilog; MinGW; 45
Bibliografia www.verilog.com, acessado em 10/12/2012. K. COFFMAN; Real World FPGA Design with Verilog. Prentice Hall; 2000 Smith, Douglas, J. HDL chip design: a practicalguidefor designing, synthesizing and simulating ASICs and FPGAs using VHDL orverilog. Madison : Doone, c1996. 448p. (621.38173 S645h) LEE, WengFook. VerilogCodingfor LogicSynthesis. Wiley. 2003 46
Próxima Aula Revisão Conceitos Verilog(referente a aula anterior); Sintaxe, Convenções Léxicas, Tipos de Dados e Memória em Verilog; Spartan 3 Decoder Tutorial Verilog www.decom.ufop.br/alex/tutorial_decoder.pdf 47
Perguntas 48