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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
(Limpou toda a página)
Etiqueta: anulando
 
(21 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
= Síntese de Sistemas de Telecomunicações: Diário de Aula 2014-1 =
 
  
'''Professor:''' [[Roberto de Matos]]
 
<br>'''Encontros:''' 2ª e 3ª feira às 13:30
 
<br>'''Atendimento paralelo:''' 2ª feira das 15:40 às 17:30.
 
 
* [[Síntese de Sistemas de Telecomunicações |Plano de Ensino]]
 
 
== Assuntos trabalhados ==
 
*[[Introdução aos dispositivos lógicos programáveis]]
 
*[[Introdução à tecnologia FPGA ]]
 
*[[Introdução a linguagem VHDL]]
 
 
== Apoio Desenvolvimento ==
 
*[http://www.altera.com/education/univ/materials/boards/de2-115/unv-de2-115-board.html Página DE2-115 (Manual, QSF)]
 
 
<!--
 
<syntaxhighlight lang=text>
 
killall jtagd
 
 
sudo vim /etc/udev/rules.d/51-usbblaster.rules
 
SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", ATTRS{idVendor}=="09fb", ATTRS{idProduct}=="6001", MODE="0666"
 
 
sudo groupadd usbblaster
 
sudo usermod -a -G usbblaster aluno
 
sudo usermod -a -G usbblaster root
 
sudo chown root:usbblaster /etc/udev/rules.d/51-usbblaster.rules
 
 
sudo udevadm control --reload-rules
 
</syntaxhighlight>
 
 
*Resolve problema Modelsim
 
sudo apt-get install gnome-session-fallbac
 
 
-->
 
 
== Slides ==
 
*[[Media:Sst-intro.pdf|Slides de Introdução]]
 
*[[Media:Sst-lab1_esquematico_fluxo_quartus.pdf‎|Fluxo de Projeto Quartus]]
 
*[[Media:Sst-lab2_VHDL_fluxo_quartus.pdf‎‎|Introdução à Linguagem VHDL]]
 
*[[Media:Sst-lab3_componentes.pdf‎‎|Componentes em VHDL]]
 
*[[Media:sst-lab4_mux_decode.pdf‎‎|Mux e Decode]]
 
 
= 10/02: 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.
 
* Aula Introdutória:
 
** Por que dispositivos lógicos programáveis?
 
** Histórico
 
 
= 11/02: Desenvolvimento com PLDs =
 
* Famílias de Componentes Lógicos Programáveis
 
* Arquitetura dos FPGAS
 
* Introdução ao Fluxo de Projeto do Quartus
 
 
= 17/02: Laboratório Quartus =
 
* Fluxo de projeto esquemáticos com Quartus e Modelsim (Porta AND)
 
* Exercício: Projeto, Simulação e Teste do [http://en.wikipedia.org/wiki/Adder_(electronics) meio-somador]
 
 
= 18/02: 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)
 
 
= 24/02: Linguagem VHDL =
 
== Exemplos VHDL (Entity e Architecture) ==
 
* Meio Somador
 
* LCD and Switch
 
 
==Componentes (COMPONENT, PORT MAP)==
 
*Sintaxe Simplificada:
 
;:<syntaxhighlight lang=vhdl>
 
--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);
 
 
</syntaxhighlight>
 
 
*Exemplo:
 
;:<code>
 
--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:
 
;:<code>
 
--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>
 
 
 
= 10/03: Código Concorrente (WHEN, SELECT) =
 
 
== WHEN ==
 
*Sintaxe Simplificada:
 
;:<code>
 
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:
 
;:<code>
 
x <= a when (s="00") else
 
b when (s="01") else
 
c when (s="10") else
 
d;
 
</syntaxhighlight>
 
 
== SELECT ==
 
*Sintaxe Simplificada:
 
;:<code>
 
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:
 
;:<code>
 
with s select
 
  x <= "0001" when "00",
 
"0010" when "01",
 
"0011" when "10",
 
"0100" when others;
 
</syntaxhighlight>
 
 
== Exercícios ==
 
* Implementação MUX comportamental e estrtural
 
* Verificação
 
 
= 10/03: Exercícios: Decode 7-seg e UPC =
 
 
==Decode 7-seg==
 
 
* Implementação Decode IFSC:
 
;:<code>
 
 
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:
 
;:<code>
 
 
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>
 
 
==UPC: Unidade de Processamento Combinacional==
 
[[imagem:diagrama_upc2.png|600px|center]]
 
 
 
= 31/03: Não Houve Aula - Reunião Inova Telecom =
 
 
 
= 07/04: Prova Combinacional =
 
 
Desenvolver um projeto hierárquico com módulos em VHDL que implemente o circuito abaixo. Esse circuito controla 3 canais de áudio com prioridade. Os canais de áudio são “simulados” por chaves. A ordem decrescente de prioridade das entradas é A, B e C. O bloco de prioridade deve selecionar corretamente a entrada do MUX (SelOut). Além disso, a saída F deve mostrar nos LEDs a saída selecionada. O decodificador de 7 segmentos deve decodificar a saída SelOut e mostrar no display “A”, “b” e “C”, dependendo da saída selecionada.
 
 
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.
 
 
[[imagem:priority.png|600px|center]]
 

Edição atual tal como às 16h13min de 21 de dezembro de 2021