Mudanças entre as edições de "ELD129003-Engtelecom (Diário) - Prof. Marcos Moecke"
Linha 22: | Linha 22: | ||
*Revisão dos conceitos sobre circuitos combinacionais vistos em CIL/ELD1 | *Revisão dos conceitos sobre circuitos combinacionais vistos em CIL/ELD1 | ||
*Para alunos que não cursaram ELD1 (não conhecem VHDL), fornecerei uma sequência de estudos para conhecer melhor as instruções concorrentes do VHDL. | *Para alunos que não cursaram ELD1 (não conhecem VHDL), fornecerei uma sequência de estudos para conhecer melhor as instruções concorrentes do VHDL. | ||
− | + | *Ler [https://moodle.ifsc.edu.br/pluginfile.php/262427/mod_resource/content/1/Introdu%C3%A7%C3%A3o%20a%20linguagem%20de%20descri%C3%A7%C3%A3o%20de%20hardware.pdf Introdução a linguagem de descrição de hardware (DHL)] | |
{{collapse bottom}} | {{collapse bottom}} | ||
− | ===Unidade | + | ===Unidade REV - PRIMEIRO CONTATO COM VHDL === |
− | * | + | * 3 ENCONTROS |
{{collapse top | expand=true | Unidade 2} | {{collapse top | expand=true | Unidade 2} | ||
;Encontro 2 (20 fev): | ;Encontro 2 (20 fev): | ||
+ | * [https://moodle.ifsc.edu.br/pluginfile.php/262427/mod_resource/content/1/Introdu%C3%A7%C3%A3o%20a%20linguagem%20de%20descri%C3%A7%C3%A3o%20de%20hardware.pdf Introdução a linguagem de descrição de hardware (DHL)] | ||
+ | |||
+ | * Estrutura do código VHDL | ||
+ | :* Declaração das bibliotecas e pacotes '''LIBRARY''' / '''PACKAGE''' | ||
+ | <syntaxhighlight lang=vhdl> | ||
+ | library library_name; | ||
+ | use library_name.package_name.all; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | :* '''ENTITY''' | ||
+ | <syntaxhighlight lang=vhdl> | ||
+ | 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]; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | :* '''ARCHITECTURE''' | ||
+ | <syntaxhighlight lang=vhdl> | ||
+ | architecture arch_name of entity_name is | ||
+ | [declarative_part] | ||
+ | begin | ||
+ | statement_part | ||
+ | end [architecture] [arch_name]; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | * Exemplo - Declaração de uma porta NAND em VHDL | ||
+ | |||
+ | <syntaxhighlight lang=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; | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | *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]. Os próximos passos podem ser realizados da seguinte forma: | ||
+ | :*Na tela '''Introduction''' [Next >] | ||
+ | :*Na tela '''Directory, Name, Top-Level Entity''' | ||
+ | ::*Note onde o projeto será salvo. | ||
+ | /home/USER/PASTA_DO_PROJETO/ | ||
+ | ::*Note o nome do projeto. Se quiser pode mudá-lo | ||
+ | nand_gate | ||
+ | ::*Note o nome da '''top-level design entity''' | ||
+ | nand_gate | ||
+ | ::*Em seguida [Next >] | ||
+ | :*Na tela '''Project Type''' [Next >] | ||
+ | :*Na tela '''Add Files''' [Next >], pois seu arquivo já está na lista dos arquivos. | ||
+ | :*Na tela '''Family, Device & Board Settings''', escolha a Family = ['''Cyclone IV E'''] e o Device = ['''EP4CE6E22A7'''] e [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. | ||
+ | :*Note o '''Compilation Report''' | ||
+ | |||
+ | ;PASSO 4: | ||
+ | *Use o [[RTL Viewer]] para ver a descrição RTL do circuito. Selecione '''[Tools > Netlist Vieweres > RTL Viewer]'''. | ||
+ | *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]'''. | ||
+ | |||
+ | ;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: | ||
+ | *Reler [https://pt.wikipedia.org/wiki/VHDL VHDL], [https://en.wikipedia.org/wiki/VHDL alguns exemplos de VHDL] na Wikipedia | ||
{{collapse bottom}} | {{collapse bottom}} | ||
− | |||
==Avaliações== | ==Avaliações== |
Edição das 19h57min 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 |
---|
|
Unidade REV - PRIMEIRO CONTATO COM VHDL
- 3 ENCONTROS
{{collapse top | expand=true | Unidade 2}
- 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;
- Uso do ambiente EDA - QUARTUS Prime para programação em VHDL.
- PASSO 0
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]. Os próximos passos podem ser realizados da seguinte forma:
- Na tela Introduction [Next >]
- Na tela Directory, Name, Top-Level Entity
- Note onde o projeto será salvo.
/home/USER/PASTA_DO_PROJETO/
- Note o nome do projeto. Se quiser pode mudá-lo
nand_gate
- Note o nome da top-level design entity
nand_gate
- Em seguida [Next >]
- Na tela Project Type [Next >]
- Na tela Add Files [Next >], pois seu arquivo já está na lista dos arquivos.
- Na tela Family, Device & Board Settings, escolha a Family = [Cyclone IV E] e o Device = [EP4CE6E22A7] e [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.
- Note o Compilation Report
- PASSO 4
- Use o RTL Viewer para ver a descrição RTL do circuito. Selecione [Tools > Netlist Vieweres > RTL Viewer].
- 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].
- 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
- Reler VHDL, alguns exemplos de VHDL na Wikipedia
|}
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: