Mudanças entre as edições de "DLP1-EngTel (página)"
Linha 154: | Linha 154: | ||
--> | --> | ||
− | == | + | ==Atividades extra== |
− | + | ===JÁ ENCERRADAS=== | |
+ | {{collapse top | Estudo do tipo de programação dos FPGA (prazo 20/02/2015}} | ||
*Fazer uma pesquisa sobre as formas como os PLDs são programados. Fusíveis, antifusíseis, memória PROM, EPROM, EEPROM, Flash, SRAM, etc. Formar equipes de até 2 alunos e apresentar um resumo em 2 a 3 páginas A4. | *Fazer uma pesquisa sobre as formas como os PLDs são programados. Fusíveis, antifusíseis, memória PROM, EPROM, EEPROM, Flash, SRAM, etc. Formar equipes de até 2 alunos e apresentar um resumo em 2 a 3 páginas A4. | ||
− | + | {{collapse bottom}} | |
− | + | {{collapse top | Estudo do Quartus II e Dispositivos FPGA (prazo 27/02/2015}} | |
* Utilize no Quartus II o arquivo [[media:adders.qar | adders.qar]] para realizar os seguintes procedimentos: | * Utilize no Quartus II o arquivo [[media:adders.qar | adders.qar]] para realizar os seguintes procedimentos: | ||
:P0 - Selecione a família de FPGA Cyclone e selecione o dispositivo EP1C3T100A8 | :P0 - Selecione a família de FPGA Cyclone e selecione o dispositivo EP1C3T100A8 | ||
Linha 172: | Linha 173: | ||
:P3 - Troque a familia do FPGA para Stratix III e selecione o dispositivo EP3SE50F484C2 e repita os procedimento P1 e P2 acima. | :P3 - Troque a familia do FPGA para Stratix III e selecione o dispositivo EP3SE50F484C2 e repita os procedimento P1 e P2 acima. | ||
:P4 - Análise os resultados obtidos e chegue as suas conclusões. Escreva os resultados em um artigo resumido de 1 a 2 páginas. | :P4 - Análise os resultados obtidos e chegue as suas conclusões. Escreva os resultados em um artigo resumido de 1 a 2 páginas. | ||
− | + | * Exemplos ilustrativos de utilização do elemento lógico/ALUT | |
− | + | :*Adder de 4 bits em EP1C3T100A8 | |
− | + | ::[[Arquivo:Adder_4bits_EP1C3T100A8.png| 800 px]] | |
− | *Adder de 4 bits em EP1C3T100A8 | ||
− | :[[Arquivo:Adder_4bits_EP1C3T100A8.png| 800 px]] | ||
− | *Adder de 4 bits em EP3SE50F484C2 | + | :*Adder de 4 bits em EP3SE50F484C2 |
− | :[[Arquivo:Adder_4bits_EP3SE50F484C2.png | 800 px]] | + | ::[[Arquivo:Adder_4bits_EP3SE50F484C2.png | 800 px]] |
− | *Riple Adder de 4bits em EP3SE50F484C2 | + | :*Riple Adder de 4bits em EP3SE50F484C2 |
− | :[[Arquivo:Riple_Adder_4bits_EP3SE50F484C2.png | 800 px]] | + | ::[[Arquivo:Riple_Adder_4bits_EP3SE50F484C2.png | 800 px]] |
{{collapse bottom}} | {{collapse bottom}} | ||
+ | ===ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO=== | ||
+ | {{collapse top | Estrutura do VHDL}} | ||
* Faça o exercício 2.1 <ref name="PEDRONI2010b"/>, completando o código VHDL. Idente o código. Procure entender o código inserindo comentários onde julgar importante. Depois de tudo realizado compile e simule o código. Procure obter '''zero''' erros na primeira complilação. | * Faça o exercício 2.1 <ref name="PEDRONI2010b"/>, completando o código VHDL. Idente o código. Procure entender o código inserindo comentários onde julgar importante. Depois de tudo realizado compile e simule o código. Procure obter '''zero''' erros na primeira complilação. | ||
− | + | ||
<code> | <code> | ||
---------------------------------------------------- | ---------------------------------------------------- | ||
Linha 217: | Linha 218: | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | + | {{collapse top | Estudo dos atributos em VDHL}} | |
− | |||
− | {{collapse top | | ||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=vhdl> | ||
entity atributte_test_array is | entity atributte_test_array is | ||
Linha 248: | Linha 247: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{collapse bottom}} | {{collapse bottom}} | ||
+ | |||
+ | {{collapse top | Resolução dos exercícios do Cap 3 e Cap 4}} | ||
*Resolva os exercícios da capítulo 3 (1, 2, 9, 11-13, 18-20, 23-30) pag. 81 a 89 | *Resolva os exercícios da capítulo 3 (1, 2, 9, 11-13, 18-20, 23-30) pag. 81 a 89 | ||
*Resolva os exercícios da capítulo 4 (4-11, 13, 15-17 ) pag. 115 a 89 | *Resolva os exercícios da capítulo 4 (4-11, 13, 15-17 ) pag. 115 a 89 | ||
+ | {{collapse bottom}} | ||
+ | |||
+ | ===PARA ENTREGAR=== | ||
+ | {{collapse top | Uso de operadores e tipos de dados (Prazo de entrega 23/03/2015)}} | ||
*Para o exercício 4.15 escreva um código VHDL e faça a simulação temporal (Prazo até 23/03) | *Para o exercício 4.15 escreva um código VHDL e faça a simulação temporal (Prazo até 23/03) | ||
*Para o exercício 4.17 escreva um código VHDL e analise o número de elementos lógicos necessários. Compare com os outros estudantes e analise das diferenças. (Prazo até 23/03). | *Para o exercício 4.17 escreva um código VHDL e analise o número de elementos lógicos necessários. Compare com os outros estudantes e analise das diferenças. (Prazo até 23/03). | ||
Linha 264: | Linha 269: | ||
end entity; | end entity; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | {{collapse bottom}} | ||
+ | |||
==Links auxiliares== | ==Links auxiliares== | ||
*[[Aritmética com vetores em VDHL]] | *[[Aritmética com vetores em VDHL]] |
Edição das 09h34min de 20 de março de 2015
MURAL DE AVISOS E OPORTUNIDADES DA ÁREA DE TELECOMUNICAÇÕES
Informações Gerais
Registro on-line das aulas
Unidade 1
- Aula 1 (5 fev)
- Dispositivos lógicos programáveis.
- Bases da linguagem VHDL.
- Tipos de dados, libraries, conversão de tipos, operadores, atributos.
- Código VHDL concorrente e sequencial.
- Projeto hierárquico.
- Simulação e Testbench
- Maquina de estado finita (FSM).
- Projeto Final de circuitos lógicos.
- Avaliações.
- Introdução aos dispositivos lógicos programáveis:
- Conceito, tipos de PLDs
- SPLD: PAL, PLA e GAL
- Ver pag. 413 a 418 de [1]
- Aula 2 (6 fev)
- Introdução aos dispositivos lógicos programáveis:
- CPLDs e FPGAs
- Fabricantes de DLPs
- Vizualização no Chip Planner de um projeto.
- Ver pag. 419 a 424 de [1]
- Aula 3 (11 fev)
- Introdução aos dispositivos lógicos programáveis:
- Arquitetura de FPGAs (Xilinx e Altera): CLB, LAB, RAM, DSP, Clock, PLL, I/O
- Vizualização no Chip Planner de um projeto.
- Ver pag. 424 a 431 de [1]
Unidade 2
- Aula 4 (12 fev)
- Introdução ao VHDL.
- Exemplo de programação de um full adder. Utilize os arquivos .qar enviados (V1 - estrutural. V2 - comportamental) para analisar os circuitos obtidos e realizar as simulações funcional e temporal.
- Ver pag. 3 a 8 de [2]
- Aula 5 (13 fev)
- Introdução ao VHDL.
- Estrutura do código VHDL
- Libraries, Entity, Architecture
- Aula 6 (19 fev)
- Introdução ao VHDL.
- Estrutura do código VHDL
- Exercicios 2.2 (VHDL e QSIM)
- Exemplo de programação de um flip-flop
- Exercicios 2.3 (VHDL e QSIM)
- Ver pag. 3 a 8 de [2]
- Aula 7 (20 fev)
- Introdução ao VHDL.
- Libraries, Entity, Architechture, Generic.
- Ver pag. 11 a 18 de [2]
- Aula 8 (25 fev)
- Introdução ao VHDL.
- Exemplo de um circuito somador
- Exemplo de FF-D
- Ver pag. 19 a 21 de [2]
Unidade 3
- Aula 9 (26 fev)
- Tipos de Dados em VHDL.
- Exemplo de um circuito somador com registrador
- Exemplo de decodificador de endereço genérico
- Ver pag. 22 a 27 de [2]
- Aula 10 (27 fev)
- Tipos de Dados em VHDL.
- Objetos de VHDL: CONSTANT, SIGNAL, VARIABLE, FILE.
- Palavra chave OTHERS
- Bibliotecas padrão.
- Não use as bibliotecas não padrão (std_logic_arith, std_logic_unsigned, std_logic_signed)
- Tipos de dados: BIT, BIT_VECTOR, BOOLEAN, INTEGER, NATURAL, POSITIVE, CHARACTER, STRING, STD_(U)LOGIG, STD_(U)LOGIG_VECTOR, (UN)SIGNED
- Classificação dos tipos de dados.
- Exemplo 3.1 Buffer Tri-state
- Exemplo 3.3 Multiplicador
- Ver pag. 31 a 54 de [2]
- Aula 11 (5 mar)
- Tipos de Dados em VHDL.
- Tipos Array definidos pelo usuário: 1D, 1D x 1D, 2D, 1D x 1D x 1D, 3D.
- Ver pag. 62 a 79 de [2]
- Aula 12 (6 mar)
- Operadores em VHDL.
- Operadores predefinidos: Atribuição, Logicos, Arithméticos, Comparação, Deslocamento, Concatenação, "Matching".
- Sobrecarga de operadores
- Ver pag. 91 a 98 de [2]
- Aula 13 (11 mar)
- Atributos em VHDL.
- Atributos predefinidos: tipo escalar e enumerados; tipo array; de sinal;
- Exemplo 4.1 (Simulação funcional)
- Atributos definidos pelo usuário;
- Atributos de síntese: Enum_encoding, chip_pin, keep.
- Exemplo: Delay line (Síntese e Simulação temporal sem o com o atributo keep)
- Ver pag. 99 a 109 de [2]
- Aula 14 (12 mar)
- Atributos em VHDL.
- Atributos de síntese: preserve, noprune.
- Exemplo: Redundant Register
- Group e Alias
- Exercício 4.17: Discussão de possibilidades de implementação
- Ver pag. 109 a 119 de [2]
Unidade 4
- Aula 15 (13 mar)
- Código Concorrente.
- WHEN, SELECT, GENERATE;
- Exemplo 5.1 + 5.2 mux: com 4 tipos de arquiteturas (com operadores, com WHEN, com SELECT, com IF),
- Uso de CONFIGURATION para selecionar um entre várias arquiteturas.
CONFIGURATION which_mux OF mux IS
FOR with_OPERATOR END FOR;
-- FOR with_WHEN END FOR;
-- FOR with_SELECT END FOR;
-- FOR with_IF END FOR;
END CONFIGURATION;
- Exemplo 5.3 ALU: modificação do opcodes: "0011" -> a NAND b, "0100" -> "a OR b, "1111" => a * b. É necessário mudar a ENTITY, dobrando o número de bits da saída devido a multiplicação, e adaptar o código para a nova quantidade de bits.
- Ver pag. 121 a 129 de [2]
Recursos de Laboratório
Quartus/Modelsim/QSIM
Nos laboratórios do IFSC, os softwares Quartus/Modelsim/QSIM estão disponíveis diretamente na plataforma LINUX. Utilize preferencialmente a versão 13.0sp1 (32 bits), pois ela tem suporte para os FPGAs mais antigos como a familia Cyclone I.
Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD. Atualmente a forma mais eficiente de acesso é através do Cliente X2GO. O procedimento de instalação/ configuração e uso do Quartus/Modelsim/QSIM está descrito em Acesso ao IFSC-CLOUD#Cliente X2GO (recomendado).
Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma Sharelatex do IFSC-CLOUD. Utilize preferencialmente o modelo de artigo no padrão ABNT.
Atividades extra
JÁ ENCERRADAS
Estudo do tipo de programação dos FPGA (prazo 20/02/2015 |
---|
|
Estudo do Quartus II e Dispositivos FPGA (prazo 27/02/2015 |
---|
|
ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO
Estrutura do VHDL |
---|
|
Estudo dos atributos em VDHL |
---|
entity atributte_test_array is
port(
x1, x2, x3, x4, x5, x6: out integer range 0 to 15;
x7, x8: out boolean;
m12, m44, m47: out bit);
end entity;
architecture ifsc of atributte_test_array is
TYPE matrix IS ARRAY (1 TO 4, 7 DOWNTO 0) OF BIT;
SIGNAL test: matrix := (('0', '1', '1', '0', '0', '1', '1', '0'), "01110100", ('1', others => '0'), (4 => '0', others => '1'));
begin
--------------------------------------------------------------------------
x1 <= matrix'LEFT(1); --result=1 (type of x1 must be INTEGER or eq.)
x2 <= matrix'LEFT(2); --result=7 (type of x2 must be INTEGER or eq.)
x3 <= matrix'RIGHT(1); --result=4 (type of x3 must be INTEGER or eq.)
x4 <= matrix'RIGHT(2); --result=0 (type of x4 must be INTEGER or eq.)
x5 <= matrix'LENGTH(1); --result=4 (type of x5 must be INTEGER or eq.)
x6 <= matrix'LENGTH(2); --result=8 (type of x6 must be INTEGER or eq.)
x7 <= matrix'ASCENDING(1); --result=TRUE (type of x7 must be BOOLEAN)
x8 <= matrix'ASCENDING(2); --result=FALSE (type of x8 must be BOOLEAN)
m12 <= test(1,2); -- result = '1' - Acess the element of 'test' row(1), columm(2) (type of m11 must be bit)
m47 <= test(4,7); -- result = '1' - Acess the element of 'test' row(7), columm(7) (type of m11 must be bit)
m44 <= test(4,4); -- result = '0' - Acess the element of 'test' row(4), columm(4) (type of m11 must be bit)
--------------------------------------------------------------------------
end architecture;
|
Resolução dos exercícios do Cap 3 e Cap 4 |
---|
|
PARA ENTREGAR
Uso de operadores e tipos de dados (Prazo de entrega 23/03/2015) |
---|
entity bin2bcd is
port (
num_bin : in std_logic_vector(9 downto 0);
C_bcd : out std_logic_vector(3 downto 0);
D_bcd : out std_logic_vector(3 downto 0);
U_bcd : out std_logic_vector(3 downto 0));
end entity;
|
Links auxiliares
Livros/Resumos sobre VHDL
- VHDL Handbook - Hardi (apenas VHDL’87 e VHDL’93)
- VHDL QUICK REFERENCE CARD - Qualis (r2.1)
- VHDL 1164 PACKAGES QUICK REFERENCE CARD - Qualis (r2.2)
Fabricantes de DLPs
Referências Bibliográficas:
- ↑ 1,0 1,1 1,2 PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657
- ↑ 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 2,11 PEDRONI, Volnei A. Circuit Design and Simulation with VHDL; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p. ISBN 9780262014335