ELD129002-Engtelecom (Diário) - Prof. Marcos Moecke: mudanças entre as edições
Ir para navegação
Ir para pesquisar
(48 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 2: | Linha 2: | ||
===Unidade 1 - Aula inicial, Introdução a disciplina=== | ===Unidade 1 - Aula inicial, Introdução a disciplina=== | ||
* 1 ENCONTRO | * 1 ENCONTRO | ||
{{collapse top | Unidade 1 - Aula inicial, Introdução a disciplina}} | {{collapse top |expand=true | Unidade 1 - Aula inicial, Introdução a disciplina}} | ||
;Encontro 1 (12 ago.): | |||
;Encontro 1 ( | |||
* A '''[[ELD1-EngTelecom (Página) | página da UC]]''' contém os materiais que não alteram entre semestre. | * A '''[[ELD1-EngTelecom (Página) | 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 [https:// | * Relação com as outras UCs do '''Eixo Sistemas Computacionais (Marrom)'''. Ver [https://telegrafo.sj.ifsc.edu.br/ 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. | :*'''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. | :*'''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. | ||
Linha 24: | Linha 23: | ||
===Unidade 2 - Sistema de numeração e códigos=== | ===Unidade 2 - Sistema de numeração e códigos=== | ||
* | * 5 ENCONTROS | ||
{{collapse top | expand=true| Unidade 2 - Sistema de numeração e códigos}} | {{collapse top | expand=true| Unidade 2 - Sistema de numeração e códigos}} | ||
<!-- | |||
;Encontro 2 (20 mar.): | ;Encontro 2 (20 mar.): | ||
O ser humano precisa contar para determinar quantidades de coisas, com as quantidades ele pode fazer operações matemáticas e comparações. | O ser humano precisa contar para determinar quantidades de coisas, com as quantidades ele pode fazer operações matemáticas e comparações. | ||
Linha 1 387: | Linha 1 387: | ||
* Resolver exercicios do livro (1.64 a 1.67, 1.69) [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=86) | * Resolver exercicios do livro (1.64 a 1.67, 1.69) [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=86) | ||
* Resolver exercicios do livro (5.24, 5.27 a 5.30, 5.31 a 5.32, 5.38) [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=430) | * Resolver exercicios do livro (5.24, 5.27 a 5.30, 5.31 a 5.32, 5.38) [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=430) | ||
--> | |||
{{collapse bottom}} | {{collapse bottom}} | ||
===Unidade 3 - Funções, portas lógicas e álgebra booleana=== | ===Unidade 3 - Funções, portas lógicas e álgebra booleana=== | ||
* | * 13 ENCONTROS | ||
{{collapse top | expand=true| Unidade 3 - Funções, portas lógicas e álgebra booleana }} | {{collapse top | expand=true| Unidade 3 - Funções, portas lógicas e álgebra booleana }} | ||
<!-- | |||
;Encontro 7 (8 abr.) | ;Encontro 7 (8 abr.) | ||
;Funções e portas lógicas: | ;Funções e portas lógicas: | ||
Linha 1 544: | Linha 1 546: | ||
{{fig|3.1|Conjuntos para mostrador de 7 segmentos| 7segment_sets.png| 800 px | }} | {{fig|3.1|Conjuntos para mostrador de 7 segmentos| 7segment_sets.png| 800 px | }} | ||
;Encontro | ;Encontro 14 (6 mai.) | ||
*Simplificação de expressões lógicas - Mapas de Karnaugh-Veitch: | *Simplificação de expressões lógicas - Mapas de Karnaugh-Veitch: | ||
*Uso do ''don't care'' na simplificação | *Uso do ''don't care'' na simplificação | ||
Linha 1 555: | Linha 1 557: | ||
*Preparação da [https://wiki.sj.ifsc.edu.br/index.php/ELD129002-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke#AE1_-_Projeto_de_um_conversor_de_bin.C3.A1rio_para_mostrador_de_7_segmentos AE1 - Projeto de um conversor de binário para mostrador de 7 segmentos] | *Preparação da [https://wiki.sj.ifsc.edu.br/index.php/ELD129002-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke#AE1_-_Projeto_de_um_conversor_de_bin.C3.A1rio_para_mostrador_de_7_segmentos AE1 - Projeto de um conversor de binário para mostrador de 7 segmentos] | ||
;Encontro | ;Encontro 15 (8 mai.) | ||
*Resolver [https://drive.google.com/file/d/16pN70NdO9a-qEKthQwn5OFidA_Y92CTm/view?usp=drive_link Exercícios de álgebra de Boole] | *Resolver [https://drive.google.com/file/d/16pN70NdO9a-qEKthQwn5OFidA_Y92CTm/view?usp=drive_link Exercícios de álgebra de Boole] | ||
*Resolver exercicios do livro (2.1, 2.2, 2.5 a 2.10, 2.13 a 2.18, 2.21 a 2.25) [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=151) | *Resolver exercicios do livro (2.1, 2.2, 2.5 a 2.10, 2.13 a 2.18, 2.21 a 2.25) [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=151) | ||
Linha 1 562: | Linha 1 564: | ||
*Ler a seção '''2.4. DA LÓGICA ÀS PORTAS e 2.5.LÓGICA COMBINATÓRIO MULTI-NÍVEL''' nas pag 90 a 95 de [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=116) | *Ler a seção '''2.4. DA LÓGICA ÀS PORTAS e 2.5.LÓGICA COMBINATÓRIO MULTI-NÍVEL''' nas pag 90 a 95 de [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=116) | ||
;Encontro | ;Encontro 16 (13 mai.) | ||
*Avaliação A1b - Funções e portas lógicas, tabela verdade, algebra de Boole, simplificação de equações e mapa de Karnaugh | *Avaliação A1b - Funções e portas lógicas, tabela verdade, algebra de Boole, simplificação de equações e mapa de Karnaugh | ||
;Encontro | ;Encontro 17 (15 mai.) | ||
*Ver os K-Map online: | *Ver os K-Map online: | ||
:*[https://www.docjava.com/cpe210/kmapExplorer.html docjava.com], | :*[https://www.docjava.com/cpe210/kmapExplorer.html docjava.com], | ||
Linha 1 586: | Linha 1 588: | ||
*[https://ieeexplore-ieee-org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=6769983 E. J. McCluskey, "Minimization of Boolean functions," in The Bell System Technical Journal, vol. 35, no. 6, pp. 1417-1444, Nov. 1956, doi: 10.1002/j.1538-7305.1956.tb03835.x] | *[https://ieeexplore-ieee-org.ez130.periodicos.capes.gov.br/stamp/stamp.jsp?tp=&arnumber=6769983 E. J. McCluskey, "Minimization of Boolean functions," in The Bell System Technical Journal, vol. 35, no. 6, pp. 1417-1444, Nov. 1956, doi: 10.1002/j.1538-7305.1956.tb03835.x] | ||
;Encontro | ;Encontro 18 (20 mai.) | ||
*Como transformar uma Expressão booleana em Tabela verdade e em Circuito com portas lógicas, e vice-versa: | *Como transformar uma Expressão booleana em Tabela verdade e em Circuito com portas lógicas, e vice-versa: | ||
*[https://drive.google.com/file/d/1lNvJtT1oXv9JlBUDm-veVWExX2IehtzQ/view?usp=drive_link Expressão booleana - Tabela verdade - Circuito com portas lógicas] | *[https://drive.google.com/file/d/1lNvJtT1oXv9JlBUDm-veVWExX2IehtzQ/view?usp=drive_link Expressão booleana - Tabela verdade - Circuito com portas lógicas] | ||
*[https://drive.google.com/file/d/1O86iYyEQ2ZJ77x1hERSAwaKqQfRanrBx/view?usp=drive_link Projeto de circuitos combinacionais] | *[https://drive.google.com/file/d/1O86iYyEQ2ZJ77x1hERSAwaKqQfRanrBx/view?usp=drive_link Projeto de circuitos combinacionais] | ||
;Encontro | ;Encontro 19 (22 mai.) | ||
Projeto de circuitos combinacionais: | Projeto de circuitos combinacionais: | ||
*Ver resumo em [https://drive.google.com/file/d/1O86iYyEQ2ZJ77x1hERSAwaKqQfRanrBx/view?usp=drive_link Projeto de circuitos combinacionais] | *Ver resumo em [https://drive.google.com/file/d/1O86iYyEQ2ZJ77x1hERSAwaKqQfRanrBx/view?usp=drive_link Projeto de circuitos combinacionais] | ||
Linha 1 597: | Linha 1 599: | ||
*Ler a seção '''2.8.BLOCOS COMBINATÓRIOS''' nas pag 109 a 114 [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=135) | *Ler a seção '''2.8.BLOCOS COMBINATÓRIOS''' nas pag 109 a 114 [https://drive.google.com/file/d/1g8mbdH8DOc5_D8CfzUNcUb8P6qy0S4eV/view?usp=drive_link Projeto Digital e Arquitetura de Computadores] (#page=135) | ||
<!-- | <!-- | ||
Linha 1 615: | Linha 1 615: | ||
===Unidade 4 - Introdução a linguagem VHDL e Quartus/ModelSim=== | ===Unidade 4 - Introdução a linguagem VHDL e Quartus/ModelSim=== | ||
* | * 7 ENCONTROS | ||
{{collapse top |expand=true| Unidade 4 - Introdução a linguagem VHDL e Quartus/ModelSim }} | {{collapse top |expand=true| Unidade 4 - Introdução a linguagem VHDL e Quartus/ModelSim }} | ||
<!-- | |||
;Encontro 20 (24 mai.) | |||
*[https://wiki.sj.ifsc.edu.br/index.php/ELD129002-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke#AE2_-_Conhecendo_os_dispositivos_l.C3.B3gicos_program.C3.A1veis AE2 - Conhecendo os dispositivos lógicos programáveis] '''PASSOS 0 ''' - - Aprendendo a usar a nuvem do IFSC remotamente | |||
;Encontro (5 jun.) - Linguagem VHDL: | ;Encontro 21 a 23 (27 mai. a 3.jun.) | ||
*[https://wiki.sj.ifsc.edu.br/index.php/ELD129002-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke#AE2_-_Conhecendo_os_dispositivos_l.C3.B3gicos_program.C3.A1veis AE2 - Conhecendo os dispositivos lógicos programáveis] '''PASSOS 1 a 4''' | |||
;Encontro 24 (5 jun.) - Linguagem VHDL: | |||
* [https://wiki.sj.ifsc.edu.br/images/7/75/Introdu%C3%A7%C3%A3o_a_linguagem_de_descri%C3%A7%C3%A3o_de_hardware.pdf Introdução a linguagem de descrição de hardware (DHL)] | * [https://wiki.sj.ifsc.edu.br/images/7/75/Introdu%C3%A7%C3%A3o_a_linguagem_de_descri%C3%A7%C3%A3o_de_hardware.pdf Introdução a linguagem de descrição de hardware (DHL)] | ||
Linha 1 704: | Linha 1 710: | ||
*Guardar [[Folha de consulta de VHDL]] | *Guardar [[Folha de consulta de VHDL]] | ||
;Encontro (10 e 12 jun.) | ;Encontro 25 e 26 (10 e 12 jun.) | ||
*[https://wiki.sj.ifsc.edu.br/index.php/ELD129002-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke#AE3_-_Programa.C3.A7.C3.A3o_do_kit_Mercurio_IV AE3 - Programação do kit Mercurio IV] | *[https://wiki.sj.ifsc.edu.br/index.php/ELD129002-Engtelecom_(Di%C3%A1rio)_-_Prof._Marcos_Moecke#AE3_-_Programa.C3.A7.C3.A3o_do_kit_Mercurio_IV AE3 - Programação do kit Mercurio IV] | ||
*ver | ;PARA O PRÓXIMO ENCONTRO: | ||
*Ler a seção | *ver [[Preparando para gravar o circuito lógico no FPGA]]. | ||
*ver [[Como arquivar um projeto]]. | |||
*ver [[Simulação Funcional usando o ModelSim]]. | |||
*ver [[Como utilizar a matriz de leds do kit Mercurio IV da Macnica]] - caso alguém deseje acender os leds conforme as chaves de entrada são selecionados. | |||
*ver [[Acesso_ao_IFSC-CLOUD_(NUVEM)#Como_transferir_arquivos_entre_o_computador_local_e_a_NUVEM-IFSC | Como_transferir_arquivos_entre_o_computador_local_e_a_NUVEM-IFSC]]. | |||
*ver [[Acesso_ao_IFSC-CLOUD_(NUVEM)#Configuração_do_X2GO | Como configurar o X2Go para acessar a nuvem de seu computador pessoal]]. | |||
*ver [[Preparando_para_gravar_o_circuito_lógico_no_FPGA#Programando_o_kit_FPGA_usando_comando_de_linha | Programando o kit FPGA usando comando de linha]]. | |||
*Consultar e guardar a [[Folha de consulta de VHDL]] | |||
*Ler a seção [https://pt.wikipedia.org/wiki/VHDL#História História] da página VHDL da wikipedia em português e as seções [https://en.wikipedia.org/wiki/VHDL#History History], [https://en.wikipedia.org/wiki/VHDL#Standardization Standardization}, [https://en.wikipedia.org/wiki/VHDL#Design Design] e [https://en.wikipedia.org/wiki/VHDL#Advantages Advantages] da página VHDL na Wikipedia em ingles. | |||
--> | |||
{{collapse bottom}} | {{collapse bottom}} | ||
===Unidade 5 - Circuitos lógicos combinacionais (com VHDL)=== | ===Unidade 5 - Circuitos lógicos combinacionais (com VHDL)=== | ||
* | * 7 ENCONTROS | ||
{{collapse top |Unidade 5 - Circuitos lógicos combinacionais (com VHDL)}} | {{collapse top |expand=true |Unidade 5 - Circuitos lógicos combinacionais (com VHDL)}} | ||
<!-- | <!-- | ||
;Encontro | ;Encontro 29 e 30 (24 e 26 jun.) | ||
* Conhecer o [[Código Gray]] | * Conhecer o [[Código Gray]] | ||
* Implementação de conversor Binário para Gray (bin2gray) | * Implementação de conversor Binário para Gray (bin2gray) | ||
Linha 1 801: | Linha 1 816: | ||
* Descubra quantas portas ou exclusivo seriam necessárias para o caso de N bits. | * Descubra quantas portas ou exclusivo seriam necessárias para o caso de N bits. | ||
*Implemente um conversor Gray para Binário (gray2bin): | |||
Considerando o que aprendeu com as versões do conversor '''bin2gray''', descreva o circuito do conversor '''gray2bin'''. Inicie descrevendo o código VHDL para 4 bits, em seguida busque tornar o código genérico para qualquer número de bits. | Considerando o que aprendeu com as versões do conversor '''bin2gray''', descreva o circuito do conversor '''gray2bin'''. Inicie descrevendo o código VHDL para 4 bits, em seguida busque tornar o código genérico para qualquer número de bits. | ||
Linha 1 827: | Linha 1 841: | ||
end architecture | end architecture | ||
</syntaxhighlight> | </syntaxhighlight> | ||
* Implementação de incrementador Gray (inc_gray) | * Implementação de incrementador Gray (inc_gray) | ||
Linha 1 858: | Linha 1 866: | ||
port | port | ||
( | ( | ||
g_in : in | g_in : in std_logic_vector(3 downto 0); | ||
g_out : out | g_out : out std_logic_vector(3 downto 0) | ||
); | ); | ||
end entity; | end entity; | ||
architecture ifsc_v1 of inc_gray is | architecture ifsc_v1 of inc_gray is | ||
signal | signal bin : std_logic_vector(3 downto 0); | ||
signal | signal bin_inc : std_logic_vector(3 downto 0); | ||
begin | begin | ||
-- Converter a entrada de g_in para b_in | -- Converter a entrada de g_in para b_in | ||
Linha 1 881: | Linha 1 889: | ||
O problema nesta solução é como fazer o incremento de um número em binário. Será necessário aprender: | O problema nesta solução é como fazer o incremento de um número em binário. Será necessário aprender: | ||
* somar em binário, pois incrementar é somar 1. | * somar em binário, pois incrementar é somar 1. | ||
<syntaxhighlight lang=vhdl> | |||
-- necessário usar os pacotes std_logic_1164 e numeric_std da biblioteca ieee | |||
library ieee; | |||
use ieee.std_logic_1164.all; | |||
use ieee.numeric_std.all; | |||
-- Declare um signal do tipo unsigned para usar operador aritmético sobre ele | |||
signal bin_uns : unsigned(3 downto 0); | |||
-- converta o valor binário para unsigned | |||
bin_uns <= (unsigned(bin)); | |||
bin_inc <= std_logic_vector(bin_uns + 1); | |||
</syntaxhighlight> | |||
architecture ifsc_v1 of inc_gray is | |||
signal b_in : std_logic_vector(3 downto 0); | |||
signal b_inc : std_logic_vector(3 downto 0); | |||
begin | |||
-- Converter a entrada de g_in para b_in | |||
-- código visto e aula anterior | |||
-- Incrementar e binário b_out = b_in + 1 | |||
-- aqui falta conhecimento de linguagem para fazer. | |||
-- Converter a entrada de b_out para g_out | |||
-- código visto e aula anterior | |||
end architecture; | |||
</syntaxhighlight> | |||
* os tipos de dados que permitem fazer operações aritméticas em binário, | * os tipos de dados que permitem fazer operações aritméticas em binário, | ||
* como fazer a conversão entre tipos de dados em VHDL ('''integer''', '''bit_vector''', '''std_logic_vector''', '''unsigned'''). | * como fazer a conversão entre tipos de dados em VHDL ('''integer''', '''bit_vector''', '''std_logic_vector''', '''unsigned'''). | ||
'''Fica a pergunta.''' Seria possível fazer o incremento direto em gray sem passar primeiro para o binário? | '''Fica a pergunta.''' Seria possível fazer o incremento direto em gray sem passar primeiro para o binário? | ||
Tente encontrar alguma solução observando a regra de mudança dos bits no código Gray. Não esqueça que apenas o valor atual da entrada é conhecido. | Tente encontrar alguma solução observando a regra de mudança dos bits no código Gray. Não esqueça que apenas o valor atual da entrada é conhecido. | ||
;Encontro | ;Encontro 31 (1 jul.) | ||
* Conhecer o multiplexador digital. | * Conhecer o multiplexador digital. | ||
Um multiplexador digital de N entradas e 1 saída, frequentemente abreviado como MUX N:1, é um circuito digital muito utilizado para rotear sinais digitais. Ele desempenha a função de selecionar uma das entradas para ser encaminhada para a saída com base em um sinal de seleção (ou controle). | Um multiplexador digital de N entradas e 1 saída, frequentemente abreviado como MUX N:1, é um circuito digital muito utilizado para rotear sinais digitais. Ele desempenha a função de selecionar uma das entradas para ser encaminhada para a saída com base em um sinal de seleção (ou controle). | ||
Linha 2 150: | Linha 2 184: | ||
{{fig|2.6|Technology Map do mux4x1 para a família Aria 10 | TM_mux4x1_S3.png| 400 px |}} | {{fig|2.6|Technology Map do mux4x1 para a família Aria 10 | TM_mux4x1_S3.png| 400 px |}} | ||
;Encontro | ;Encontro 32 (3 jul.) | ||
* | *Avaliação A1c. | ||
* | |||
<syntaxhighlight lang= | ;Encontro 33 (8 jul.) | ||
*Nova modelagem do decodificador (conversor) de binário para sete segmentos '''bin2ssd''': | |||
:*Considere o decodificador que havia sido implementado na AE3 através de lógica pura. Neste caso foram usados bits individuais para cada entrada (A, B, C e D) e também para as saídas (a, b, c, d, e, f, g). | |||
:*Ver a tabela verdade na página do [https://wiki.sj.ifsc.edu.br/index.php/Display_de_7_segmentos#Codificador_de_bin%C3%A1rio_para_mostrador_de_7_segmentos display de sete segmentos]. | |||
:*Em uma solução melhorada devem ser utilizados vetores para representar a entrada ('''bin''') e a saída ('''ssd'''). Com isso será possível explorar as instruções WHEN ELSE e WITH SELECT para implementar esse decodificador, descrevendo-o diretamente através da sua tabela verdade. | |||
::A correspondencia dos bits do vetor ssd seria: a => ssd(0), b => ssd(1), ... g => ssd(6). | |||
::A correspondencia dos bits do vetor bin seria: A => bin(3), B => bin(2), C => bin(1), D => bin(0). | |||
* Usando a instrução '''when else''' | |||
<syntaxhighlight lang=vhdl> | |||
library ieee; | |||
use ieee.std_logic_1164.all; | |||
entity bin2ssd is | |||
port( | |||
bin : in std_logic_vector (3 downto 0); | |||
ssd : out std_logic_vector (6 downto 0) -- indices decrescentes | |||
-- ssd : out std_logic_vector (0 to 6) -- indices crescentes | |||
); | |||
end entity; | |||
architecture when_else of bin2ssd is | |||
begin | |||
-- indices decrescentes | |||
ssd <= "0111111" when bin = "0000" else | |||
... | |||
-- indices crescentes | |||
-- ssd <= "1111110" when bin = "0000" else | |||
end architecture; | |||
</syntaxhighlight > | |||
* Usando a instrução '''with select''' | |||
<syntaxhighlight lang=vhdl> | |||
architecture with_select of bin2ssd is | |||
begin | |||
end architecture; | |||
</syntaxhighlight > | |||
;DESAFIO: | |||
*Faça a implementação de um conversor de binário para ssd que forneça na saída as seguintes letras: | |||
{{fig|5.20|Alfabeto usando mostrador de 7 segmentos| alfabeto_ssd.png| 400 px | }} | |||
*Use o kit Mercúrio IV para implementar o hardware. As chaves SW0 a SW3 devem ser usadas como as entradas binárias bin(0) a bin(3), e o display de sete segmentos DISP0 como saída ssd(0) a ssd(6). | |||
:*Veja a [[ELD129002-Engtelecom (Diário) - Prof. Marcos Moecke#AE3_-_Programação_do_kit_Mercurio_IV | AE3 - Programação do kit Mercurio IV ]]para fazer a configuração dos pinos. | |||
{{fig| | |||
;Encontro | ;Encontro 34 (10 jul.) | ||
Demultiplexador de 1 para 4 [https://tinyurl.com/yrvmxgq7] | |||
:*Implementar em VHDL | :*Implementar em VHDL | ||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=vhdl> | ||
Linha 2 222: | Linha 2 254: | ||
end architecture; | end architecture; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
;Entender a importância do tipo de dado STD_LOGIC: | ;Entender a importância do tipo de dado STD_LOGIC: | ||
Linha 2 346: | Linha 2 371: | ||
:(13) e (14) - o sinal Y está sendo mostrado como um grupo de bits e separado por bit. Para tal é necessário clicar sobre o [+] antes sinal Y [[Arquivo:Expand.png]]. | :(13) e (14) - o sinal Y está sendo mostrado como um grupo de bits e separado por bit. Para tal é necessário clicar sobre o [+] antes sinal Y [[Arquivo:Expand.png]]. | ||
* | <!-- | ||
:: | *Realize a simulação das 3 arquiteturas do MUX4:1 no Modelsim | ||
*Crie um arquivo tb_mux4x1_v1.do que repita a simulação da arquitetura v1 | |||
<syntaxhighlight lang=tcl> | |||
#file_name: tb_mux4x1_v1.do | |||
#preparando o simulador | |||
vlib rtl_work | |||
vmap work rtl_work | |||
#vcom -93 -work work {/home/moecke/ELD1/ANO2024.2/Aula26/mux4x1.vhd} | |||
# substitua o caminho absoluto pelo relativo ../../ | |||
vcom -93 -work work {../../mux4x1.vhd} | |||
vsim work.mux4x1(v_logica_pura) | |||
#adicionando os sinais a aba wave | |||
add wave -position end sim:/mux4x1/X | |||
add wave -position end sim:/mux4x1/Sel | |||
add wave -position end sim:/mux4x1/Y | |||
#definindo o valor de um estimulo (valor instante_de_tempo) | |||
</syntaxhighlight > | force -freeze sim:/mux4x1/X 0101 0 | ||
#definindo varios valores de um estimulo pares (valor instante_de_tempo) separados por virgula | |||
force -freeze sim:/mux4x1/Sel 00 0, 01 100, 10 200, 11 300 | |||
;Encontro 29 (25 jul.) | # Execução da simulação. run ou run tempo | ||
*Implementação de um MUX4:1 usando chips comerciais de portas lógicas. | # Se não tiver unidade é ps (pico segundos) | ||
;Encontro 27 e 28 (ANP e 7 nov.) | # fs => femto segundos | ||
*[[Laboratório - Implementação de um MUX4:1 em protoboard | AE2 - Atividade de Laboratório 2 ]] Passos 1 e 2 | # ps = 1000 fs; => pico segundos | ||
;Encontro 29 (9 nov.) | # ns = 1000 ps; => nano segundos | ||
*[[Laboratório - Implementação de um MUX4:1 em protoboard | AE2 - Atividade de Laboratório 2 ]] Passos 3 e 4 | # us = 1000 ns; => micro segundos | ||
*Entrega do relatório no Moodle (até 14 dias). | # ms = 1000 us; => mili segundos | ||
;Encontro 30 (14 nov.) | # sec = 1000 ms; => segundos | ||
# min = 60 sec; => minutos | |||
;Encontro 31 e 32 (16 e 21 nov.) | # hr = 60 min; => horas | ||
run 400 | |||
force -freeze sim:/mux4x1/X 1100 0 | |||
force -freeze sim:/mux4x1/Sel 00 0, 01 100, 10 200, 11 300 | |||
run 400 | |||
;Encontro 31 (4 fev.) | force -freeze sim:/mux4x1/X 0011 0 | ||
*Comentários no código (duplo traço --) | force -freeze sim:/mux4x1/Sel 00 0, 01 100, 10 200, 11 300 | ||
-- Isso eh uma linha de comentario | run 400 | ||
y <= a * b ; --o sinal y recebe o resultado da multiplicacao a x b | </syntaxhighlight> | ||
*Representação de caracteres, strings e números em VHDL. No circuito, os caracteres são representados através de bits de acordo com a [https://www.lookuptables.com/text/ascii-table tabela ASCII] básica (00 a 7F). A definição dessa tabela é feita o pacote '''[[standard.vhd]]''' da biblioteca '''std'''. | {{fig|2.7|Resultado da simulação do mux4x1 | SIM_mux4x1.png| 600 px |}} | ||
:*Caracteres (entre aspas simples) | |||
caracter: 'A' 'x' '#' (com aspas simples) | *Crie um arquivo tb_mux4x1_v2.do que repita a simulação da arquitetura v2 | ||
*Crie um arquivo tb_mux4x1_v3.do que repita a simulação da arquitetura v3 | |||
:*Palavras (entre aspas duplas), é definida no VHDL como um vetor de caracteres. | *opcionalmente é possível apenas mudar a arquitetura a ser simulado na linha, deixando 2 comentadas e uma ativa | ||
<syntaxhighlight lang=vhdl> | <syntaxhighlight lang=tcl> | ||
type string is array (positive range <>) of character; | #vsim work.mux4x1(v_logica_pura) | ||
</syntaxhighlight> | #vsim work.mux4x1(v_WHEN_ELSE) | ||
vsim work.mux4x1(v_WITH_SELECT) | |||
</syntaxhighlight> | |||
*Inclua todos os arquivos .do no projeto do Quartus e salve o arquivo QAR | |||
;Encontro 29 (25 jul.) | |||
*Implementação de um MUX4:1 usando chips comerciais de portas lógicas. | |||
;Encontro 27 e 28 (ANP e 7 nov.) | |||
*[[Laboratório - Implementação de um MUX4:1 em protoboard | AE2 - Atividade de Laboratório 2 ]] Passos 1 e 2 | |||
;Encontro 29 (9 nov.) | |||
*[[Laboratório - Implementação de um MUX4:1 em protoboard | AE2 - Atividade de Laboratório 2 ]] Passos 3 e 4 | |||
*Entrega do relatório no Moodle (até 14 dias). | |||
;Encontro 30 (14 nov.) | |||
;Encontro 31 e 32 (16 e 21 nov.) | |||
;Encontro 31 (4 fev.) | |||
*Comentários no código (duplo traço --) | |||
-- Isso eh uma linha de comentario | |||
y <= a * b ; --o sinal y recebe o resultado da multiplicacao a x b | |||
*Representação de caracteres, strings e números em VHDL. No circuito, os caracteres são representados através de bits de acordo com a [https://www.lookuptables.com/text/ascii-table tabela ASCII] básica (00 a 7F). A definição dessa tabela é feita o pacote '''[[standard.vhd]]''' da biblioteca '''std'''. | |||
:*Caracteres (entre aspas simples) | |||
caracter: 'A' 'x' '#' (com aspas simples) | |||
:*Palavras (entre aspas duplas), é definida no VHDL como um vetor de caracteres. | |||
<syntaxhighlight lang=vhdl> | |||
type string is array (positive range <>) of character; | |||
</syntaxhighlight> | |||
string: "IFSC" "teste" "teste123" | string: "IFSC" "teste" "teste123" | ||
Linha 2 714: | Linha 2 766: | ||
===Unidade 6 - Circuitos aritméticos (com VHDL) === | ===Unidade 6 - Circuitos aritméticos (com VHDL) === | ||
* 5 ENCONTROS | * 5 ENCONTROS | ||
{{collapse top | Unidade 6 - Circuitos aritméticos (com VHDL)}} | {{collapse top | expand=true| Unidade 6 - Circuitos aritméticos (com VHDL)}} | ||
<!-- | <!-- | ||
;Encontro | ;Encontro 35 (15 jul.) | ||
*Circuitos aritméticos: somadores, incrementador, decrementador, complemento de dois, multiplicador, comparadores | *Circuitos aritméticos: somadores, incrementador, decrementador, complemento de dois, multiplicador, comparadores | ||
:* [https://drive.google.com/file/d/1kql0io2sh9Mp4FfnqpEPrdUFkVhHBx6_/view?usp=drive_link slides] | :* [https://drive.google.com/file/d/1kql0io2sh9Mp4FfnqpEPrdUFkVhHBx6_/view?usp=drive_link slides] | ||
Linha 2 726: | Linha 2 778: | ||
*Ver <ref name="PEDRONI2010a"> PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657 </ref> | *Ver <ref name="PEDRONI2010a"> PEDRONI, Volnei A. Eletrônica digital moderna e VHDL; 1ª ed. Rio de Janeiro:Elsevier, 2010. 619p. . ISBN 9788535234657 </ref> | ||
*Usando o tipo '''integer''' | *Usando o tipo '''integer''' | ||
Para implementar circuitos aritméticos, ao invés de se descrever o circuito com portas lógicas conforme mostrado para somadores, subtratores, comparadores e multiplicadores, deve-se utilizar os operadores aritméticos, e o compilador realizará a escolha do melhor circuito para cada caso. Inicialmente apresentamos alguns exemplos utilizando dados do tipo '''integer'''. | Para implementar circuitos aritméticos, ao invés de se descrever o circuito com portas lógicas conforme mostrado para somadores, subtratores, comparadores e multiplicadores, deve-se utilizar os operadores aritméticos, e o compilador realizará a escolha do melhor circuito para cada caso. Inicialmente apresentamos alguns exemplos utilizando dados do tipo '''integer'''. | ||
Linha 2 747: | Linha 2 795: | ||
end architecture; | end architecture; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{fig| | {{fig|6.1|Código RTL do somador com tipo integer sem range| RTL_somadorv1.png| 300 px |}} | ||
{{fig| | {{fig|6.2|Technology Map do somador com tipo integer sem range| TM_somadorv1.png| 1000 px |}} | ||
Por isso, o uso correto do tipo integer, exige que se limite a faixa de valores ('''range 0 to 15'''), o que fará com que o compilador atribua para os sinais a quantidade correta de bits, gerando circuitos de tamanho adequado. | Por isso, o uso correto do tipo integer, exige que se limite a faixa de valores ('''range 0 to 15'''), o que fará com que o compilador atribua para os sinais a quantidade correta de bits, gerando circuitos de tamanho adequado. | ||
Linha 2 765: | Linha 2 813: | ||
end architecture; | end architecture; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{fig| | {{fig|6.3|Código RTL do somador com tipo integer com range| RTL_somadorv2.png| 300 px |}} | ||
{{fig| | {{fig|6.4|Technology Map do somador com tipo integer com range| TM_somadorv2.png| 600 px |}} | ||
Para fazer uma subtração, basta trocar o operador "+" pelo "-", e o compilador irá implementar um subtrator realizando o complemento 2 da entrada b. | Para fazer uma subtração, basta trocar o operador "+" pelo "-", e o compilador irá implementar um subtrator realizando o complemento 2 da entrada b. | ||
Linha 2 783: | Linha 2 831: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{fig| | {{fig|6.5|Código RTL do subtrator com tipo integer com range| RTL_subtratorv1.png| 300 px |}} | ||
Note nesta figura que as entradas b[3..0] são conectadas ao B[4..1] do somador, e que o B[0] é conectado ao Vcc ("1"). O mesmo ocorre com a entrada A. Ao mesmo tempo a entrada b é invertida, gerando assim o complemento de dois dessa entrada. Assim para realizar uma subtração pode ser utilizado o mesmo circuito do somador. | Note nesta figura que as entradas b[3..0] são conectadas ao B[4..1] do somador, e que o B[0] é conectado ao Vcc ("1"). O mesmo ocorre com a entrada A. Ao mesmo tempo a entrada b é invertida, gerando assim o complemento de dois dessa entrada. Assim para realizar uma subtração pode ser utilizado o mesmo circuito do somador. | ||
Linha 2 801: | Linha 2 849: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{fig| | {{fig|6.6|Código RTL do incrementador com tipo integer com range| RTL_incrementadorv1.png| 300 px |}} | ||
Note que no incrementador apenas a segunda entrada do módulo RTL somador passa a ter um valor fixo '1'. Isso faz com que o hardware necessário para efetuar a soma (+1) é reduzido. | Note que no incrementador apenas a segunda entrada do módulo RTL somador passa a ter um valor fixo '1'. Isso faz com que o hardware necessário para efetuar a soma (+1) é reduzido. | ||
Linha 2 820: | Linha 2 868: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
{{fig| | {{fig|6.7|Código RTL do decrementador com tipo integer com range| RTL_decrementadorv1.png| 300 px |}} | ||
Note que no decrementador apenas a segunda entrada do módulo RTL somador passa a ter um valor fixo, mas também nas duas entradas o sinal A(0) e B(0) recebem o valor fixo '1', para produzir um ''carry_in'' para a soma do bit A(1) com B(1). | Note que no decrementador apenas a segunda entrada do módulo RTL somador passa a ter um valor fixo, mas também nas duas entradas o sinal A(0) e B(0) recebem o valor fixo '1', para produzir um ''carry_in'' para a soma do bit A(1) com B(1). | ||
;Encontro 36 (17 jul.) | |||
*Multiplicação digital | |||
{{fig|6.8|Algoritmo de multiplicação sem sinal| Multiplier_Alg.png| 500 px |}} | |||
{{fig|6.9|Circuito de multiplicação sem sinal| Multiplier_Hw.png| 500 px |}} | |||
Para fazer uma multiplicação, basta usar o operador "*"e o compilador irá implementar um multiplicador. Neste caso para evitar o overflow é importante definir o range da saída com um tamanho suficiente para comportar o maior produto | Para fazer uma multiplicação, basta usar o operador "*"e o compilador irá implementar um multiplicador. Neste caso para evitar o overflow é importante definir o range da saída com um tamanho suficiente para comportar o maior produto | ||
Linha 2 889: | Linha 2 941: | ||
{{fig|4.10|Código RTL do multiplicador por 10| RTL_multiplicador10.png| 300 px |}} | {{fig|4.10|Código RTL do multiplicador por 10| RTL_multiplicador10.png| 300 px |}} | ||
;Encontro 37 | ;Encontro 37 (22 jul.) | ||
*A biblioteca [[Numeric std.vhd]] define os tipos UNSIGNED e SIGNED. | *A biblioteca [[Numeric std.vhd]] define os tipos UNSIGNED e SIGNED. | ||
Linha 2 906: | Linha 2 958: | ||
function RESIZE (ARG: SIGNED; NEW_SIZE: NATURAL) return SIGNED; | function RESIZE (ARG: SIGNED; NEW_SIZE: NATURAL) return SIGNED; | ||
function RESIZE (ARG: UNSIGNED; NEW_SIZE: NATURAL) return UNSIGNED; | function RESIZE (ARG: UNSIGNED; NEW_SIZE: NATURAL) return UNSIGNED; | ||
* Utilizar a função RESIZE para aumentar o número de bits na entrada de um operador. Isso visa aumentar o número de bits a ser usado pelo operador. | |||
* Utilizar a função RESIZE para aumentar o número de bits na saída de uma pperação. Isso visa apenas adequar o número de bits ao número especificado na porta da entidade. | |||
* Em números usando o tipo UNSIGNED, o RESIZE apenas acrescenta ZEROS a esquerda até atingir o número de bits. | |||
* Em números usando o tipo SIGNED, o RESIZE apenas repete o MSB a esquerda até atingir o número de bits. | |||
--============================================================================ | --============================================================================ | ||
Linha 2 934: | Linha 2 991: | ||
|background colour=#F5FFFA}} | |background colour=#F5FFFA}} | ||
</center> | </center> | ||
* A recomendação da IEEE é utilizar nas portas das entidades sempre tipos std_logic e std_logic_vector. | |||
* Para realizar operações aritméticas utilize preferencialmente os tipos UNSIGNED e SIGNED | |||
* Implementar as diferentes unidades aritméticas (incrementador, decrementador, somador, subtrator, multiplicador, divisor) usando o tipo UNSIGNED e também SIGNED. | |||
<!-- | |||
;Encontro 37 e 38 (22 e 25 fev.) | |||
*Unidade de Aritmética UA). | *Unidade de Aritmética UA). | ||
Linha 3 117: | Linha 3 181: | ||
Durante o semestre serão realizadas 4 avaliações. As avaliações devem ser enviadas pela plataforma Moodle com os arquivos solicitados. | 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: | ;Data das avaliações: | ||
*A1a - (3 pontos) Sistema de Numeração e códigos : | *A1a - (3 pontos) Sistema de Numeração e códigos : XX/2025 | ||
*A1b - (4 pontos) Expressões lógicas e mapa de Karnaugh : | *A1b - (4 pontos) Expressões lógicas e mapa de Karnaugh : XX/2025 | ||
*A1c - (4 pontos) Circuitos lógicos, Introdução ao VHDL e revisão de A1a e | *A1c - (4 pontos) Circuitos lógicos, Introdução ao VHDL e revisão de A1a e A1b : XX/2025 | ||
* | *A2 - (10 pontos) Circuitos combinacionais e ariméticos : XX/2025 | ||
* | *R1 - Recuperação de A1: XX/2025 | ||
* | *R2 - Recuperação de A2: XX/2025 | ||
Folhas de consulta: | Folhas de consulta: | ||
*A1b, A1c [[Media:Algebra_booleana.pdf | Álgebra booleana]] | *A1b, A1c [[Media:Algebra_booleana.pdf | Álgebra booleana]] | ||
Linha 3 128: | Linha 3 192: | ||
*A2b [[Media:Numeric_std_conversions.png | Conversões do pacote numeric_std]] ou [[Media:Numeric_stdConvertions.gif | Conversões do pacote numeric_std (DOULOS)]] | *A2b [[Media:Numeric_std_conversions.png | Conversões do pacote numeric_std]] ou [[Media:Numeric_stdConvertions.gif | Conversões do pacote numeric_std (DOULOS)]] | ||
<!-- | |||
== Atividade relâmpago (AR) == | == 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. | 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) == | == 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. | 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. | ||
<!-- | |||
===AE1 - Projeto de um conversor de binário para mostrador de 7 segmentos=== | ===AE1 - Projeto de um conversor de binário para mostrador de 7 segmentos=== | ||
{{collapse top | bg=lightyellow | AE1 - Projeto de um conversor de binário para mostrador de 7 segmentos}} | {{collapse top | bg=lightyellow | AE1 - Projeto de um conversor de binário para mostrador de 7 segmentos}} | ||
Linha 3 302: | Linha 3 368: | ||
*para DE2-115 '''{Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE115F29C7] ) > [OK]}''' | *para DE2-115 '''{Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE115F29C7] ) > [OK]}''' | ||
*para MERCÚRIO IV '''{Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE30F23C7] ) > [OK]}''' | *para MERCÚRIO IV '''{Assignments > Device... > Device family (Family: [Cyclone IV E], Name filter: [EP4CE30F23C7] ) > [OK]}''' | ||
Após selecionar o dispositivo faça uma nova '''[Analysis and Synthesis]'''. | |||
Para evitar que saídas de circuitos da placa sejam ligadas ao terra através do FPGA, defina como alta impedância o estado dos pinos não utilizados no projeto. | Para evitar que saídas de circuitos da placa sejam ligadas ao terra através do FPGA, defina como alta impedância o estado dos pinos não utilizados no projeto. | ||
Linha 3 310: | Linha 3 377: | ||
*Abra a página com o resumo da pinagem do kit [[Pinagem dos dispositivos de entrada e saída do kit MERCURIO IV]]. Observe a tabela com a pinagem das chaves disponíveis neste kit. | *Abra a página com o resumo da pinagem do kit [[Pinagem dos dispositivos de entrada e saída do kit MERCURIO IV]]. Observe a tabela com a pinagem das chaves disponíveis neste kit. | ||
{| class="wikitable" style="vertical-align:middle; background-color:#FFF; color:#222;" | {| class="wikitable" style="vertical-align:middle; background-color:#FFF; color:#222;" | ||
|- style="font-weight:bold;" | |- style="font-weight:bold;" | ||
Linha 3 317: | Linha 3 385: | ||
! I/O Standard | ! I/O Standard | ||
|- | |- | ||
| SW[0] || | | SW[0] || PIN_V21 || Chave tipo Slide Switch 3 || 3.3V | ||
|- | |- | ||
| SW[1] || | | SW[1] || PIN_W22 || Chave tipo Slide Switch 2 || 3.3V | ||
|- | |- | ||
| SW[2] || | | SW[2] || PIN_W21 || Chave tipo Slide Switch 1 || 3.3V | ||
|- | |- | ||
| SW[3] || | | SW[3] || PIN_Y22 || Chave tipo Slide Switch 0 || 3.3V | ||
|} | |} | ||
* Configurar como entrada os seguintes pinos: | * Configurar como entrada os seguintes pinos: | ||
eA | eA Y22 | ||
eB | eB W21 | ||
eC | eC W22 | ||
eD | eD V21 | ||
*Observe a tabela com a pinagem dos display (mostrador de sete segmentos) disponíveis neste kit. | *Observe a tabela com a pinagem dos display (mostrador de sete segmentos) disponíveis neste kit. | ||
{| class="wikitable" style="vertical-align:middle; background-color:#FFF; color:#222;" | {| class="wikitable" style="vertical-align:middle; background-color:#FFF; color:#222;" | ||
Linha 3 430: | Linha 3 498: | ||
:* Apêndice (se desejar pode ser disponibilizados vídeos do funcionamento do circuito no Passo 4 | :* Apêndice (se desejar pode ser disponibilizados vídeos do funcionamento do circuito no Passo 4 | ||
* O relatório deve também responder as questões levantadas e mostrar que os objetivos apresentados na introdução foram atendidos. | * O relatório deve também responder as questões levantadas e mostrar que os objetivos apresentados na introdução foram atendidos. | ||
{{collapse bottom}} | {{collapse bottom}} | ||
--> | |||
==Referências Bibliográficas:== | ==Referências Bibliográficas:== | ||
<references/> | <references/> | ||
{{ENGTELECO}} | {{ENGTELECO}} |
Edição atual tal como às 07h59min de 12 de agosto de 2025
1 Registro on-line das aulas
1.1 Unidade 1 - Aula inicial, Introdução a disciplina
- 1 ENCONTRO
Unidade 1 - Aula inicial, Introdução a disciplina |
---|
|
1.2 Unidade 2 - Sistema de numeração e códigos
- 5 ENCONTROS
Unidade 2 - Sistema de numeração e códigos |
---|
1.3 Unidade 3 - Funções, portas lógicas e álgebra booleana
- 13 ENCONTROS
Unidade 3 - Funções, portas lógicas e álgebra booleana |
---|
1.4 Unidade 4 - Introdução a linguagem VHDL e Quartus/ModelSim
- 7 ENCONTROS
Unidade 4 - Introdução a linguagem VHDL e Quartus/ModelSim |
---|
1.5 Unidade 5 - Circuitos lógicos combinacionais (com VHDL)
- 7 ENCONTROS
Unidade 5 - Circuitos lógicos combinacionais (com VHDL) |
---|
1.6 Unidade 6 - Circuitos aritméticos (com VHDL)
- 5 ENCONTROS
Unidade 6 - Circuitos aritméticos (com VHDL) |
---|
2 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
- A1a - (3 pontos) Sistema de Numeração e códigos : XX/2025
- A1b - (4 pontos) Expressões lógicas e mapa de Karnaugh : XX/2025
- A1c - (4 pontos) Circuitos lógicos, Introdução ao VHDL e revisão de A1a e A1b : XX/2025
- A2 - (10 pontos) Circuitos combinacionais e ariméticos : XX/2025
- R1 - Recuperação de A1: XX/2025
- R2 - Recuperação de A2: XX/2025
Folhas de consulta:
- A1b, A1c Álgebra booleana
- A2a, A2b Tabelas das figuras 3.6, 3.10 e 4.1 do livro do Pedroni.
- A2b Conversões do pacote numeric_std ou Conversões do pacote numeric_std (DOULOS)
3 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.
4 Referências Bibliográficas: