Mudanças entre as edições de "DLP29006-Engtelecom(2018-1) - Prof. Marcos Moecke"
Ir para navegação
Ir para pesquisar
Linha 163: | Linha 163: | ||
::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 '''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. | ::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. | ||
:::<syntaxhighlight lang=vhdl> | :::<syntaxhighlight lang=vhdl> | ||
+ | -- NAO É NECESSARIO DECLARAR | ||
library std; | library std; | ||
use std.standard.all; | use std.standard.all; | ||
use std.textio.all; | use std.textio.all; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | *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 | ||
:*Library '''ieee''' | :*Library '''ieee''' | ||
Linha 174: | Linha 178: | ||
:: 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_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_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 | + | :: 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'''. | ||
+ | :::<syntaxhighlight lang=vhdl> | ||
+ | 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; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *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): | ;Aula 6 (2 mar): | ||
* Introdução ao VHDL e ambienta EDA - QUARTUS | * Introdução ao VHDL e ambienta EDA - QUARTUS |
Edição das 18h23min de 1 de março de 2018
MURAL DE AVISOS E OPORTUNIDADES DA ÁREA DE TELECOMUNICAÇÕES
Registro on-line das aulas
Unidade 2 - Introdução ao VHDL e ambienta EDA - QUARTUS |
---|
Unidade 2 - Introdução ao VHDL e ambienta EDA - QUARTUS
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];
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;
-- 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;
ls /opt/altera/13.0sp1/quartus/libraries/vhdl/std
ls /opt/altera/13.0sp1/quartus/libraries/vhdl/ieee
ls /opt/altera/13.0sp1/quartus/libraries/vhdl/mentor/arithmetic (Mentor Graphics) ls /opt/altera/13.0sp1/quartus/libraries/vhdl/synopsys/ieee (Synopsys)
ls /opt/altera/16.0/quartus/libraries/vhdl/ieee/2008 ATUAL
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.
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;
|
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: