Mudanças entre as edições de "SST20707-2014-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 298: Linha 298:
  
 
[[imagem:decoder-2014-2.png|400px|center]]
 
[[imagem:decoder-2014-2.png|400px|center]]
 +
 +
= 23/09: Correção da Proval =
 +
 +
= 29/04: Introdução ao Código Seqüencial =
 +
 +
* Seqüencial vs. Combinacional
 +
* Exemplo [http://commons.wikimedia.org/wiki/File:R-S.gif Flip-Flop RS]

Edição das 07h53min de 29 de setembro de 2014

Síntese de Sistemas de Telecomunicações: Diário de Aula 2014-2

Cronograma Semestre 2014-2
Aula Data Horas Conteúdo Recursos
1 04/08 2 Apresentação, Histórico, Introdução a PLDs Lab. Prog. – Aula Expositiva
2 05/08 2 Laboratório Fluxo Quartus (Exemplo: porta AND) Computador, Quartus, Kit
3 11/08 2 Exercício Fluxo Quartus (Meio somador) Computador, Quartus, Kit
4 12/08 2 Introdução à Linguagem VHDL (Entity e Architecture) e a placa DE2-115 (Exemplo: Meio Somador) Computador, Quartus, Kit
5 18/08 2 Exercício LCD em VHDL Computador, Quartus, Kit
6 19/08 2 Projeto hierárquico (Components, Port Map e Generic) e Exercício (componente) Computador, Quartus, Kit
7 25/08 2 Cont. Exercício (componente) Computador, Quartus, Kit
8 26/08 2 Código Concorrente (When, Select), Comportamental e Estrutural (Execício Mux 1-bit e 4-bit) Computador, Quartus, Kit
9 01/09 2 Exercício Mux 1-bit e 4-bit (cont.) Computador, Quartus, Kit
10 02/09 2 Exercício (Modificação Componentes) Computador, Quartus, Kit
11 08/09 2 Simulação (TCL), Exercícios (Decode 7-Seg) e Virtual function (TCL) Computador, Quartus, Kit
12 09/09 2 Exercício Decode (cont.) Computador, Quartus, Kit
13 15/09 2 Exercício UPC Computador, Quartus, Kit
14 16/09 2 Exercício UPC Computador, Quartus, Kit
15 22/09 2 1ª Avaliação – Circuitos Combinacionais em VHD e Fluxo de projeto (Implementação, Simulação e Prototipação) Computador, Quartus, Kit
16 23/09 2 Correção da Avaliação Computador, Quartus, Kit
17 29/09 2 Introdução ao Código Seqüencial (Seq. Vs. Comb., Lista de Sensibilidade) Computador, Quartus, Kit
18 30/09 2 Exercícios (Simulação e Implementação de Circuitos Sequenciais): Registrador e UPC com Reg. Computador, Quartus, Kit
19 06/10 2 Conceito de Variável, Variável vs. Sinal e Estruturas de Controle Computador, Quartus, Kit
20 07/10 2 Exercício: Contador até 10 Computador, Quartus, Kit
21 13/10 2 Exercício: Temporizador 60s Computador, Quartus, Kit
22 14/10 2 Introdução a FSM (1, 2 e 3 processos) e Exemplo (implementação e simulação) Computador, Quartus, Kit
23 20/10 2 Exercícios FSM (contador ASCII) Computador, Quartus, Kit
24 21/10 2 Exercícios FSM (contador ASCII) Computador, Quartus, Kit
28/10 NÃO HAVERÁ AULA: Dia do Servidor Público
25 03/11 2 Exercício UPC FSM Computador, Quartus, Kit
26 04/11 2 Exercício UPC FSM Computador, Quartus, Kit
27 10/11 2 Exercício UPC FSM Computador, Quartus, Kit
28 11/11 2 2ª Avaliação – Circuitos Seqüenciais Computador, Quartus, Kit
29 17/11 2 Correção da Avaliação Computador, Quartus, Kit
30 18/11 2 Aula Recuperação Computador, Quartus, Kit
31 24/11 2 Aula Recuperação Computador, Quartus, Kit
32 25/11 2 Recuperação Final Computador, Quartus, Kit
TOTAL 64
  • Conceitos

Assuntos trabalhados

Apoio Desenvolvimento

Slides

04/08: Apresentação

  • Apresentação do professor.
  • Apresentação dos alunos: Nome, perfil, preferências, etc.
  • Apresentação da disciplina: conteúdo, bibliografia e avaliação.

05/08: Desenvolvimento com PLDs

  • Aula Introdutória:
    • Por que dispositivos lógicos programáveis?
    • Histórico
  • Famílias de Componentes Lógicos Programáveis
  • Arquitetura dos FPGAS
  • Introdução ao Fluxo de Projeto do Quartus

11/08: Não Houve Aula – Licença Médica

12/08: Não Houve Aula – Licença Médica

18/08: Fluxo Quartus II

  • Introdução ao Fluxo de Projeto do Quartus
  • Fluxo de projeto esquemáticos com Quartus e Modelsim (Porta AND)
  • Exercício Meio-Somador

19/08: Introdução à Linguagem VHDL

  • Finalização do fluxo de projeto do Meio somador no Quartus e Modelsim, utilização a entrada de esquemático.
  • Apresentação da Linguagem VHDL
  • Conceitos de entidade (entity) e arquitetura (architecture)

Exemplos VHDL (Entity e Architecture)

  • Meio Somador

25/08: Linguagem VHDL - Componentes

Exemplos VHDL (Cont.)

  • LCD and Switch

Componentes (COMPONENT, PORT MAP)

  • Sintaxe Simplificada:
--Declaração----------------------------------------------------------

COMPONENT component_name [IS]
	[GENERIC (
		const_name: const_type := const_value;
		...);]
	PORT (
		port_name: port_mode signal_type;
		...);
END COMPONENT [component_name];


--Instanciação----------------------------------------------------------

label: [COMPONENT] component_name [GENERIC MAP (generic_list) ] PORT MAP (port_list);
  • Exemplo:

--Declaração----------------------------------------------------------

COMPONENT nand_gate IS PORT ( a, b: IN STD_LOGIC; c: OUT STD_LOGIC); END COMPONENT;


--Instanciação---------------------------------------------------------

nand1: nand_gate PORT MAP (x, y, z); --mapeamento posicional nand2: nand_gate PORT MAP (a=>x, b=>y, c=>z); --mapeamento nominal

</syntaxhighlight>

  • Exemplo GENERIC:

--Declaração----------------------------------------------------------

COMPONENT xor_gate IS GENERIC (N: INTEGER := 8); PORT ( a: IN STD_LOGIC(1 TO N); b: OUT STD_LOGIC); END COMPONENT;


--Instanciação----------------------------------------------------------

xor1: xor_gate GENERIC MAP (16) PORT MAP (x, y); --map. posicional xor2: xor_gate GENERIC MAP (N=>16) PORT MAP (a=>x, b=>y); --map. nominal

</syntaxhighlight>


26/08: Código Concorrente (WHEN, SELECT)

WHEN

  • Sintaxe Simplificada:

signal_name <= value_expr_1 when boolean_expr_1 else value_expr_2 when boolean_expr_2 else value_expr_3 when boolean_expr_3 else ... value_expr_n </syntaxhighlight>

  • Exemplo:

x <= a when (s="00") else b when (s="01") else c when (s="10") else

	d;

</syntaxhighlight>

SELECT

  • Sintaxe Simplificada:

with select_expression select

    signal_name <=	value_expr_1 when choice_1,

value_expr_2 when choice_2, value_expr_3 when choice_3, ... value_expr_n when choice_n; </syntaxhighlight>

  • Exemplo:

with s select x <= "0001" when "00", "0010" when "01", "0011" when "10", "0100" when others; </syntaxhighlight>


01/09: Exercícios

  • Implementação MUX comportamental e estrtural
  • Verificação

02/09: Exercícios (cont.)

  • Integração Mux no projeto hierárquico

08/09: Decodificador

Decode 7-seg

  • Implementação Decode IFSC:

library IEEE; use IEEE.Std_Logic_1164.all;

entity decodIFSC is port (C: in std_logic_vector(2 downto 0);

     F:  out std_logic_vector(6 downto 0)
    );

end decodIFSC;

architecture decod_bhv of decodIFSC is Begin

 with C select 
 F <= "1001111" when "000", 	-- I
      "0001110" when "001",	-- F
      "0010010" when "010", 	-- S
      "1000110" when "011",	-- C
      "1111111" when others;

end decod_bhv;

</syntaxhighlight>


  • "Virtual Function" em arquivo *.do:

vlib work vcom -93 -work work {../../decodIFSC.vhd} vsim work.decodifsc

virtual type {{0b1001111 seg_I} {0b0001110 seg_F} {0b0010010 seg_S} {0b1000110 seg_C} {0b1111111 seg_others}} d7seg_ifsc_type

virtual function {(d7seg_ifsc_type)/decodIFSC/F} display_virtual

add wave -position end sim:/decodifsc/C add wave -position end sim:/decodifsc/F add wave display_virtual

force -freeze sim:/decodifsc/C 000 0 run force -freeze sim:/decodifsc/C 001 0 run force -freeze sim:/decodifsc/C 010 0 run force -freeze sim:/decodifsc/C 011 0 run force -freeze sim:/decodifsc/C 100 0 run </syntaxhighlight>


09/09: Decodificador

UPC: Unidade de Processamento Combinacional

Diagrama upc2.png


15/09: Continuação UPC

16/09: Dia de estudo da Turma

22/09: Prova Combinacional

Desenvolver um projeto hierárquico com módulos em VHDL que implemente o circuito abaixo. Esse circuito executa seis instruções de comparação (maior, igual, menor, menor e igual, diferente, menor e igual) a partir de duas entradas (A e B). As instruções de comparação são selecionadas por 3 chaves (SW[17..15]), enquanto o valor dos operandos, com 4 bits cada, são dados pelas chaves SW[3..0] (A) e SW[7..4] (B). As saídas do circuito são o LEDG(0), que indica se a operação selecionada é verdadeira (ligado) ou falsa (desligado), e o Display de 7 segmentos, que indica a operação que está sendo executada pelos códigos apresentados na tabela abaixo.

Todos os módulos devem ter arquivos de teste (*.do), inclusive o topo. O teste do decodificador deve incluir um “virtual type” para simplificar a simulação.

Comparador.png
Decoder-2014-2.png

23/09: Correção da Proval

29/04: Introdução ao Código Seqüencial