|
|
(404 revisões intermediárias por 10 usuários não estão sendo mostradas) |
Linha 2: |
Linha 2: |
| *Link curto http://bit.ly/IFSC-DLP29006 | | *Link curto http://bit.ly/IFSC-DLP29006 |
| *[[DLP1-EngTel|Carga horária, Ementas, Bibliografia, Professores]] | | *[[DLP1-EngTel|Carga horária, Ementas, Bibliografia, Professores]] |
− | *[[Cronograma de atividades (DLP1-EngTel) | Cronograma de atividades ]]
| |
| *[[DLP1-EngTel (Plano de Ensino) | Plano de Ensino]] | | *[[DLP1-EngTel (Plano de Ensino) | Plano de Ensino]] |
| + | == Avisos importantes== |
| + | *A documentação das aulas será disponibilizada na página da [[DLP29006-Engtelecom (Diário) - Prof. Marcos Moecke | '''Wiki diária da disciplina'''.]]. |
| | | |
− | ==Registro on-line das aulas==
| + | * Nesta página wiki, você tem orientações para uso de ferramentas e também links que auxiliam no estudo da disciplina. Visite os links sempre que solicitado e lei essa página para lembrar futuramente onde estão as informações que necessita. |
− | ===Unidade 1===
| |
− | ;Aula 1 (5 fev):
| |
− | *[[DLP1-EngTel (Plano de Ensino) | Apresentação da disciplina]] | |
− | #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 <ref name="PEDRONI2010a"> PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657 </ref>
| |
− | | |
− | ;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 <ref name="PEDRONI2010a" />
| |
− | | |
− | ;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 <ref name="PEDRONI2010a" />
| |
− | | |
− | ===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 <ref name="PEDRONI2010b"> PEDRONI, Volnei A. '''Circuit Design and Simulation with VHDL'''; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p. ISBN 9780262014335 </ref>
| |
− | | |
− | ;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 <ref name="PEDRONI2010b"> PEDRONI, Volnei A. '''Circuit Design and Simulation with VHDL'''; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p. ISBN 9780262014335 </ref>
| |
− | | |
− | ;Aula 7 (20 fev):
| |
− | *Introdução ao VHDL.
| |
− | :*Libraries, Entity, Architechture, Generic.
| |
− | ::Ver pag. 11 a 18 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;Aula 8 (25 fev):
| |
− | *Introdução ao VHDL.
| |
− | :*Exemplo de um circuito somador
| |
− | :*Exemplo de FF-D
| |
− | ::Ver pag. 19 a 21 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ===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 <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;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 <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;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 <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;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 <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;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 <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;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 <ref name="PEDRONI2010b"/>
| |
− | | |
− | ===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.
| |
− | <syntaxhighlight lang=vhdl>
| |
− | 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;
| |
− | </syntaxhighlight>
| |
− | :* 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 <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;Aula 16 (19 mar):
| |
− | *Código Concorrente.
| |
− | | |
− | ;Aula 17 (20 mar):
| |
− | *Código Concorrente.
| |
− | | |
− | ;Aula 18 (25 mar):
| |
− | *Código Concorrente.
| |
− | :* Implementação de circuitos arithméticos com operadores.
| |
− | ::'''LEMBRETE'''
| |
− | ::* Para "+" ou "-": O tamanho do resultado é igual ao número de bits do maior operando.
| |
− | :::r[7..0] = a[7..0] + b[4..0]; a -> 8 bits; b -> 5 bits então r -> 8 bits.
| |
− | ::* Para "*": O tamanho do resultado é igual a soma do número de bits dos dois operandos.
| |
− | :::r[12..0] = a[7..0] * b[4..0]; a -> 8 bits; b -> 5 bits então r -> 8+5 bits.
| |
− | ::* Para "/": O tamanho do resultado é igual ao número de bits do numerador.
| |
− | :::r[5..0] = a[5..0] * b[8..0]; a -> 6 bits; b -> 9 bits então r -> 6 bits.
| |
− | | |
− | :* Aula de exercicios:
| |
− | ::5.4 - Generic Parity Generator;
| |
− | ::5.6 - Generic Binary-to-Gray Converter;
| |
− | ::5.7 - Hamming Weight with GENERATE;
| |
− | ::5.8 - Binary Sorter with GENERATE;
| |
− | ::5.10/11 - Arithmetic Circuit with INTEGER/STD_LOGIC;
| |
− | ::5.15/16/17/18 - (Un)signed Multiplier/Divider;
| |
− | ::5.19 - Frequency Multiplier.
| |
− | | |
− | ===Unidade 5===
| |
− | ;Aula 19 (26 mar):
| |
− | *Código Sequencial.
| |
− | :*Diferenças entre código concorrente e sequencial <=> circuitos combinacional e sequencial
| |
− | :*Diferenças entre os objetos SIGNAL e VARIABLE
| |
− | :*Tipos de elementos de memória: Latch x Flip-flop
| |
− | ::* Latch D
| |
− | ::* Flip-flop tipo D com reset assíncrono e com reset (clear) síncrono
| |
− | :*Seção de código sequencial '''PROCESS''': lista de sensibilidade
| |
− | :*Instrução '''IF'''
| |
− | ::*Exemplos: DFFs with Reset and Clear (Variação Ex 6.1), Basic Counter (Ex. 6.2), Shift Register (Ex. 6.3)
| |
− | :*Instrução '''WAIT''': WAIT UNTIL, WAIT FOR (simulação apenas), WAIT ON (não implementada no Quartus II).
| |
− | ::Recomenda-se utilizar a lista de sensibilidade do PROCESS e a instrução IF no lugar do WAIT.
| |
− | | |
− | :*Ver pag. 161 a 160 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;Aula 20 (27 mar):
| |
− | *Código Sequencial.
| |
− | :*Instruções do tipo '''LOOP''': LOOP incondicional, FOR-LOOP, WHILE-LOOP, NEXT, EXIT
| |
− | ::* Exemplos: Carry-Ripple Adder (FOR-LOOP) (Ex 6.4), Leading Zeros (LOOP com EXIT) (Ex 6.5)
| |
− | :*Instrução '''CASE'''
| |
− | ::* Exemplo: Contador de 0 a 9 segundos com saída SSD (Ex 6.6)
| |
− | ::* Exemplo: Projeto ruim com CASE incompleto (Ex. 6.7)
| |
− | | |
− | :*Ver pag. 161 a 171 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ===Unidade 6===
| |
− | ;Aula 21 (8 abr):
| |
− | *Projeto a nível de Sistema.
| |
− | :* O '''PACKAGE''' e '''PACKAGE BODY''': onde declarar e como usar.
| |
− | :* O '''COMPONENT''': declaração (cópia da '''ENTITY''') e instanciação.
| |
− | ::* Associação dos nomes das portas aos sinais. PORT -> '''PORT MAP''':
| |
− | | |
− | :* Ver pag. 201 a 205 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;Aula 22 (9 abr):
| |
− | *Projeto a nível de Sistema.
| |
− | :* O '''COMPONENT''':
| |
− | ::* Criação de compomentes redimensionáveis. GENERIC -> '''GENERIC MAP'''
| |
− | ::* Mapeamento por posição e nominal.
| |
− | ::* Métodos de declaração de '''COMPONENT'''.
| |
− | :::*Exemplo: Registrador Circular Ex. 8.2
| |
− | | |
− | :* Ver pag. 205 a 208 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;Aula 23 (10 abr):
| |
− | *'''Avaliação das Unidades 1 a 4'''.
| |
− | | |
− | ;Aula 24 (16 abr):
| |
− | *Projeto a nível de Sistema.
| |
− | :* Criação de '''COMPONENT''' redimensionáveis. GENERIC -> '''GENERIC MAP'''
| |
− | ::*Exemplo: Porta E com N entradas.
| |
− | ::*Exemplo: Detector de Paridade Ex. 8.3
| |
− | :* Instanciação de '''COMPONENT''' com '''GENERATE'''.
| |
− | ::*Exemplo: Registrador de deslocamento M x N Ex. 8.4
| |
− | | |
− | :* Ver pag. 208 a 213 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;Aula 25 (17 abr):
| |
− | *Projeto a nível de Sistema.
| |
− | :* Uso da instrução '''CONFIGURATION'''.
| |
− | ::* Ligação direta: ARCHITECTURE-ENTITY.
| |
− | ::* Ligação da instanciação dos componentes: COMPONENT-ENTITY(ARCHITECTURE).
| |
− | :* O '''BLOCK'''.
| |
− | :* A instrução '''ASSERT''' condicional e incondicional
| |
− | :* A '''FUNCTION''': declaração, uso, mapeamento posicional x nominal, PURE x IMPURE.
| |
− | | |
− | :* Ver pag. 213 a 226 de <ref name="PEDRONI2010b"/>)
| |
− | :* Ver exercício proposto na AE5.
| |
− | | |
− | ;Aula 26 (22 abr):
| |
− | *Projeto a nível de Sistema.
| |
− | :* Uso de '''FUNCTION''' e '''ASSERT'''.
| |
− | ::* Exemplo: Declaração em ARCHITECTURE Ex.9.1
| |
− | ::* Exemplo: Declaração em PACKAGE Ex. 9.2
| |
− | ::* Exemplo: Declaração em ENTITY Ex. 9.3
| |
− | | |
− | :* Ver pag. 226 a 230 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;Aula 27 (23 abr):
| |
− | *Projeto a nível de Sistema.
| |
− | :* Uso de '''PROCEDURE'''.
| |
− | ::* Exemplo: min_max Ex.9.4
| |
− | ::* Exercícios: 9.1 a 9.4, 9.6 a 9.9
| |
− | | |
− | :* Ver pag. 230 a 239 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ;Aula 28 (24 abr):
| |
− | *Projeto a nível de Sistema.
| |
− | :* Projeto de um conversor de hexadecimal para display de 7 segmentos.
| |
− | :: Ver '''EL7 - Projetar Conversor de hexadecimal para 7 segmentos'''
| |
− | | |
− | ;Aula 29 e 30 (30 abr e 6 mai):
| |
− | *Projeto a nível de Sistema.
| |
− | :* Projeto de um relógio com saída em display de 7 segmentos de HH:MM:SS.
| |
− | :: Ver '''EL8 - Projetar um relógio de 24 horas'''
| |
− | | |
− | ===Unidade 7===
| |
− | ;Aula 31 (7 mai):
| |
− | :Simulação com o ModelSim
| |
− | :*Seguir o tutorial [http://www.vhdl.us/Book_VHDL_2ed_unrestricted/Pedroni_VHDL_2ed_tutorial_ModelSim_10.1d_v2.pdf]
| |
− | :*Para usar o ModelSim 10.1d na CLOUD-IFSC abra um terminal e digite:
| |
− | /opt/altera/13.0sp1/modelsim_ase/bin/vsim
| |
− | :*Para usar o ModelSim 10.1d no LabProg abra um terminal e digite:
| |
− | /opt/altera/13.0/quartus/modelsim_ase/linux/vsim
| |
− | | |
− | ;Complementos:
| |
− | :*Ler também [ftp://ftp.altera.com/up/pub/Altera_Material/13.0/Tutorials/VHDL/Using_ModelSim.pdf Using ModelSim to Simulate Logic Circuits in VHDL Designs]
| |
− | :*Ver também [http://quartushelp.altera.com/13.1/mergedProjects/eda/simulation/modelsim/eda_pro_msim_func_sim.htm Performing a Functional Simulation with the ModelSim-Altera Software], e [http://quartushelp.altera.com/13.1/mergedProjects/eda/simulation/modelsim/eda_pro_msim_timing_sim.htm Performing a Timing Simulation with the ModelSim-Altera Software].
| |
− | | |
− | ;Aula 32-33 (8 e 14 mai):
| |
− | :Simulação com o ModelSim X Qsim
| |
− | :*Implementar o relógio da AE8 e realizar a simulação no QSIM e ModelSim.
| |
− | :*Executar Modelsim a partir do Quartus II. Simulação usando comandos gráficos.
| |
− | :*Criação de arquivo wave.do (para armazenamento dos sinais e formatos).
| |
− | :*Criação do arquivo tb_relógio.do (para compilar, simular, definir os estimulos e executar 48 hr de simulação).
| |
− | :*Análise dos graficos temporais e correção do hardware implementado.
| |
− | | |
− | ;Aula 34 (15 mai):
| |
− | :*Tipos de testbench funcional e temporal:
| |
− | ::*Gráfico -> DUT -> Gráfico (funcional RTL). Usar project.vhd + tp_project.vwf (QSIM) ou project.vhd + tb_project.do (ModelSim)
| |
− | ::*Gráfico -> DUT -> Gráfico (funcional pós-síntese). Usar project.vho + tb_project.do (ModelSim)
| |
− | :* Geração de estimulos para testbench:
| |
− | ::*VHDL -> DUT -> Gráfico (funcional RTL). Usar project.vhd + tp_project.vwf (QSIM) ou project.vhd + tb_project.vhd (ModelSim)
| |
− | ::*VHDL -> DUT -> Gráfico (funcional pós-síntese). Usar project.vho + tb_project.vhd (ModelSim)
| |
− | ::*VHDL -> DUT -> Gráfico (temporal). Usar project.vho + tb_project.vhd + project.sdo (ModelSim)
| |
− | :* Teste automático da saída usando o sinal esperado e tempo de propagação.
| |
− | ::*VHDL -> DUT -> VHDL (funcional RTL). Usar project.vhd + tp_project.vwf (QSIM) ou project.vhd + tb_project.vhd (ModelSim)
| |
− | ::*VHDL -> DUT -> VHDL (funcional pós-síntese). Usar project.vho + tb_project.vhd (ModelSim)
| |
− | ::*VHDL -> DUT -> VHDL (temporal). Usar project.vho + tb_project.vhd + project.sdo (ModelSim)
| |
− | :* Exemplo Multiplexador Registrado
| |
− | ::Ver pag. 241 a 245 e 251 a 264 de <ref name="PEDRONI2010b"/>
| |
− | ;Complementos:
| |
− | :* Ver também site que gera um template de testbench a partir do código vhdl da top_entity (DUT): http://www.doulos.com/knowhow/perl/testbench_creation/
| |
− | :* Ver este [http://www.alterawiki.com/uploads/d/d2/Testbenches_public.pdf tutorial da ALTERA que ensina como gerar um template de testbench usando o Quartus II].
| |
− | ;Aula 35 (20 mai):
| |
− | :*Simulação do RelógioHHMMSS da AE6 no ModelSim tanto funcional como temporal
| |
− | ::* teste com geração automática de estimulo (clk) com VHDL -> DUT -> Gráfico.
| |
− | ::* teste com análise automática das saídas VHDL -> DUT -> VHDL.
| |
− | | |
− | ===Unidade 8===
| |
− | ;Aula 36 (21 mai):
| |
− | :Máquinas de Estados Finitos (FSM)
| |
− | :*Diagrama de transições, Representação em Hardware
| |
− | :*Template VHDL para FSM, exemplo 11.1 "vending_machine"
| |
− | :*Simulação do Ex11.1 no Modelsim com testbench de geração de estímulos em VHDL.
| |
− | ::Ver pag 277 a 287 de <ref name="PEDRONI2010b"/>
| |
− | | |
− | ==Avaliações Escritas==
| |
− | *Avaliação A1 - Unidade 2, 3 e 4
| |
− | *Avaliação A2 - Unidade 5 e 6 (28mai)
| |
− | | |
− | ==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)]].
| |
− | | |
− | ===Sharelatex===
| |
− | Para a geração de documentação/relatórios técnicos/artigos, está disponibilizada a plataforma [http://200.135.233.26:3000/project Sharelatex do IFSC-CLOUD]. Utilize preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd modelo de artigo no padrão ABNT].
| |
− |
| |
| <!-- | | <!-- |
− | *[http://wiki.sj.ifsc.edu.br/images/a/a5/Sst-intro.pdf Aula inicial]
| + | ==Instalação da VM com Quartus e Modelsim em seu computador== |
− | *[[Introdução aos dispositivos lógicos programáveis]]
| |
− | *[[Introdução à tecnologia FPGA ]]
| |
− | *[[Introdução a linguagem VHDL]]
| |
− | *[[Aritmética com vetores em VDHL]]
| |
| | | |
− | *[[Códigos VDHL - DLP]]
| + | Para importar a VM para o seu computador e configurar ela para acessar a licença do IFSC veja a página [[Teste de VM para uso pelos alunos no ensino remoto#VM Quartus e Modelsim | Instalação da VM com Quartus e Modelsim]] |
− | *[[Códigos VHDL para uso nas Aulas]]
| |
− | *[[Códigos VHDL para uso nas Aulas 2011-1]]
| |
| --> | | --> |
| + | <!-- |
| + | ==Instalar o Quartus II e Modelsim em seu computador== |
| + | A princípio não será necessário que vocês instalem o Quartus II diretamente em suas maquinas, pois podem utilizar a nuvem do IFSC ou então instalar a VM acima. Mesmo assim se alguém preferir instalar o Quartus recomendo que instalem a versão Quartus II Web Edition. |
| | | |
− | ==Atividades extra==
| + | Apesar de existirem versões mais novas usem a versão mais leve 13.1. (https://fpgasoftware.intel.com/13.1/?edition=web). Será necessário apenas baixar e instalar os seguintes arquivos: |
− | ===JÁ ENCERRADAS===
| + | * Quartus II Software (includes Nios II EDS) Size: 1.5 GB MD5: 672AD34728F7173AC8AECFB2C7A10484 |
− | {{collapse top | AE1 - Estudo do tipo de programação dos FPGA (prazo 20/02/2015)}}
| + | * ModelSim-Altera Edition (includes Starter Edition) Size: 817.7 MB MD5: 45FEA341405603F5CF5CD1249BF90976 |
− | *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. | + | * Cyclone III, Cyclone IV device support (includes all variations) Size: 548.4 MB MD5: 79AB3CEBD5C1E64852970277FF1F2716 |
− | {{collapse bottom}}
| |
| | | |
− | {{collapse top | AE2 - Estudo do Quartus II e Dispositivos FPGA (prazo 27/02/2015)}}
| + | * '''Esse vídeo aqui explica os passos do download [https://www.youtube.com/watch?v=4GgZ850h9Lg&feature=youtu.be&t=58 Download e instalação do Quartus Web Edition] |
− | * 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
| + | --> |
− | :P1 - Selecione como Top-Level Entity o arquivo '''adder_4bits.vhd''' e compile esse código [Processing > Start Compilation].
| |
− | :*Anote o número de Elementos Lógicos (ou ALUTs) utilizados [Compilation Report > Flow Summary]. | |
− | :*Verifique qual é o maior tempo de propagação entre as entradas a,b e saida sum [Compilation Report > TimeQuest ... > Datasheet Report > Propagation Delay].
| |
− | :*Verifique o código RTL gerado [Tools > Netlist Viewers > RTL Viewer]
| |
− | :*Verifique como o circuito foi sintetizado abrindo o [Chip Planner], e após dar um zoom no Elemento lógico (ou ALUT) utilizado verifique o hardware que foi utilizado com o [Resource Property Editor]
| |
− | :*Faça a simulação funcional utilizando o arquivo '''tb_adder_4bits.vwf''' no QSIM, e verifique se as somas estão corretas.
| |
− | :P2 - Selecione como Top-Level Entity o arquivo '''adder_ripple_4bits.bdf''' e compile esse código [Processing > Start Compilation].
| |
− | :* Repita os passos do procedimento P1.
| |
− | :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.
| |
− | * 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 EP3SE50F484C2
| + | ==Recursos de Laboratório== |
− | ::[[Arquivo:Adder_4bits_EP3SE50F484C2.png | 800 px]]
| + | Nos laboratórios do IFSC, os softwares '''Quartus''' e '''Modelsim''' estão disponíveis diretamente na plataforma LINUX. O laboratório também dispõe de diversos kits FPGA que podem ser programados para testar os sistemas implementados. |
| | | |
− | :*Riple Adder de 4bits em EP3SE50F484C2
| + | ==Acesso a Nuvem do IFSC== |
− | ::[[Arquivo:Riple_Adder_4bits_EP3SE50F484C2.png | 800 px]]
| + | Para uso fora do IFSC dos recursos computacionais com licença educacional, o IFSC disponibiliza para seus alunos o IFSC-CLOUD (nuvem.sj.ifsc.edu.br). A forma mais eficiente de acesso a nuvem de fora do IFSC é através do Cliente X2GO, mas dentro da rede do IFSC o acesso pelo ssh também tem boa usabilidade. Veja detalhes em [[Acesso ao IFSC-CLOUD (NUVEM)]]. |
− | {{collapse bottom}}
| |
| | | |
− | {{collapse top | AE3 - Uso de operadores e tipos de dados (Prazo de entrega 23/03/2015)}}
| + | Para para utilizar o Quartus/Modelsim/QSIM através da Nuvem do IFSC, siga o procedimento de '''[[Acesso_ao_IFSC-CLOUD_(NUVEM)#Procedimento_para_uso_da_nuvem.sj.ifsc.edu.br | configuração do X2Go]]'''. '''Nota:''' O desempenho do Modelsim pode ficar ruim quando acesso da rede externa ao IFSC. |
− | *Para o exercício 4.15 escreva um código VHDL e faça a simulação temporal.
| |
− | *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.
| |
| | | |
− | ::Para facilitar os testes e a troca de informações entre as equipes, a ENTITY deverá ter o seguinte formato:
| + | <!-- |
− | <syntaxhighlight lang=vhdl>
| + | ==Modelos para relatório== |
− | entity bin2bcd is
| + | Para a geração de documentação/relatórios técnicos/artigos, use como base o modelo ABNTex2 para o padrão do IFSC para monografia que segue as normas da ABNT e do IFSC. |
− | port (
| + | Recomendo que os alunos da Engenharia de Telecomunicações utilizem esse modelo e o [https://www.overleaf.com Overleafv2], pois além de possibilitar o compartilhamento do documento entre os alunos, reduz o tempo perdido na formação do documento, permitindo que o aluno já aprenda alguma formatação de Latex que será útil na elaboração do TCC. |
− | num_bin : in std_logic_vector(9 downto 0);
| + | *[https://www.overleaf.com/read/dbjkqgsghfbk Modelo para relatório em LaTex] |
− | 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 importantes (mais consultados)== |
− | </syntaxhighlight>
| + | *[[Aritmética com vetores em VDHL]] |
− | {{collapse bottom}}
| + | *[[Preparando para gravar o circuito lógico no FPGA]] |
− | | + | *[[Criação de um acesso remoto ao kit MERCURIO IV]] |
− | {{collapse top | AE4 - Uso de código concorrente - ALU multiplicadora (Prazo de entrega 01/04/2015)}}
| + | *[[Dicas de como eliminar o repique das chaves mecânicas]] |
− | *A Unidade de Lógica e Aritmética deve ter as seguintes funções:
| + | *[[Medição de tempos de propagação em circuitos combinacionais]] |
− | ;Unidade Lógica:
| + | *[[Restringir a frequencia máxima de clock no Quartus II]] |
− | {| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
| + | *[[Acesso ao IFSC-CLOUD (NUVEM)]] |
− | ! scope="col" width=20% align="center"| Instrução
| + | *[[Linguagem_.dot#Como_gerar_o_diagrama_de_uma_maquina_de_estados_finita_em_linguagem_dot |Gerar o diagrama de uma maquina de estados finita em linguagem dot]] |
− | ! scope="col" width=20% align="center"| Operação
| + | *[[Mensagens de Erros e Warnings do Quartus II]] |
− | ! scope="col" width=20% align="center"| opcode
| |
− | |-
| |
− | | Complemento de A || y = not A || 0000
| |
− | |-
| |
− | | Complemento de B || y = not B || 0001
| |
− | |-
| |
− | | And || y = A and B || 0010
| |
− | |-
| |
− | | Nand || y = A nand B || 0011
| |
− | |-
| |
− | | Or || y = A or B || 0100
| |
− | |-
| |
− | | Nor || y = A nor B || 0101
| |
− | |-
| |
− | | Xor || y = A xor B || 0110
| |
− | |-
| |
− | | Xnor || y = A xnor B || 0111
| |
− | |}
| |
− | | |
− | ;Unidade Aritmética:
| |
− | {| class="wikitable" border="1" cellpadding="3" cellspacing="0" style="text-align:left; font-size:100%" bgcolor="#efefef"
| |
− | ! scope="col" width=20% align="center"| Instrução
| |
− | ! scope="col" width=20% align="center"| Operação
| |
− | ! scope="col" width=20% align="center"| opcode
| |
− | |-
| |
− | | Transfere A || y = A || 1000
| |
− | |-
| |
− | | Transfere B || y = B || 1001
| |
− | |-
| |
− | | Incrementa A || y = A + 1 || 1010
| |
− | |-
| |
− | | Decrementa A || y = A - 1 || 1011
| |
− | |-
| |
− | | Soma A e B|| y = A + B || 1100
| |
− | |-
| |
− | | Subtrai B de A|| y = A - B || 1101
| |
− | |-
| |
− | | Multiplica A e B || y = A * B || 1110
| |
− | |-
| |
− | | Dobra o valor A || y = A * 2 || 1111
| |
− | |}
| |
− | :* As operações aritméticas devem considerar apenas números positivos.
| |
− | :* Indique a validade do resultado com o bit '''valid'''. Válido => '''valid''' = '1', Inválido => '''valid''' = '0'.
| |
− | * A ENTITY deverá ter a seguinte interface:
| |
− | <syntaxhighlight lang=matlab>
| |
− | ENTITY alu IS
| |
− | GENERIC (N: INTEGER := 4); --word bits
| |
− | PORT (
| |
− | a, b: IN STD_LOGIC_VECTOR(N-1 DOWNTO 0);
| |
− | opcode: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
| |
− | valid: out STD_LOGIC;
| |
− | y: OUT STD_LOGIC_VECTOR(2*N-1 DOWNTO 0));
| |
− | END ENTITY;
| |
− | </syntaxhighlight>
| |
− | * Proponha uma ARCHITECTURE que implemente a ALU (Dica: utilize o tipo de dado tipo '''integer''').
| |
− | * Anote o número de Elementos Lógicos (ou ALUTs) utilizados [Compilation Report > Flow Summary].
| |
− | * Verifique qual é o maior tempo de propagação entre as entradas a,b e saida sum [Compilation Report > TimeQuest ... > Datasheet Report > Propagation Delay]. | |
− | * Verifique o código RTL gerado [Tools > Netlist Viewers > RTL Viewer]
| |
− | * Faça a simulação funcional e temporal no QSIM, e verifique se as operações estão corretas.
| |
− | * Análise os resultados obtidos considerando as entradas com 4 bits e também com 8 bits.
| |
− | {{collapse bottom}}
| |
− | | |
− | {{collapse top | AE5 - Circuitos Genéricos com código estrutural (Prazo de entrega 04/05/2015)}}
| |
− | * Projete os três circuitos a seguir, utilizando: i) código estrutural; ii) componentes genéricos conforme indicado:
| |
− | :# Somador do tipo carry-ripple de N bits (componente: '''Full Adder''').
| |
− | :# Contador Assíncrono de módulo <math>2^N</math> (componente: '''Divisor por 2''').
| |
− | :# Contador Síncronos de módulo <math>2^N</math> (componente: '''Módulo mostrado na figura 8.9''' de <ref name="PEDRONI2010b"/>).
| |
− | * Teste cada componente separadamente e utilize-o para criar os circuito acima.
| |
− | * Implemente cada circuito acima utilizando 3 bits e também 32 bits. | |
− | * Verifique o código RTL gerado [Tools > Netlist Viewers > RTL Viewer].
| |
− | * Anote o número de Elementos Lógicos (ou ALUTs) utilizados [Compilation Report > Flow Summary].
| |
− | * Verifique qual é o maior tempo de propagação entre as entradas de cada circuito e as saídas [Compilation Report > TimeQuest ... > Datasheet Report > Propagation Delay].
| |
− | * Faça a simulação funcional e temporal no QSIM, e verifique se os circuitos estão funcionando corretamente.
| |
− | * Análise os resultados obtidos.
| |
− | * De um título coerente ao artigo e faça um resumo e introdução que esteja relacionado aos resultados que você deseja analisar.
| |
− | * Escreva um relatório na forma de artigo, utilizando preferencialmente o [http://200.135.233.26:3000/project/54750cb57ae8187440d60acd modelo de artigo no padrão ABNT], disponível no ShareLaTeX do IFSC-CLOUD. | |
− | * Faça um resumo e introdução que esteja relacionado aos resultados que você deseja analisar. | |
− | * De um título coerente ao artigo. Seja criativo...
| |
− | * Imagens muito grandes deverão ser acrescidas ao artigo na forma de apêndice (preferencialmente use a wiki com um hiperlink no artigo).
| |
− | {{collapse bottom}}
| |
− | | |
− | ===ESTUDOS LIVRES (DE DOCUMENTAÇÃO)===
| |
− | {{collapse top | EL1 - 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.
| |
− | | |
− | <code>
| |
− | ----------------------------------------------------
| |
− | LIBRARY ieee;
| |
− | USE _________________________;
| |
− | ----------------------------------------------------
| |
− | ENTITY mux IS
| |
− | PORT (___, ___: ___ STD_LOGIC_VECTOR(7 DOWNTO 0);
| |
− | sel: IN ____________________________;
| |
− | ___: OUT STD_LOGIC_VECTOR(__ DOWNTO 0));
| |
− | END _____;
| |
− | ----------------------------------------------------
| |
− | ARCHITECTURE example OF _____ IS
| |
− | BEGIN
| |
− | PROCESS (a, b, ____)
| |
− | BEGIN
| |
− | IF (sel="00") THEN
| |
− | x <= "00000000";
| |
− | ELSIF (__________) THEN
| |
− | x <= a;
| |
− | _____ (sel="10") THEN
| |
− | x <= __;
| |
− | ELSE
| |
− | x <= "___________";
| |
− | END ___;
| |
− | END __________;
| |
− | END __________;
| |
− | ----------------------------------------------------
| |
− | </syntaxhighlight>
| |
− | {{collapse bottom}}
| |
− | | |
− | {{collapse top | EL2 - Estudo dos atributos em VDHL}}
| |
− | <syntaxhighlight lang=vhdl>
| |
− | 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;
| |
− | </syntaxhighlight>
| |
− | {{collapse bottom}}
| |
− | | |
− | {{collapse top | EL3 - Resolução dos exercícios do Cap 3}}
| |
− | *Resolva os exercícios da capítulo 3 (1, 2, 9, 11-13, 18-20, 23-30) pag. 81 a 89 | |
− | {{collapse bottom}}
| |
− | | |
− | {{collapse top | EL4 - Resolução dos exercícios do Cap 4}}
| |
− | *Resolva os exercícios da capítulo 4 (4-11, 13, 15-17 ) pag. 115 a 120
| |
− | {{collapse bottom}}
| |
− | | |
− | {{collapse top | EL5 - Resolução dos exercícios do Cap 5}}
| |
− | *Resolva os exercícios da capítulo 5 (1, 3, 4, 6-11, 14-19) pag. 144 a 150
| |
− | {{collapse bottom}}
| |
− | | |
− | {{collapse top | EL6 - Projetar Conversor de binário para 7 segmentos}}
| |
− | Projetar em VHDL dois conversores de binário para 7 segmentos a) usando código concorrente (SELECT) e b) usando código sequencial (CASE).
| |
− | :*Considerar a saída do conversor com lógica positiva (ativo = '1').
| |
− | :*Simular o circuito com valores de entrada entre 0 = "0000" até 15 = "1111". Para entradas de 0-9 devem ser mostrados os valores decimais no display. Para entradas de 10 a 14 é indiferente o valor a ser mostrado. Para o valor 15 deve ser ativado apenas o segmento g
| |
− | :*Conferir se as saídas estão corretas para cada uma das entrada. Dica: leia [[Display de 7 segmentos]].
| |
− | <syntaxhighlight lang=vhdl>
| |
− | ENTITY ssd IS
| |
− | PORT (
| |
− | bin: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
| |
− | ssd: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
| |
− | );
| |
− | END ENTITY;
| |
− | </syntaxhighlight>
| |
− | {{collapse bottom}}
| |
− | | |
− | {{collapse top | EL7 - Projetar Conversor de hexadecimal para 7 segmentos}}
| |
− | *Projetar em VHDL conversores de hexadecimal para 7 segmentos, usando:
| |
− | :(a) Uma '''architecture''' em código concorrente (SELECT) .
| |
− | :(b) Uma '''architecture''' em código sequencial (CASE).
| |
− | :(c) Instanciando uma '''component''' usando a '''entity''' de (a) ou de (b).
| |
− | :(d) Uma '''function''' ssd <= hex2ssd_f(hex);
| |
− | :(e) Uma '''procedure''' hex2ssd_p(hex, ssd);
| |
− | Use como top-entity:
| |
− | <syntaxhighlight lang=vhdl>
| |
− | ENTITY hex2ssd IS
| |
− | PORT (
| |
− | hex: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
| |
− | ssd: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
| |
− | );
| |
− | END ENTITY;
| |
− | </syntaxhighlight>
| |
− | *Considere a saída do conversor com lógica negativa (ativo = '0'). | |
− | *Simule todas as 5 opções de circuito usando sempre o mesmo ''Test Bench'', variando os valores da entrada '''hex''' entre 0 = "0000" até 15 = "1111". Para entradas de 0 a 9 devem ser mostrados os valores decimais no display. Para entradas de 10 a 15 devem ser mostrados as letras A,b,C,d, E, F.
| |
− | *Conferir se as saídas estão corretas para cada uma das entrada. Dica: leia [[Display de 7 segmentos]].
| |
− | {{collapse bottom}}
| |
− | | |
− | {{collapse top | EL8 - Projetar um relógio de 24 horas}}
| |
− | *Projetar em VHDL um relógio de 24 horas com saida em 6 displays de 7 segmentos. | |
− | *A interface externa do relógio deve ser:
| |
− | <syntaxhighlight lang=vhdl>
| |
− | entity relogio_HHMMSS is
| |
− | port
| |
− | (
| |
− | rst : in std_logic; -- Reset assincrono do relogio
| |
− | clk_1seg : in std_logic; -- Sinal de clock com periodo de 1 segundo
| |
− | SS_U, SS_D : out std_logic_vector(6 downto 0); -- Saida ssd de Unidade e Dezena de Segundo
| |
− | MM_U, MM_D : out std_logic_vector(6 downto 0); -- Saida ssd de Unidade e Dezena de Minuto
| |
− | HH_U, HH_D : out std_logic_vector(6 downto 0) -- Saida ssd de Unidade e Dezena de Hora
| |
− | );
| |
− | end entity;
| |
− | | |
− | </syntaxhighlight>
| |
− | *O projeto deverá utilizar o componente (ou função (ou procedure)) do circuito he2ssd projetado no EL7.
| |
− | {{collapse bottom}}
| |
− | | |
− | {{collapse top | expand=1 | EL9 - Resolução dos exercícios do Cap 6, 8 e 9}}
| |
− | *Resolva os exercícios da capítulo 6 (1-7, 9*, 10-11, 12*, 13*, 14) pag. 172 a 176.
| |
− | *Resolva os exercícios da capítulo 8 (1-7, 9*) pag. 219 a 220.
| |
− | *Resolva os exercícios da capítulo 9 (1-3, 6-9) pag. 238 a 239.
| |
− | {{collapse bottom}}
| |
− | | |
− | ===PARA ENTREGAR===
| |
− | {{collapse top | expand = 1| AE6 - Em Breve (Prazo de entrega 01/06/2015)}}
| |
− | {{collapse bottom}}
| |
| | | |
| ==Links auxiliares== | | ==Links auxiliares== |
− | *[[Aritmética com vetores em VDHL]] | + | *[[Media:Quartus_II_Simulation.pdf | Tutorial do QSIM - Introduction to Simulation of VHDL Designs]] da ALTERA. |
− | *[[Preparando para gravar o circuito lógico no FPGA]] | + | *[[Palavras reservadas do VHDL]] |
| + | *[http://web.archive.org/web/20160313200350/http://vhdl.org/fphdl/index.html VHDL-2008 Support Library] |
| + | *[[Dicas para resolver ERROS de síntese do VHDL no Quartus II]] |
| + | *[ftp://ftp.altera.com/up/pub/Altera_Material/13.1/Tutorials/VHDL/ Materiais da ALTERA para Quartus II 13.1] |
| *[[Modelo para uso em relatórios]] | | *[[Modelo para uso em relatórios]] |
| *[[Configuração e uso do Time Quest Analyser]] | | *[[Configuração e uso do Time Quest Analyser]] |
| + | *[[Configuração e uso do Signal Tap]] |
| + | *[http://docente.ifsc.edu.br/moecke/PAGES/Dec2C_2.html Calculadora de Complemento de 2] |
| + | *[[Como utilizar a matriz de leds do kit Mercurio IV da Macnica]] |
| + | *[http://g2384.github.io/work/VHDLformatter.html VHDL Beautifier, Formatter] - para identar automaticamente um código VHDL. |
| + | *[https://www.youtube.com/watch?v=08YHxtSI3Bk How to create a State Machine with the Quartus State Machine Wizard] |
| + | *[https://trends.google.com.br/trends/explore?date=today%205-y&q=vhdl,verilog Veja qual é a tendencia mundial em relação as linguagens HDL] |
| + | *[https://www.intel.com/content/www/us/en/programmable/documentation/spj1513986956763.html Intel Quartus Prime Pro Edition User Guide: Getting Started] |
| + | *[https://www.h-schmidt.net/FloatConverter/IEEE754.html IEEE 754 - Floating point number] |
| + | *[https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/an/an447.pdf AN 447: Interfacing Intel® FPGA Devices with 3.3/3.0/2.5 V LVTTL/LVCMOS I/O Systems] |
| | | |
| ==Livros/Resumos sobre VHDL== | | ==Livros/Resumos sobre VHDL== |
| + | *[[Regras de codificação em VHDL]] |
| *[[Media:VHDL_Handbook-Hardi.pdf | VHDL Handbook]] - Hardi (apenas VHDL’87 e VHDL’93) | | *[[Media:VHDL_Handbook-Hardi.pdf | VHDL Handbook]] - Hardi (apenas VHDL’87 e VHDL’93) |
| + | *[http://www.synthworks.com/papers/vhdl_math_tricks_mapld_2003.pdf VHDL Math Tricks of the Trade] by Jim Lewis |
| *[[Media:VHDL_QRC-Qualis.pdf | VHDL QUICK REFERENCE CARD]] - Qualis (r2.1) | | *[[Media:VHDL_QRC-Qualis.pdf | VHDL QUICK REFERENCE CARD]] - Qualis (r2.1) |
| *[[Media:VHDL1164_QRC-Qualis.pdf | VHDL 1164 PACKAGES QUICK REFERENCE CARD]] - Qualis (r2.2) | | *[[Media:VHDL1164_QRC-Qualis.pdf | VHDL 1164 PACKAGES QUICK REFERENCE CARD]] - Qualis (r2.2) |
| + | *[http://www.ics.uci.edu/~jmoorkan/vhdlref/ VDHL ref] |
| + | *[http://www.vhdl.renerta.com/source/vhd00000.htm VHDL Language Reference Guide] |
| + | *[http://www.ics.uci.edu/~jmoorkan/vhdlref/vhdl_golden_reference_guide.pdf VHDL Golden Reference Guide] |
| *[http://www.cs.umbc.edu/portal/help/VHDL/stdpkg.html Listagem dos packages] | | *[http://www.cs.umbc.edu/portal/help/VHDL/stdpkg.html Listagem dos packages] |
| *[http://www.cs.umbc.edu/portal/help/VHDL/reserved.html Palavras reservadas] | | *[http://www.cs.umbc.edu/portal/help/VHDL/reserved.html Palavras reservadas] |
| *[http://www.csee.umbc.edu/portal/help/VHDL/attribute.html Atributos predefinidos] | | *[http://www.csee.umbc.edu/portal/help/VHDL/attribute.html Atributos predefinidos] |
| + | *[https://blog.ufes.br/sistemasembarcados/files/2015/03/aritmetica-em-vhdl.pdf Aritmética em VHDL] |
| + | *[https://wiki.kip.uni-heidelberg.de/KIPwiki/images/d/d7/VHDL_Language_Reference_Guide_(help_file).pdf VHDL Language Reference Guide] |
| + | |
| + | ==Packages não padronizados de VHDL== |
| + | *[[Std logic arith.vhd]] by Synopsys |
| + | *[http://eda.org/rassp/vhdl/models/standards/std_logic_arith.vhd std_logic_arith.vhd] by Synopsys |
| + | *[http://www.pldworld.com/_hdl/1/VHDL_courses/cse518/std_logic_arith_header.vhdl std_logic_arith.vhd] by Mentor Graphics |
| + | *[http://www.csee.umbc.edu/portal/help/VHDL/packages/cpureieee/std_logic_arith.vhd std_logic_arith.vhd] by Vinaya |
| + | |
| + | *[[Std logic unsigned.vdh]] by Synopsys |
| + | *[http://eda.org/rassp/vhdl/models/standards/std_logic_unsigned.vhd std_logic_unsigned.vhd] by Synopsys |
| + | |
| + | ==Quartus II== |
| + | *[https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/manual/TclScriptRefMnl.pdf Quartus II Scripting Reference Manual], ver como programar o FPGA sem interface gráfica com quartus_pgm |
| + | *[[Como instalar o Quartus no Ubuntu 20.04]] |
| + | *[https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/qts/archives/quartusii_handbook_archive_131.pdf Quartus II Handbook Version 13.1] |
| | | |
| ==Simulador Modelsim== | | ==Simulador Modelsim== |
Linha 636: |
Linha 114: |
| *[http://www.atmel.com/products/other/spld-cpld/default.aspx Atmel] | | *[http://www.atmel.com/products/other/spld-cpld/default.aspx Atmel] |
| *[http://www.achronix.com/products/speedster22ihd.html Achronix] | | *[http://www.achronix.com/products/speedster22ihd.html Achronix] |
− | *[http://www.tabula.com/index.php Tabula] | + | *[https://en.wikipedia.org/wiki/Tabula_%28company%29 Tabula], [https://www.quora.com/Who-killed-the-FPGA-startup-Tabula-semiconductor Who killed the FPGA startup Tabula semiconductor?] |
| *[http://sourcetech411.com/2013/04/top-fpga-companies-for-2013/ Market share 2013] | | *[http://sourcetech411.com/2013/04/top-fpga-companies-for-2013/ Market share 2013] |
| + | *[http://marketrealist.com/2015/06/intel-keen-alteras-fpga-technology/ INTEL] |
| + | |
| + | ==Fabricantes de kits com DLPS== |
| + | *[http://www.macnicadhw.com.br/products/mercurion-4-devkit-board MACNICA] |
| + | *[http://www.terasic.com.tw/cgi-bin/page/archive.pl?Language=English&CategoryNo=163#Category165 TERASIC] |
| + | |
| + | ==Leituras recomendadas== |
| + | *[http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/20070019291.pdf USE OF FIELD PROGRAMMABLE GATE ARRAY TECHNOLOGY IN FUTURE: SPACE AVIONICS], Roscoe C. Ferguson, Robert Tate, NASA. |
| + | *[https://www.altera.com/content/dam/altera-www/global/en_US/pdfs/literature/wp/wp-01199-next-generation-fpgas.pdf Expect a Breakthrough Advantage in NextGeneration FPGAs], Stephen Lim, ALTERA. |
| + | *[https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Catapult_ISCA_2014.pdf A Reconfigurable Fabric for Accelerating Large-Scale Datacenter Services], Microsoft. |
| | | |
− | <!--
| |
| ===Linguagens de programação de hardware=== | | ===Linguagens de programação de hardware=== |
| *[http://trends.google.com/trends/explore#q=vhdl,verilog Tendência Google] | | *[http://trends.google.com/trends/explore#q=vhdl,verilog Tendência Google] |
Linha 674: |
Linha 161: |
| *Motorola | | *Motorola |
| *[http://www.analog.com/en/embedded-processing-dsp/processors/index.html Analog Devices] | | *[http://www.analog.com/en/embedded-processing-dsp/processors/index.html Analog Devices] |
− | -->
| |
| | | |
| ==Padrões IEEE para o VDHL== | | ==Padrões IEEE para o VDHL== |
− | Os padrões IEEE [http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/standards.jsp?item=0%20-%2099&sortType=standard_newest&pageNumber=1]estão disponíveis para consulta se você estiver na rede do IFSC. Para a linguagem VHDL consulte os padrões: [http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/search/searchresult.jsp?action=search&sortType=&rowsPerPage=&searchField=Search_All&matchBoolean=true&queryText=(%22Standard%20Number%22:1164) 1164],[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/search/searchresult.jsp?action=search&sortType=&rowsPerPage=&searchField=Search_All&matchBoolean=true&queryText=(%22Standard%20Number%22:1076)&refinements=4294967269 1076] | + | Os padrões IEEE [http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/standards.jsp?item=0%20-%2099&sortType=standard_newest&pageNumber=1]estão disponíveis para consulta se você estiver na rede do IFSC ou através do '''Periódicos CAPES via CAFE'''. Para a linguagem VHDL consulte os padrões de [https://ieeexplore-ieee-org.ez130.periodicos.capes.gov.br/browse/standards/collection/ieee?queryText=VHDL) VHDL] |
− | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=257627 IEEE Standard Multivalue Logic System for VHDL Model Interoperability (Std_logic_1164)]
| + | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/articleDetails.jsp?arnumber=257627&newsearch=true&queryText=IEEE%20Standard%20Multivalue%20Logic%20System%20for%20VHDL%20Model%20Interoperability%20.LB.Std_logic_1164.RB. IEEE Standard Multivalue Logic System for VHDL Model Interoperability (Std_logic_1164)] |
− | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=1405848 IEEE Std 1076.1: Behavioural languages – Part 1-1: VHDL language reference manual] [http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=5981354 REDLINE] | + | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/xpl/articleDetails.jsp?arnumber=5967868&newsearch=true&queryText=IEEE%20Std%201076.1:%20Behavioural%20languages%20%E2%80%93%20Part%201-1:%20VHDL%20language%20reference%20manual IEEE Std 1076.1: Behavioural languages – Part 1-1: VHDL language reference manual] |
| *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=5464492 IEEE Std 1076.1: Behavioural languages – Part 6: VHDL Analog and Mixed-Signal Extensions] | | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=5464492 IEEE Std 1076.1: Behavioural languages – Part 6: VHDL Analog and Mixed-Signal Extensions] |
| *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=5752649 IEEE Std 1076.1.1™-2011 - IEEE Standard for VHDL Analog and Mixed-Signal Extensions—Packages for Multiple Energy Domain Support], [http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=5953447 REDLINE] | | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=5752649 IEEE Std 1076.1.1™-2011 - IEEE Standard for VHDL Analog and Mixed-Signal Extensions—Packages for Multiple Energy Domain Support], [http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=5953447 REDLINE] |
Linha 685: |
Linha 171: |
| *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=4384309 IEEE Standard VHDL Analog and Mixed-Signal Extensions] | | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=4384309 IEEE Standard VHDL Analog and Mixed-Signal Extensions] |
| *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=592543 IEEE Standard VHDL Synthesis Packages] | | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=592543 IEEE Standard VHDL Synthesis Packages] |
− | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=1003477 IEEE Std 1076-2002: IEEE Standard VHDL Language Reference Manual] | + | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=1003477 IEEE Std 1076-2002: IEEE Standard VHDL Language Reference Manual], ver mais rescentes [IEEE 1076-2008 - IEEE Standard VHDL Language Reference Manual] e [IEEE 1076-2019 - IEEE Standard for VHDL Language Reference Manual] |
| *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=556551 IEEE Std 1076.2-1996: IEEE Standard VHDL Mathematical Packages] | | *[http://ieeexplore.ieee.org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=556551 IEEE Std 1076.2-1996: IEEE Standard VHDL Mathematical Packages] |
| + | ;Packages da IEEE: |
| + | *[[Std logic 1164.vhd]] |
| + | *[[Numeric std.vhd]] |
| + | --> |
| + | |
| + | ==Registro Diário e Avaliação Anteriores== |
| + | [https://wiki.sj.ifsc.edu.br/index.php?title=DLP29006-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke&oldid=188893 2023-1], [https://wiki.sj.ifsc.edu.br/index.php?title=DLP29006-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke&oldid=186913 2022-2], |
| + | [https://wiki.sj.ifsc.edu.br/index.php?title=DLP29006-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke&oldid=184068 2022-1], |
| + | [https://wiki.sj.ifsc.edu.br/index.php?title=DLP29006-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke&oldid=182146 2021-2], |
| + | [[DLP29006-Engtelecom(2021-1) - Prof. Marcos Moecke | 2021-1]], |
| + | [[DLP29006-Engtelecom(2020-2) - Prof. Marcos Moecke | 2020-2]], |
| + | [[DLP29006-Engtelecom(2020-1) - Prof. Marcos Moecke | 2020-1]], |
| + | [[DLP29006-Engtelecom(2019-2) - Prof. Marcos Moecke | 2019-2]], |
| + | [[DLP29006-Engtelecom(2019-1) - Prof. Marcos Moecke | 2019-1]], |
| + | [[DLP29006-Engtelecom(2018-2) - Prof. Marcos Moecke | 2018-2]], |
| + | [[DLP29006-Engtelecom(2018-1) - Prof. Marcos Moecke | 2018-1]], |
| + | [[DLP29006-Engtelecom(2017-2) - Prof. Marcos Moecke | 2017-2]], |
| + | [[DLP29006-Engtelecom(2017-1) - Prof. Marcos Moecke | 2017-1]], |
| + | [[DLP29006-Engtelecom(2016-2) - Prof. Marcos Moecke | 2016-2]], |
| + | [[DLP29006-Engtelecom(2016-1) - Prof. Marcos Moecke | 2016-1]], |
| + | [[DLP29006-Engtelecom(2015-2) - Prof. Marcos Moecke | 2015-2]], |
| + | [[DLP29006-Engtelecom(2015-1) - Prof. Marcos Moecke | 2015-1]]. |
| | | |
| ==Referências Bibliográficas:== | | ==Referências Bibliográficas:== |