De MediaWiki do Campus São José
Ir para navegação
Ir para pesquisar
MURAL DE AVISOS E OPORTUNIDADES DA ÁREA DE TELECOMUNICAÇÕES
Registro on-line das aulas
Unidade 1 - Introdução
|
Unidade 1 - Inicialização
- Aula 1 (16 fev)
- Introdução aos dispositivos lógicos programáveis:
-
- SPLD: PAL, PLA e GAL
- CPLDs
-
- Fabricantes de DLPs/FPGAs e familias de DLPs atuais.
- Aula 2 (19 fev)
-
- Arquitetura de FPGAs (Xilinx e Altera): CLB, LAB, RAM, DSP, Clock, PLL, I/O
- Vizualização no Chip Planner de um projeto. (importante todos alunos terem acesso a IFSC-CLOUD
- Ver pag. 413 a 431 de [1]
- Ver pag. 495 a 501 de de [2]
- Aula 3 (21 fev)
-
- Historia, processo de produção dos chips.
|
Unidade 2 - Introdução ao VHDL e ambienta EDA - QUARTUS
|
Unidade 2 - Introdução ao VHDL e ambienta EDA - QUARTUS
- Aula 4 e 5 (26 e 28 fev)
- Introdução ao VHDL e ambiente EDA - QUARTUS
- Estrutura do código VHDL
- Declaração das bibliotecas e pacotes LIBRARY / PACKAGE
library library_name;
use library_name.package)name.all;
entity entity_name is
[generic (
cons_name1: const_type const_value;
cons_name2: const_type const_value;
...
cons_nameN: const_type const_value);]
[port (
signal_name1: mode signal_type;
signal_name2: mode signal_type;
...
signal_nameN: mode signal_type);]
[declarative_part]
[begin
statement_part]
end [entity] [entity_name];
architecture arch_name of entity_name is
[declarative_part]
begin
statement_part
end [architecture] [arch_name];
- Exemplo - Declaração de uma porta NAND em VHDL
library std;
use std.standard.all;
entity nand_gate is
port (a, b: in bit; x: out bit);
end entity;
architecture nome_arch of nand_gate is
begin
x <= a nand b;
end architecture;
- Exemplo 2.2 (VHDL) - programação de um flip-flop
-- Declaração das bibliotecas e pacotes
LIBRARY ieee;
USE ieee.std_logic_1164.all;
-- Especificação de todas as entradas e saídas do circuito
ENTITY flip_flop IS
PORT (d, clk, rst: IN STD_LOGIC;
q: OUT STD_LOGIC);
END;
-- Descrição de como o circuito deve funcionar
ARCHITECTURE flip_flop OF flip_flop IS
BEGIN
PROCESS (clk, rst)
BEGIN
IF (rst='1') THEN
q <= '0';
ELSIF (clk'EVENT AND clk='1') THEN
q <= d;
END IF;
END PROCESS;
END;
Figura 2.2 - Código RTL do Exemplo 2.2
- Use o Technology Map Viewer para ver a como o circuito foi mapeado para os elementos lógicos disponíveis no dispositivo FPGA selecionado (EP1C3T100A8)
Figura 2.3 - Technology Map do Exemplo 2.2
Figura 2.4 - Chip Planner do Exemplo 2.2
- Uso das bibliotecas no VHDL.
-
- O Package standard: é parte do VHDL desde a primeira versão (1987). Ela contem definição de tipos de dados (BIT, INTEGER, BOOLEAN, CHARACTER, etc.) e seus operadores logicos, aritméticos, de comparação e shift.
- O Package textio fornece os recurso para o tratamento de textos e arquivos, que podem ser utilizados na simulação.
- Como declarar e usar os pacotes da biblioteca std.
- Note que esses pacotes são implicitamente carregados não precisando ser declarados. Ambos pacotes foram expandidos no VHDL 2008.
-- NAO É NECESSARIO DECLARAR
library std;
use std.standard.all;
use std.textio.all;
- Onde estão os arquivos dessa biblioteca na versão Quartus II instalada nos computadores do IFSC e na IFSC_CLOUD?
ls /opt/altera/13.0sp1/quartus/libraries/vhdl/std
-
- O Package std_logic_1164 define os tipos de dados STD_ULOGIC e STD_LOGIC.
- O Package numeric_std define os tipos de dados SIGNED e UNSIGNED e seus operadores considerando o tipo STD_LOGIC como base.
- O Package numeric_bit define os tipos de dados SIGNED e UNSIGNED e seus operadores considerando o tipo BIT como base.
- O Package numeric_std_unsigned introduz operadores sobre o tipo STD_LOGIC_VECTOR, considerando os como números sem sinal.
- O Package numeric_bit_unsigned introduz operadores sobre o tipo BIT_VECTOR, considerando os como números sem sinal.
- O Package fixed_pkg (e pacotes associados) definem os tipos de ponto fixo unsigned (UFIXED) e signed (SFIXED) e seus operadores.
- O Package float_pkg (e pacotes associados) definem o tipo de ponto flutuante (FLOAT) e seus operadores.
- Pacotes não padronizados (NÃO UTILIZAR)
- O Package std_logic_arith define os tipos de dados SIGNED e UNSIGNED e seus operadores. Deve ser sempre substituído por pelo pacote padrão equivalente numeric_std. (disponível da Mentor e Synopsys)
- O Package std_logic_unsigned é semelhante ao numeric_std_unsigned. (disponível da Synopsys)
- O Package std_logic_signed é semelhante ao acima operando sobre números com sinal. (disponível da Synopsys)
- Como declarar e usar os pacotes da biblioteca ieee.
library ieee;
-- UTILIZAR ESTES PACOTES
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;
-- NAO UTILIZAR ESTES PACOTES
use ieee.std_logic_arith.all;
use ieee.std_logic_signed.all;
use ieee.std_logic_unsigned.all;
- Onde estão os arquivos dessa biblioteca na versão Quartus II versão 13.0sp1 instalada nos computadores do IFSC e na IFSC_CLOUD?
- Os pacotes padrão:
ls /opt/altera/13.0sp1/quartus/libraries/vhdl/ieee
- Os pacotes não padrão:
ls /opt/altera/13.0sp1/quartus/libraries/vhdl/mentor/arithmetic (Mentor Graphics)
ls /opt/altera/13.0sp1/quartus/libraries/vhdl/synopsys/ieee (Synopsys)
- Os arquivos dessa biblioteca do padrão (versão 2008) estão apenas disponíveis a partir do Quartus II versão 16.0 instalado na IFSC_CLOUD?
ls /opt/altera/16.0/quartus/libraries/vhdl/ieee/2008
ATUAL
- Aula 6 (2 mar)
- Introdução ao VHDL e ambienta EDA - QUARTUS
- Estrutura do código VHDL
- Modifique o circuito do flip-flop para que ele passe a ter 4 flip-flops, e realize as simulações funcional e temporal do circuito.
Figura 2.5 - RTL 4 FF
Figura 2.6 - Simulação Funcional de 4 FF 100ns
Figura 2.7 - Simulação Temporal de 4 FF 100ns
Note que na simulação funcional a mudança da saída Q ocorre no instante em que ocorre a borda de subida do clock ou no momento do reset. No entanto, no caso da simulação com timing, existe um atraso de ~6ns nestas mudanças.
- Exemplo 2.3 (VHDL e QSIM) - programação de um circuito somador com registrador
- Realizar as simulações funcional e temporal do circuito
- Observar o "Technology Map" e o "RTL" do circuito
LIBRARY ieee;
USE ieee.std_logic_1164.all;
ENTITY registered_comp_add IS
PORT (clk: IN STD_LOGIC;
a, b: IN INTEGER RANGE 0 TO 7;
reg_comp: OUT STD_LOGIC;
reg_sum: OUT INTEGER RANGE 0 TO 15);
END;
ARCHITECTURE circuit OF registered_comp_add IS
SIGNAL comp: STD_LOGIC;
SIGNAL sum: INTEGER RANGE 0 TO 15;
BEGIN
comp <= '1' WHEN a>b ELSE '0';
sum <= a + b;
PROCESS (clk)
BEGIN
IF (clk'EVENT AND clk='1') THEN
reg_comp <= comp;
reg_sum <= sum;
END IF;
END PROCESS;
END;
- Acrescente saídas para o sinal sum e para o sinal comp, de modo a poder observar estes sinais no simulador QSIM e realize novas simulações funcional e temporal.
Figura 2.8 - Código RTL do Exemplo 2.3
- ver Tutorial do QSIM - Introduction to Simulation of VHDL Designs da ALTERA.
- Ver pag. 3 a 24 de [2]
|
Avaliações
- Avaliação A1 - Unidade 2 a 4 (XX/XX/2018) - Local: Lab Redes II.
- Avaliação A2 - Unidade 5 a 7 (XX/XX/2018) - Local: Lab Redes II.
- As avaliações A1 e A2 são com consulta apenas as folhas de consulta entregues VHDL QUICK REFERENCE CARD e VHDL 1164 PACKAGES QUICK REFERENCE CARD, e as tabelas das figuras 3.6, 3.10 e 4.1 do livro do Pedroni. Dica use também como fonte de consulta os templates do Quartus.
- Recuperação R1-2 - Unidade 2 a 7 (XX/XX/2018) - Local: Lab Redes II.
- Ao final das avaliações o aluno deverá enviar a avaliação para a plataforma moodle ou email moecke AT ifsc.edu.br com os arquivos solicitados.
- Entrega dos Atividades Extraclasse ao longo do semestre AE0 a AE(N). A entrega, detalhes e prazos de cada AE serão indicados na plataforma Moodle
ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO
Os exemplos e exercícios essenciais estão destacados em negrito na listagens abaixo.
Referências Bibliográficas:
- ↑ PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657
- ↑ 2,0 2,1 PEDRONI, Volnei A. Circuit Design and Simulation with VHDL; 2ª ed. Massachusetts-EUA:MIT, 2010. 608 p. ISBN 9780262014335
Curso de Engenharia de Telecomunicações