Mudanças entre as edições de "ELD129003-Engtelecom (Diário) - Prof. Marcos Moecke"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 83: Linha 83:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
====Uso do ambiente EDA - QUARTUS Prime para programação em VHDL.====
+
*[[Uso do ambiente EDA - QUARTUS Prime para programação em VHDL]]
;PASSO 0:
 
[[Acesso ao IFSC-CLOUD (NUVEM) | Acesse a nuvem do IFSC]] usando um terminal via ssh:
 
USER=LOGIN_SIGAA
 
ssh $USER@quartus.sj.ifsc.edu.br -XC 
 
Insira a senha do SIGAA
 
LOGIN_SIGAA@quartus.sj.ifsc.edu.br's password:
 
 
 
;PASSO 1:
 
Abra o Quartus Prime digitando no terminal
 
quartus20.1.sh
 
Em seguida abra um arquivo para inserir o código VHDL.  No menu superior selecione '''[File > New > Design Files: VHDL File]''' e '''[OK]'''
 
 
 
;PASSO 2:
 
*Copie o código VHDL acima para o espaço de edição e salve o arquivo com o nome da '''entity''': ''nand_gate.vhd'', em um pasta exclusiva para este projeto.
 
*Ao ser perguntado se deseja criar um novo projeto, responda '''[Yes]''' [[Arquivo:Quartus CreateProject.png| 200px]] 
 
 
 
*Os próximos passos podem ser realizados da seguinte forma:
 
:*Na tela '''Introduction''' '''[Next >]'''
 
:*Na tela '''Directory, Name, Top-Level Entity'''
 
::*Anote onde o projeto será salvo. 
 
  /home/USER/PASTA_DO_PROJETO/
 
:::Se quiser, troque a pasta clicando sobre os '''[...]''' e selecionando/criando a pasta onde o projeto será salvo. 
 
:::Recomendamos que no início você salve cada projeto em uma pasta separada.
 
 
 
::*Note o nome do projeto. Se quiser pode mudá-lo
 
nand_gate
 
::*Note  o nome da '''top-level design entity'''
 
nand_gate
 
::*Em seguida clique em  '''[Next >]'''
 
:*Na tela '''Project Type''' clique em '''[Next >]'''
 
:*Na tela '''Add Files'''clique em '''[Next >]''', pois note que seu arquivo "nand_gate.vhd" já está na lista dos arquivos do projeto.
 
:*Na tela '''Family, Device & Board Settings''', escolha a Family = ['''Cyclone IV E'''] e o Device = ['''EP4CE6E22A7'''] e clique em '''[Next >]'''
 
:*Na tela '''EDA Tool Setting''' [Next >]
 
:*Note na tela '''Summary''' os dados do projeto e clique '''[Finish]'''
 
 
 
;PASSO 3:
 
Realize a '''Analysis & Synthesis''' ['''Processing > Start > Start Analysis & Synthesis'''], ou use um dos botões que o professor mostrou em aula.
 
:*Analise o '''Compilation Report'''. 
 
1) Qual é a '''Top-level Entity'''?                ___________________________
 
2) Quantos elementos lógicos foram utilizados?      ___________________________
 
3) Quantos pinos foram utilizados?                  ___________________________
 
4) Algum outro dado está diferente de zero? Quais?  ___________________________
 
 
 
;PASSO 4:
 
*Use o [[RTL Viewer]] para ver a descrição RTL do circuito. Selecione '''[Tools > Netlist Vieweres > RTL Viewer]'''.
 
:[[Arquivo:Quartus_RTL_nand_gate.png| 400px]]
 
:*Analise o '''Diagrama RTL''', e note que ele representa a implementação de uma porta AND seguida de um NOT.
 
*Use o [[Technology Map Viewer]] para ver a como o circuito foi mapeado para os elementos lógicos disponíveis no dispositivo FPGA selecionado.  Selecione '''[Tools > Netlist Vieweres > Technology Map Viewer (Post-Mapping)]'''. Ao abrir, clique direito sobre o símbolo LOGIC_CELL_COMB e selecione Properties para visualizar o que está implementado. 
 
:[[Arquivo:Quartus_TM_nand_gate.png| 800px]]
 
:*Analise o '''Technolgy Map''', e busque perceber que ele representa a mesma implementação de uma porta AND seguida de um NOT (onde está o NOT?).
 
*Lembre-se que apenas um circuito equivalente é mostrado, pois na prática essa célula contém uma LUT, o que corresponde a implementar diretamente a tabela verdade.
 
:[[Arquivo:Quartus_TM_TV_nand_gate.png| 200px]]
 
*Note que a tabela verdade mostrada corresponde novamente a uma porta AND.
 
 
 
;PASSO 5:
 
*Modifique a descrição do circuito para implementar o circuito da função  Y = (A.B)' + C.D'B', salve o projeto Ckt2.vhd e de o mesmo nome para a entity.
 
  
 
;LER PARA O PRÓXIMO ENCONTRO:
 
;LER PARA O PRÓXIMO ENCONTRO:

