Mudanças entre as edições de "DLP1-EngTel (página)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 182: Linha 182:
  
 
:*Ver pag. 161 a 171 de <ref name="PEDRONI2010b"/>
 
:*Ver pag. 161 a 171 de <ref name="PEDRONI2010b"/>
 +
 +
;Aula XX (10 abr):
 +
*Avaliação da Unidade 1 a 4.
 +
 +
===Unidade 6===
 +
;Aula XX ():
 +
*Projeto a nível de Sistema.
 +
:* O '''PACKAGE''' e '''PACKAGE BODY''': onde declarar e como usar.
 +
 +
;Aula XX ():
 +
*Projeto a nível de Sistema.
 +
:* O '''COMPONENT''':  declaração (cópia da '''ENTITY''') e instanciação.
 +
::* Associação dos nomes das portas aos sinais. PORT -> '''PORT MAP''':
 +
::* Criação de compomentes redimensionáveis.  GENERIC -> '''GENERIC MAP'''
 +
::* Mapeamento por posição e nominal.
 +
:* Ver pag. 201 a 205 de <ref name="PEDRONI2010b"/>
 +
 +
;Aula XX ():
 +
*Projeto a nível de Sistema.
 +
:* Métodos de declaração de '''COMPONET'''.
 +
::*Exemplo: Registrador Circular Ex. 8.2
 +
:* Ver pag. 205 a 208 de <ref name="PEDRONI2010b"/>
 +
 +
;Aula XX ():
 +
*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 XX ():
 +
*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'''.
 +
:* Ver exercício proposto na AE5.
 +
:* Ver pag. 213 a 213 de <ref name="PEDRONI2010b"/>
 +
 +
;Aula XX (17 abr):
 +
*Projeto a nível de Sistema.
 +
:* A instrução '''ASSERT''' condicional e incondicional
 +
:* A '''FUNCTION''': declaração, uso, mapeamento posicional x nominal, PURE x IMPURE. 
 +
:* Ver pag. 221 a 226 de <ref name="PEDRONI2010b"/>)
 +
 +
;Aula XX (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"/>
  
 
==Recursos de Laboratório==
 
==Recursos de Laboratório==

Edição das 15h18min de 22 de abril 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)
  1. Dispositivos lógicos programáveis.
  2. Bases da linguagem VHDL.
  3. Tipos de dados, libraries, conversão de tipos, operadores, atributos.
  4. Código VHDL concorrente e sequencial.
  5. Projeto hierárquico.
  6. Simulação e Testbench
  7. Maquina de estado finita (FSM).
  8. Projeto Final de circuitos lógicos.
  9. 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]
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 [2]
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 [2]
Aula XX (10 abr)
  • Avaliação da Unidade 1 a 4.

Unidade 6

Aula XX ()
  • Projeto a nível de Sistema.
  • O PACKAGE e PACKAGE BODY: onde declarar e como usar.
Aula XX ()
  • Projeto a nível de Sistema.
  • O COMPONENT: declaração (cópia da ENTITY) e instanciação.
  • Associação dos nomes das portas aos sinais. PORT -> PORT MAP:
  • Criação de compomentes redimensionáveis. GENERIC -> GENERIC MAP
  • Mapeamento por posição e nominal.
  • Ver pag. 201 a 205 de [2]
Aula XX ()
  • Projeto a nível de Sistema.
  • Métodos de declaração de COMPONET.
  • Exemplo: Registrador Circular Ex. 8.2
  • Ver pag. 205 a 208 de [2]
Aula XX ()
  • 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 [2]
Aula XX ()
  • 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.
  • Ver exercício proposto na AE5.
  • Ver pag. 213 a 213 de [2]
Aula XX (17 abr)
  • Projeto a nível de Sistema.
  • A instrução ASSERT condicional e incondicional
  • A FUNCTION: declaração, uso, mapeamento posicional x nominal, PURE x IMPURE.
  • Ver pag. 221 a 226 de [2])
Aula XX (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 [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).

Sharelatex

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

AE1 - 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.
AE2 - Estudo do Quartus II e Dispositivos FPGA (prazo 27/02/2015)
  • Utilize no Quartus II o arquivo 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
Adder 4bits EP1C3T100A8.png
  • Adder de 4 bits em EP3SE50F484C2
Adder 4bits EP3SE50F484C2.png
  • Riple Adder de 4bits em EP3SE50F484C2
Riple Adder 4bits EP3SE50F484C2.png
AE3 - 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.
  • 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:
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;
AE4 - Uso de código concorrente - ALU multiplicadora (Prazo de entrega 01/04/2015)
  • A Unidade de Lógica e Aritmética deve ter as seguintes funções:
Unidade Lógica
Instrução Operação 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
Instrução Operação 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:
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;
  • 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.

ESTUDOS SEM ENTREGA DE DOCUMENTAÇÃO

Estrutura do VHDL
  • Faça o exercício 2.1 [2], 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.

----------------------------------------------------
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>

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
  • Resolva os exercícios da capítulo 3 (1, 2, 9, 11-13, 18-20, 23-30) pag. 81 a 89
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
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
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.
ENTITY ssd IS
  PORT (
    bin: IN STD_LOGIC_VECTOR(3 DOWNTO 0);
    ssd: OUT STD_LOGIC_VECTOR(6 DOWNTO 0)
        );
END ENTITY;

PARA ENTREGAR

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:
  1. Somador do tipo carry-ripple de N bits (componente: Full Adder).
  2. Contador Assíncrono de módulo (componente: Divisor por 2).
  3. Contador Síncronos de módulo (componente: Módulo mostrado na figura 8.9 de [2]).
  • 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 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).

Links auxiliares

Livros/Resumos sobre VHDL

Fabricantes de DLPs


Padrões IEEE para o VDHL

Os padrões IEEE [1]estão disponíveis para consulta se você estiver na rede do IFSC. Para a linguagem VHDL consulte os padrões: 1164,1076

Referências Bibliográficas:

  1. 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. 2,00 2,01 2,02 2,03 2,04 2,05 2,06 2,07 2,08 2,09 2,10 2,11 2,12 2,13 2,14 2,15 2,16 2,17 2,18 2,19 2,20 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