hdls [modo de compatibilidade] - decom- · pdf filevhdl -introdução ... •...
Post on 15-Feb-2018
214 Views
Preview:
TRANSCRIPT
Conceitos de Linguagens de
Descrição de Hardware
(Verilog, VHDL)
Alex Vidigal Bastosalexvbh@gmail.com
1
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• O que pedem?
• Conhecimentos em HDL (geralmente VHDL ou Verilog);
• Experiência com FPGA (Field programmable gate array);
• Conhecimentos em alguma ferramenta tanto de síntese quantode testes;
• Quanto pagam?
• O piso salarial é em torno de R$ 3.000,00
• Salários podem ir até R$ 15.000,00
• Quem sã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 deve ser utilizado linguagens dedescrição de hardware.
• Deve estar claro os conceitos básicos sobre as linguagens Verilog eVHDL e algumas de suas diferenças.
• O aluno deve estar apto para iniciar o aprendizado de linguagens dedescriçã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 usadasextensivamente na indústria para projetos de sistemas digitaisvariando de microprocessadores para componentes dentrode aparelhos de consumo;
• São utillizadas para projetar hardware. Tal como o nomeimplica, uma HDL também pode ser usada para descrever afuncionalidade 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 processoupassou a ser como desenvolver um software, tendo comoetapas:
• 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 é umrefinamento lógico da especificação;
• Deve fornecer informações funcionais precisas sobre como oestado 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çõessão realmente implementadas e também para definir onúmero de ciclos requeridos para executar cada operação;
• Representa o mapeamento do modelo comportamental parauma 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 etransistores;
• É definido o mapeamento da descrição do nível estruturalsobre uma tecnologia específica;
15
Fluxo de Projetos – Boas práticas
de programação
• Códigos bem feitos é um papel importante em um fluxo deprojeto , pois códigos ruins NÃO permitem uma otimizaçãoeficiente 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 estruturasde Verilog que constrõem a hierarquia são:
• Módulos;
• Portas
18
Verilog - Hierarquia
• Um modelo em Verilog é composto de módulos.
19
Verilog - Hierarquia
• A maneira mais comum de representar uma relaçãohierárquica é:
• system instantiates comp1, comp2
• comp_2 instantiates sub_320
Verilog – Módulos
• A maneira mais comum de representar uma relaçãohierárquica é:
• top.childB.node1.leaf2 – localização na hierarquia
21
Verilog – Portas
• Portas são estruturas em Verilog onde os dados passam entremódulos pai e filho;
• Podem ser pensadas como fios de ligação dos mó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 domódulo e sua direção é declarada após a instrução do módulo;
22
Verilog – Módulos
• Um módulo é definido como:
module <module_name_1> (<portlist>);
. .
<module_name_2> <instance_name> (<portlist>);
. .
endmodule
23
Verilog – Módulos
• Um módulo é definido como:
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 omódulo filho;
26
Verilog – Instanciação
Na instanciação de um módulo, a lista de portas pode serbaseada no nome da porta ou de acordo com a posição daporta na definição do módulo;
• Posição - foo f1 (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 porsua vez, são de diferentes tipos de componentes, estesincluem:
• Parâmetros;
• Fios;
• Registradores;
• Primitivas e Instâncias;
• Atribuições;
• Blocos Procedurais;
• Tarefas, Definições Funções28
Verilog – Exemplo
module and2 (a, b, y);
input a,b;
output y;
assign y = 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
• Surgiu em 1987 com o padrão IEEE 1076-1987;
• Suportar projetos com múltiplos níveis de hierarquia, podendoa descrição consistir na interligação de outras descriçõesmenores;
• Com exceção de regiões específicas do código, todos oscomandos são executados concorrentemente;
• VHDL não foi originalmente concebida para síntese decircuitos, assim, nem todas as construções são suportadaspelas ferramentas de síntese;
34
VHDL – Entidade de um projeto
• Pode representar desde uma simples porta lógica a umsistema 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
-- 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;
BEGIN
-- comandos concorrentes;
END;38
VHDL – Exemplo
ENTITY comb IS
PORT ( e0, e1 : IN Bit;
s0 : OUT Bit);
End comb;
ARCHITECTURE prt_E OF comb IS
BEGIN
s0 <= e1 Nand e2;
END prt_E;
ARCHITECTURE prt_OU OF comb IS
BEGIN
s0 <= Not e1 ou Not e2;
END prt_OU;
39
VHDL – Exemplo
40
VHDL – Exemplo
41
ENTITY portas IS
PORT ( a, b, c : IN Bit;
x, y : OUT Bit);
End portas;
ARCHITECTURE teste OF portas IS
BEGIN
x <= a AND b;
y <= c OR b;
END
Agenda
• Linguagens de Descrição de Hardware (HDLs)
• Fluxo de Projetos
• Verilog
• VHDL
• Ambientes de Desenvolvimento
42
Ambientes de
Desenvolvimento• Altera Quartus II – 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. PrenticeHall; 2000
• Smith, Douglas, J. “HDL chip design: a practical guide for designing, synthesizing and simulating ASICs and FPGAs usingVHDL or Verilog”. Madison : Doone, c1996. 448p. (621.38173 S645h)
• LEE, Weng Fook. Verilog Coding for Logic Synthesis. 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
top related