Edição das 20h57min de 19 de fevereiro de 2024

Registro on-line das aulas

Unidade 1 - Aula inicial, Introdução a disciplina

  • 1 ENCONTRO
Unidade 1 - Aula inicial, Introdução a disciplina
Encontro 1 (16 fev)
  • A página da UC contém os materiais que não alteram entre semestre.
  • Relação com as outras UCs do Eixo Sistemas Computacionais (Marrom). Ver grafo do curriculo
  • ELD129002 - ELETRÔNICA DIGITAL I (ELD1): Sistema de numeração e códigos. Lógica booleana. Circuitos combinacionais. Circuitos aritméticos. Linguagem de descrição de hardware. Implementação e teste de circuitos digitais. Projeto de circuitos lógicos.
  • ELD129003 - ELETRÔNICA DIGITAL II (ELD2): Dispositivos lógicos programáveis. Circuitos sequenciais. Metodologia síncrona. Projeto hierárquico e parametrizado. Máquinas de estados finita. Register Transfer Methodology. Teste de circuitos digitais. Implementação em FPGA. Introdução a Linguagem de Descrição de Hardware.
  • AOC129004 - ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES (AOC): Introdução à Arquitetura Computadores. Linguagem Assembly. Linguagem de Máquina. Programação Assembly. Modos de Endereçamento. Processo de compilação e carga de um programa. Introdução à Organização de Computadores. Organização Monociclo e Multiciclo. Pipeline. Memória e Sistema de E/S.
  • MIC129007 - MICROCONTROLADORES (MIC): Introdução a Microcontroladores e Aplicações. Arquitetura de um microcontrolador. Pilha e Subrotinas. Interrupção. Contadores e Temporizadores. Interface com Periféricos. Programação em alto nível (ex.: C, C++ e RUST) para Microcontroladores: Mapeamento de tipos e estruturas de alto nível para sistemas com recursos limitados. Projeto de hardware e firmware com microcontroladores.
  • STE129008 - STE - SISTEMAS EMBARCADOS (STE): Conceitos em Sistemas Embarcados. Metodologia de Desenvolvimento de Sistemas Embarcados. Sistemas Operacionais para Sistemas Embarcados. Ferramentas de desenvolvimento e depuração. Barramentos e dispositivos de acesso a redes. Desenvolvimento de Projeto.
  • Nesta página está o Registro diário dos encontros e avaliações.
  • A entrega de atividades e avaliações será através da plataforma Moodle. A inscrição dos alunos é automática a partir do SIGAA.
  • Para a comunicação entre professor-aluno, além dos avisos no SIGAA, utilizaremos o chat institucional. A princípio todos os alunos já estão previamente cadastrados pelo seu email institucional. Confiram enviando uma mensagem de apresentação.
  • Utilizaremos durante as aulas algumas ferramentas computacionas como o site do Falstad para entender circuitos digitais e fazer simulações básicas.
  • Também utilizaremos os softwares Quartus Light e ModelSim instalados nas maquinas do laboratório para praticar a parte de programação de hardware (descrição de hardware). Esses softwares também podem ser usados através da Nuvem do IFSC..
LER PARA O PRÓXIMO ENCONTRO
  • Revisão dos conceitos sobre circuitos combinacionais vistos em CIL/ELD1
  • Para alunos que não cursaram ELD1 (não conhecem VHDL), irei fornecer uma sequência de estudos para conhecer melhor as instruções concorrentes do VHDL.
  • Ler Introdução a linguagem de descrição de hardware (DHL)

Unidade REV - PRIMEIRO CONTATO COM VHDL

  • 3 ENCONTROS
Unidade REV - PRIMEIRO CONTATO COM VHDL
Encontro 2 (20 fev)
  • Estrutura do código VHDL
  • Declaração das bibliotecas e pacotes LIBRARY / PACKAGE
 library library_name;
 use library_name.package_name.all;
  • ENTITY
 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
 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;
LER PARA O PRÓXIMO ENCONTRO

Avaliações

Durante o semestre serão realizadas 4 avaliações. As avaliações devem ser enviadas pela plataforma Moodle com os arquivos solicitados.

Data das avaliações
  • A1 - :
  • A2 - :
  • A3 - :
  • A4 - :
  • R - Recuperação de A1 a A4 :

Atividade relâmpago (AR)

As atividades relâmpago devem ser entregues no Moodle da disciplina. A não entrega dessas atividades não gera nenhum desconto, apenas geram pontos de BÔNUS que são adicionados aos conceitos das avaliações A1 a AN.

Atividade extra-classe (AE)

A média ponderada das atividades extra-classe será considerada no cálculo do conceito final da UC. A entrega das mesmas será feita pelo Moodle, e cada dia de atraso irá descontar 0,2 na nota da atividade. Muitas dessas atividades também geram pontos de BÔNUS que são adicionados aos conceitos das avaliações A1 a AN. Para os BÔNUS só serão considerados projetos entregues no prazo.

Referências Bibliográficas:


Curso de Engenharia de Telecomunicações