CIL29003-2015-2: mudanças entre as edições

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Odilson (discussão | contribs)
Odilson (discussão | contribs)
 
(33 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 2: Linha 2:
''Professor'': [[Odilson Tadeu Valle]]
''Professor'': [[Odilson Tadeu Valle]]
<br>''Email'': odilson@ifsc.edu.br
<br>''Email'': odilson@ifsc.edu.br
<br>''Atendimento paralelo'': das?? às ?? e das ?? às ??. Local: Lab. de Desenvolvimento.
<br>''Atendimento paralelo'': das 15h40 às 16h35 e das 9h40 às 10h35. Local: Lab. de Desenvolvimento.
 
[http://docente.ifsc.edu.br/odilson/CIL29003/ Página pessoal com slides das aulas]


* Avaliações
* Avaliações
Linha 53: Linha 55:
#Qual é o maior e menor valor decimal que se consegue representar em complemento de dois com 8 dígitos binários?
#Qual é o maior e menor valor decimal que se consegue representar em complemento de dois com 8 dígitos binários?
#Livro Pedroni: 3.1 ==> 3.22
#Livro Pedroni: 3.1 ==> 3.22
#Livro Pedroni: 4.7 ==> 4.16, 4.18 e 4.19
#O consumo de potência em um circuito lógico é dividido em estática e dinâmica. Defina cada uma dessa potências e quais são as providências a serem tomadas para sua minimização.
#Liste os três tipos de ''buffer''. Qual é sua função lógica? Quais são suas principais aplicações?
{{Collapse bottom}}
{{Collapse bottom}}


{{Collapse top |Lista para a segunda avaliação}}
{{Collapse top |Lista para a segunda avaliação}}
#Livro Pedroni: 4.7 ==> 4.16, 4.18 e 4.19
#Seções do livro a serem estudadas:
#O consumo de potência em um circuito lógico é dividido em estática e dinâmica. Defina cada uma dessa potências e quais são as providências a serem tomadas para sua minimização.
##5.1, 5.2, 5.3, 5.4, 5.5, 5.6 e 5.9
#Liste os três tipos de ''buffer''. Qual é sua função lógica? Quais são suas principais aplicações?
##10.1, 10.2, 10.3, 10.5, 10.6 e 10.9
##11.1, 11.5, 11.6, 11.7 e 11.13.
##12.1, 12.2, 12.3, 12.5, 12.6, 12.10, 12.11, 12.12, 12.13 e 12.15.
#Livro Pedroni: 5.1, 5.5, 5.8 ==> 5.19, 5.22 ==> 5.28, 5.30 ==> 5.38.
#Livro Pedroni: 5.1, 5.5, 5.8 ==> 5.19, 5.22 ==> 5.28, 5.30 ==> 5.38.
#Utilizando álgebra Booleana simplifique as seguintes funções lógicas, mostre todo o processo:
#Utilizando álgebra Booleana simplifique as seguintes funções lógicas, mostre todo o processo:
Linha 68: Linha 75:
#Para cada uma das funções lógicas da questão anterior, monte a tabela-verdade equivalente.
#Para cada uma das funções lógicas da questão anterior, monte a tabela-verdade equivalente.
#Derive uma equação SOP mínima (irredutível) para cada uma das funções Booleanas representadas pelas tabelas-verdade da questão anterior, fazendo uso de mapas de Karnaugh.
#Derive uma equação SOP mínima (irredutível) para cada uma das funções Booleanas representadas pelas tabelas-verdade da questão anterior, fazendo uso de mapas de Karnaugh.
#Livro Pedroni: 10.4 ==> 10.17
#Livro Pedroni: 11.8 ==> 11.12, 11.14 ==> 11.21, 11.23, 11.27 e 11.28
#Livro Pedroni: 12.1 ==> 12.3, 12.6a) 12.6b), 12.9 ==> 12.12, 12.16, 12.17, 12.22
{{Collapse bottom}}
{{Collapse bottom}}


{{Collapse top |Lista para a terceira avaliação}}
{{Collapse top |Lista para a terceira avaliação}}
#Seções do livro a serem estudadas:
#Seções do livro a serem estudadas:
##11.1, 11.5, 11.6, 11.7, 11.13.
##12.1, 12.2, 12.3, 12.5, 12.6, 12.10, 12.1112.12, 12.13, 12.15.
##13.1, 4.10, 13.2, 13.3.1, 13.4, 13.10.
##13.1, 4.10, 13.2, 13.3.1, 13.4, 13.10.
##14.1, 4.11, 4.12, 14.2, 14.3, 14.5, 14.7.
##14.1, 4.11, 4.12, 14.2, 14.3, 14.5, 14.7.
#Exercícios Livro Pedroni:
#Exercícios Livro Pedroni:
##11.8 ==> 11.12, 11.14 ==> 11.21, 11.23, 11.27 e 11.28
##12.1 ==> 12.3, 12.6a) 12.6b), 12.9 ==>12.12, 12.16, 12.17, 12.22
##13.2, 13.7, 13.8, 13.9
##13.2, 13.7, 13.8, 13.9
##14.1 ==> 14.5, 14.8, 14.23, 14.33, 14.37, 14.38, 14.39.
##14.1 ==> 14.5, 14.8, 14.23, 14.33, 14.37, 14.38, 14.39.
#Para o gerador de sequências pseudorandômicas da Figura 14.30, calcule a sequência dos 25 primeiros bits produzidos pelo circuito, após a execução de um Reset no sistema.
#Para o gerador de sequências pseudorandômicas da Figura 14.30, calcule a sequência dos 25 primeiros bits produzidos pelo circuito, após a execução de um Reset no sistema.
#Faça o diagrama de ligações para um SR de 16 bits, com entrada série e saída paralela, baseado no [http://www.ti.com/lit/ds/symlink/sn74als164a.pdf sn74als164a]
#Faça um diagrama de tempo que explicite a entrada e saída do valor 10001101 no SR [http://www.ti.com/lit/ds/symlink/sn74als165.pdf sn74als165]
#Faça um diagrama de tempo que mostre a entrada serial do valor 1110 com deslocamento para a direita e, em seguida, o valor 1011 com deslocamento para a esquerda no [http://www.ti.com/lit/ds/symlink/sn74as194.pdf sn74as194].
#Faça um diagrama de tempo que mostre a entrada serial do valor 1110 com deslocamento para a direita e, em seguida, entrada paralela do valor 1011 com deslocamento para a direita no [http://www.ti.com/lit/ds/symlink/sn74as194.pdf sn74as194].
#Faça o diagrama de ligações para obter duas versões de um contador módulo 10, baseado no [http://www.ti.com/lit/ds/symlink/sn74ls90.pdf SN74LS90].
#Faça o diagrama de ligações para obter um contador de 2 à 8, baseado no [http://www.ti.com/lit/ds/symlink/sn54als163b.pdf SN54ALS162B].
#Faça o diagrama de ligações para obter um contador módulo 256 ascendente, baseado no [http://www.ti.com/lit/ds/symlink/sn74als191a.pdf SN74ALS191A].
#Faça o diagrama de ligações para obter um contador módulo 256 descendente, baseado no [http://www.ti.com/lit/ds/symlink/sn74als193a.pdf SN74ALS193A].
#Faça o diagrama de ligações para obter um contador de 12 à 0, baseado no [http://www.ti.com/lit/ds/symlink/sn74als169b.pdf SN74ALS169B].
#Faça o diagrama de ligações para obter um contador decimal ascendente, baseado no [http://www.ti.com/lit/ds/symlink/sn74192.pdf SN74LS192].
{{Collapse bottom}}
{{Collapse bottom}}


=Diário de aulas=
=Diário de aulas=


{{Collapse top |Aula 1 - 5/10/15: Apresentação da disciplina}}
==Aula 1 - 5/10/15: Apresentação da disciplina==
* Apresentação da disciplina, plano de aula, trabalhos e métodos de avaliação.
* Apresentação da disciplina, plano de aula, trabalhos e métodos de avaliação.
# Auto apresentação
# Auto apresentação
Linha 97: Linha 113:
# [[Engenharia de Telecomunicações (páginas das disciplinas)|Relação com outras disciplinas do curso]]
# [[Engenharia de Telecomunicações (páginas das disciplinas)|Relação com outras disciplinas do curso]]
# Conceitos iniciais ('''Seção 1.2 à 1.8 do Pedroni'''):
# Conceitos iniciais ('''Seção 1.2 à 1.8 do Pedroni'''):
## Analógico x Digital
## [http://docente.ifsc.edu.br/odilson/CIL29003/aula-1-introducao.pdf Introdução a Circuito Lógicos]
### ADC <==> DAC
 
## Lógica binária: 2 níveis, 0 e 1
### 4 bits = nibble
### 8 bits = byte
### n bits = word (16, 32, 64)
## Circuitos digitais: cada circuito digital pode ser descrito por uma função binária que é como ele processa os bits que recebe, Seção 1.4 do Pedroni
##Circuitos combinacionais versus sequenciais.
##Circuitos integrados, placas de circuitos e tensões.
{{Collapse bottom}}


{{Collapse top |Aula 2 - 6/10/15: Representações Binárias}}
==Aula 2 - 6/10/15: Sistemas de Numeração==


Seção 2.2 e 2.3 do Pedroni.
Seção 2.2 e 2.3 do Pedroni.


==Sistemas de numeração==
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-2-Sistemas-de-numeracao.pdf Sistemas de Numeração]
Observe a Figura do odômetro.
 
[[Arquivo:odometro.jpg|100px]]
 
Suponha que o mesmo possua somente duas roldanas de algarismos e que cada algarismo represente exatamente 1 km. Qual a quantidade máxima de quilômetros que o suposto odômetro pode representar?
 
{| style="border-style: solid; border-width: 20px"
|- 
| 0 || 0
|-
| 0 || 1
|-
| 0 || ...
|-  
| 0 || 8
|-  
| 0 || 9
|-
| 1 || 0
|-
| 1 || 1
|-
| 1 || ...
|-
| 1 || 8
|-
| 1 || 9
|-
| ... || ...
|-
| 9 || 0
|-
| 9 || 1
|-
| 9 || ...
|-  
| 9 || 8
|-
| 9 || 9
|-
| 0 || 0
|-
| ... || ...
|}
 
Agora suponha que cada roldana tenha impresso somente os valores '''0''' e '''1'''. Qual a quantidade máxima de quilômetros que o mesmo pode representar?
 
{| style="border-style: solid; border-width: 20px"
|-  
| MSB || LSB
|-
| 0 || 0
|-
| 0 || 1
|-
| 1 || 0
|-
| 1 || 1
|-
| 0 || 0
|-
| ... || ...
|}
 
Obs.: LSB (''least significant bit'') é o bit menos significativo que é o equivalente as unidades na representação decimal. MSB (''most significant bit'') é o bit mais significativo e sempre ocupa a posição mais a esquerda da representação.
 
Este sistema de numeração é conhecido como binário ("que tem aspecto dual, ou é formado por dois elementos ou partes").
 
No caso anterior como poderíamos representar maior quantidade de quilômetros?
 
De outro modo, mantendo-se as mesmas duas roldanas, como pode-se aumentar a capacidade de contagem quilométrica, mais do que o permitido no sistema decimal? R. Aumenta-se o número de símbolos disponíveis em cada roldana. Por exemplo, se adotarmos a seguinte simbologia: 0, 1, ..., 8, 9, A, B, C, D, E, F, pode-se ter a seguinte representação quilométrica:
 
{| style="border-style: solid; border-width: 20px"
|- 
| 0 || 0
|-
| 0 || 1
|-
| 0 || ...
|-
| 0 || E
|-
| 0 || F
|-
| 1 || 0
|-
| 1 || 1
|-
| 1 || ...
|-
| 1 || E
|-
| 1 || F
|-
| ... || ...
|-
| 9 || 0
|-
| 9 || 1
|-
| 9 || ...
|-
| 9 || E
|-
| 9 || F
|-
| A || 0
|-
| A || 1
|-
| ... || ...
|-
| F || E
|-
| F || F
|-
| 0 || 0
|-
| ... || ...
|}
 
Este é o sistema de numeração hexadecimal.
 
Um outro importante sistema de numeração é o octal, com oito símbolos: 0, 1, ..., 6, 7.
 
Os sistemas de numeração Hexadecimal e Octal são importantes pois guardam uma relação direta com o sistema binário. <math> 8 = 2^3 e 16 = 2^4 </math>. Maiores detalhes serão vistos posteriormente.
 
Perceba que é possível a construção de qualquer sistema de numeração.


==Conversão entre sistemas de numeração==
==Aula 3 - 13/10/15: Representação de números reais e Aritmética Binária==


Como é de conhecimento geral, o sistema de numeração mais utilizado port seres humanos é o sistema decimal. Não tão conhecido assim, mas muito utilizado, é o sistema de numeração binário, amplamente adotado nos sistema informatizados.
Seção 2.8 e 3.1 do Pedroni


Uma pergunta que cabe é, por exemplo, quando digitamos algum número em uma calculadora, o que acontece? Em primeiro lugar, a calculadora apresenta o valor digitado no visor, para termos certeza do que digitamos e, em seguida, internamente à calculadora este valor é convertido para binário, o sistema de numeração que ela entende. Como esta conversão ocorre?
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-4-representacoes-binarias.pdf Representação de números reais]
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-5-aritmetica-binaria.pdf Aritmética Binária]


===Conversão de outras bases para a base decimal===
==Aula 4 - 19/10/15: Aritmética Binária==


A regra geral para conversão de binário para um número decimal é assim expressa:
Seção 3.2 e 3.3 do Pedroni


<math>y = \sum_{k=0}^{N-1} a_{N-1-k} 2^{N-1-k}</math>
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-5-aritmetica-binaria.pdf Aritmética Binária]


onde <math>y</math> é um número decimal e <math>a = a_{N-1} \dots a_1a_0</math> é sua representação binária usual.
==Aula 5 - 20/10/15: Multiplicação Binária==


Observe que esta regra pode ser estendida para qualquer sistema de numeração.
Seção 3.4 e 3.5 do Pedroni


Por exemplo, vamos converter <math>11001_2</math> para a base decimal.
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-6-multiplicacao-binaria.pdf Multiplicação Binária]


<math>11001_2 = 1\cdot2^4+1\cdot2^3+0\cdot2^2+0\cdot2^1+1\cdot2^0 = 1\cdot16+1\cdot8+0\cdot4+0\cdot2+1\cdot1 = 25</math>
==Aula 6 - 26/10/15: Divisão Binária e Portas NOT, AND, NAND, OR, NOR==


Outro exemplo, vamos converter <math>703_8</math> para a base decimal.
Seção 3.6, 3.7 e 4.1 a 4.4 do Pedroni


<math>703_8 = 7\cdot8^2+0\cdot8^1+3\cdot8^0 = 7\cdot64+0\cdot8+3\cdot1 = 451</math>
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-6-multiplicacao-binaria.pdf Multiplicação Binária]


===Conversão da base decimal para outras bases===
==Aula 7 - 27/10/15: Portas NOT, AND, NAND, OR, NOR==


A conversão de um número da base decimal para qualquer outra base pode ser efetivada usando-se divisões sucessivas do valor decimal pela base a ser convertido, tomando-se com resultado os sucessivos restos dessa divisão.
Seção 4.1 a 4.4 do Pedroni


Por exemplo, para converter 23 para a base binária devemos fazer o seguinte procedimento:
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-7-portas-logicas.pdf Introdução aos Circuitos Digitais]


[[Arquivo:ConversaoDecimalBinario.jpg|300px]]
==Aula 8 - 3/11/15: Buffers==


O procedimento para outras bases é o mesmo, por exemplo, para converter-se 258 para a base '''8''', utiliza-se o mesmo procedimento acima, substituindo os valores 2 por 8, no divisor.
Seção 4.1 a 4.4 do Pedroni


===Conversão entre bases de origem binária===
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-7-portas-logicas.pdf Introdução aos Circuitos Digitais]


Para conversão entre as bases binária, octal e hexadecimal, basta fazer-se o uso das seguintes tabelas de conversão.
==Aula 9 - 7/11/15: Laboratório 1==
#Leia e complete até a Seção 7 (inclusive) do tutorial [ftp://ftp.altera.com/up/pub/Altera_Material/13.0/Tutorials/Schematic/Quartus_II_Introduction.pdf Quartus II Introduction - Using Schematic Designs]. Utilize o '''Quartus versão 13''' de sua máquina local. Faça as seguintes adaptações no tutorial:
## Item 4.3 -- Utilize: '''Family: Cyclone IV E''' e '''Available Devices: EP4CE30F23C7'''.
## Item 7 -- Figura 27: '''x1 = PIN_V21''', '''x2 = PIN_W22''' e '''f = PIN_D6'''. [[Pinagem_dos_dispositivos_de_entrada_e_saída_do_kit_MERCURIO_IV | Detalhes da pinagem.]]
#Salve o projeto. Ao salvar arquivos e projetos tome '''sempre''' as seguintes precauções, sob pena de erros de compilação:
##Cada projeto deve ter um diretório próprio.
##'''Não''' inicie o nome de projetos e/ou circuitos com caracteres numéricos.
##'''Não''' nomeie diretórios e/ou arquivos com espaço em branco, se necessário utilize "_" (''underline'') como caracter separador.
#Procedimento para salvar e recuperar projetos
##Para salvar um projeto: '''[Project > Archive Project... > Archive file name: nome_do_projeto.qar]'''
##O arquivo será salvo em: '''/home/aluno/nome_do_projeto/output_files/nome_do_projeto.qar'''
##Copie o arquivo para algum repositório particular remoto ou mande o mesmo (nome_do_projeto.qar) para o seu email.
#Para restaurar um projeto:
##Crie um novo projeto vazio: '''[File > New Project Wizard... > Next > What is workink directory for this project?: /home/aluno/nome_do_diretorio > What is the name of this project?: nome_do_projeto > Next > Next > Family: Ciclone IV E > Device: EP4CE30F23C7 > Next > Finish]'''
##Baixe o arquivo salvo.
##Restaure o arquivo de backup: '''[Restore Archived Project > Archive name: nome_do_projeto.qar]'''
#Há duas formas de executar o Quartus, acesso local e acesso remoto. Nas máquinas do laboratório de programação utilizaremos o acesso local, basta rodar o '''Quartus versão 13'''.
#Quem desejar praticar em casa pode acessar remotamente, mas antes peça ao professor para criar uma conta na máquina de acesso remoto.
#Para acesso remoto o procedimento é o seguinte:
##Preferencialmente acesse a IFSC-CLOUD usando o seguinte [http://wiki.sj.ifsc.edu.br/index.php/Acesso_ao_IFSC-CLOUD roteiro]
##Outra opção é acesso remoto a máquina servidora com o seguinte comando: ssh -X nome_de_usuario@200.135.233.26
##Execute o Quartus com o seguinte comando no terminal: '''/opt/altera/13.0sp1/quartus/bin/quartus &'''
#Em ambos os casos e somente no primeiro uso, ajuste o atalho para o navegador, para poder ler os manuais quando necessário, por meio de '''Tools > Options > Internet Connectivity''', no campo '''Web browser''' preencha: '''/usr/bin/firefox'''.


{| style=1
==Aula 10 - 9/11/15: Laboratório 2==
|-
#Continuação e complementação do laboratório 1.
| octal || binário
#O primeiro laboratório foi focado no uso do Quartus (interface), inserção do projeto (''schematic''), compilação e o início da simulação funcional (QSIM).
|-
#Hoje vamos gravar e utilizar o Kit '''Mercurio IV''' (Family='''Cyclone IV E''' / device='''EP4CE30F23C7''') seguindo o roteiro:[[Preparando para gravar o circuito lógico no FPGA]]
| 0 || 000
#Siga o roteiro até que sua placa esteja funcionando corretamente.
|-
#Uma vez a placa funcionando complete a tabela verdade do circuito montado, fazendo as respectivas combinações de entrada, através das chaves de entrada, e observando a saída, através do led:
| 1 || 001
{| border="1" cellpadding="10" cellspacing="3" style="text-align: center;"
|-
| 2 || 010
|-
| 3 || 011
|-
| 4 || 100
|-
| 5 || 101
|-
| 6 || 110
|-
| 7 || 111
|}
{| style=1
|- 
| hexadecimal || binário
|-
| 0 || 0000
|-
| 1 || 0001
|-
| 2 || 0010
|-
| 3 || 0011
|-
| 4 || 0100
|-
| 5 || 0101
|-
| 6 || 0110
|-  
| 7 || 0111
|-
| 8 || 1000
|-
| 9 || 1001
|-  
|-  
| A || 1010
| x1 || x2 || f
|-  
|-  
| B || 1011
| 0 || 0 ||  
|-
| C || 1100
|-  
|-  
| D || 1101
| 0 || 1 ||
|-
| E || 1110
|-
| F || 1111
|}
 
Por exemplo, para converter <math>730_8</math> para binário, deve-se tomar dígito a dígito da tabela acima e ir montando o valor binário equivalente: <math>7_8 = 111_2</math>, <math>3_8 = 011_2</math> e <math>0_8 = 000_2</math>. Portanto o resultado da conversão é <math> 111011000_2</math>
 
Se desejarmos converter da base octal para a hexadecimal e vice-versa, a maneira mais fácil é primeiro a conversão da base de origem para a base binária e, em seguida, desta para a base destino. Por exemplo, para converter <math> FACA_{16}</math> para a base octal procedemos primeiro a conversão para a base binária (<math> 1111101011001010_2</math>) e em seguida, tomando três a três dígitos a partir do LSB, convertemos para o octal usando a tabela, resultando em <math> 175312_8</math>
{{Collapse bottom}}
 
{{Collapse top |Aula 3 - 12/10/15: Representações binárias}}
 
Seção 2.3 à 2.7 do Pedroni
 
A tabela a seguir representa os númerios decimais de 0 a 15 pelos códigos binário convencinal, octal, hexadecimal, Gray, one-hot, Johnson e BCD.
[[Arquivo:representacoes_binarios.jpg |Tabela de equivalência entre códigos|800px]]
 
Código Gray: código de distância unitária porque a distância entre duas palavras adjacentes é sempre 1 bit [http://pt.wikipedia.org/wiki/C%C3%B3digo_de_Gray].
 
Código one-hot: frequentemente utilizado na codificação de máquinas de estados [http://en.wikipedia.org/wiki/One-hot] [http://en.wikipedia.org/wiki/Ring_counter].
 
Código Johnson: Também utilizado para representar máquinas de estados. É um código intermediário entre o one-hot e o Gray, em termos de uso do hardware.
 
Código BCD (''binary-coded decimal''): cada dígito de um número decimal é representado por um conjunto de 4 bits do código binário.
 
==Códigos para números negativos==
 
Como representar sinal no código binário?
 
===Código sinal-magnitude===
Nesse caso o MSB representa o sinal: 0 = + e 1 = -. Assim sendo, o MSB não faz parte da representação sequencial binária do número. Ex:
#0000 = +0
#1001 = -1
#110011 = -19
#010011 = +19
#111100111 = -231
 
===Código complemento de um===
Se o MSB for 0 (número positivo), para obter o equivalente negativo, basta inverter todos os bits. Ex:
#0000 = +0 ==> 1111 = -0
#0101 = +5 ==> 1010 = -5
 
===Código complemento de dois===
Esta é a opção adota para representar números negativos em praticamento todos os computadores e outros sistema digitais.
 
A representação binária de um número negativo  é obtida tomando sua representação positiva, invertendo todos os bits e então adicionando um a ele. Exemplo, -7 (5 bits) é igual a 00111 ==> 11000 + 1 ==> 11001
 
Regra prática
 
Para cálculo do equivalente decimal de um número representado em complemento de dois, pode-se fazer uso do modelo apresentado no exemplo:
 
{| border=1
|-  
|-  
| 1 || 0 || 1 || 1 || 0 || 1
| 1 || 0 ||  
|-  
|-  
| -32 || + 0 || +8 || +4 || +0 || +1
| 1 || 1 ||  
|}
|}
O resultado obtido é condizente com o esperado?


Ao somar-se todos os valores da segunda linha da tabela acima, obtém-se o valor 19.
==Aula 11 - 10/11/15: Avaliação 1==
==Aula 12 - 16/11/15: Álgebra booleana e Tabelas-verdade==
==Aula 13 - 17/11/15: Álgebra de Boole, Minterms, maxterms, Equações SOP e POS==
==Aula 14 - 23/11/15: Minterms, maxterms, Equações SOP e POS==
==Aula 15 - 24/11/15: Mapas de Karnaugh e projeto de conversor BCD para SSD==
==Aula 16 - 30/11/15: Laboratório 3 - Conversor BCD para SSD==
==Aula 17 - 1/12/15: Famílias Lógicas==
==Aula 18 - 7/12/15: Circuitos combinacionais lógicos - Codificadores, decodificadores, multiplexadores==
==Aula 19 - 8/12/15: Circuitos combinacionais lógicos - detetor de paridade e portas com histerese. Circuitos combinacionais aritméticos==
==Aula 20 - 14/12/15: Circuitos combinacionais aritméticos==
==Aula 21 - 15/12/15: Latches e Flip-Flops==
==Aula 22 - 19/12/15: Laboratório 4 - Circuitos combinacionais aritméticos==
==Aula 23 - 21/12/15: Dúvidas para a avaliação 2==
==Aula 24 - 22/12/15: Avaliação 2==
==Aula 25 - 1/2/16: Recapitulação, discussão projeto, registradores de deslocamento==
==Aula 26 - 2/2/16: Registradores de deslocamento==
==Aula 27 - 15/2/16: Contadores==
==Aula 28 - 16/2/16: Contadores==
==Aula 29 - 22/2/16: Laboratório 5 - [[Contador_binário_síncrono | Contador binário síncrono]]==


Usando números de 8 bits, Calcule o complemento de dois para:
==Aula 30 - 23/2/16: Divisor de frequência e gerador pseudorrandômico==
#-0
==Aula 31 - 29/2/16: Avaliação 3==
#-1
==Aula 32 - 1/3/16: Projeto final em equipes==
#-17
==Aula 33 - 7/3/16: Projeto final em equipes==
#-123
==Aula 34 - 8/3/16: Projeto final em equipes==
#-128
==Aula 35 - 12/3/16: Projeto final em equipes==
Algum problema?
==Aula 36 - 14/3/16: Apresentação e avaliação do projeto final==
A avaliação será feita sobre a demostração de funcionamento do circuito no FPGA e em questões a serem respondidas individualmente pelos membros da equipe.


{{Collapse bottom}}
==Aula 37 - 15/3/16: Reavaliação final==

Edição atual tal como às 14h10min de 7 de março de 2016

1 Dados Importantes

Professor: Odilson Tadeu Valle
Email: odilson@ifsc.edu.br
Atendimento paralelo: 3ª das 15h40 às 16h35 e 5ª das 9h40 às 10h35. Local: Lab. de Desenvolvimento.

Página pessoal com slides das aulas

  • Avaliações
    • 3 avaliações (P1, P2 e P3) mais um projeto final (PF).
    • Cada uma das avaliações terá terá um conceito numérico: A, B, C e D. Conceito mínimo para não necessitar reavaliação: C.
    • Um ou mais conceitos D implica na realização da reavaliação: uma única a ser realizada no último dia de aula.

IMPORTANTE: o direito de recuperar uma avaliação em que se faltou somente existe mediante justificativa reconhecida pela coordenação. Assim, deve-se protocolar a justificativa no prazo de 48 horas, contando da data e horário da avaliação e aguardar o parecer da coordenação.

1.1 Plano de Ensino

Cronograma_de_atividades_(CIL-EngTel)

1.2 IFSC-Cloud

O IFSC-Cloud permite que qualquer usuário cadastrado acesse vários programas oficiais do ISFC remotamente, entre outros o Quartus que será utilizado intensivamente nesta disciplina. Inclusive permite que o aluno deixe processos/simulações longas rodando e verificar os resultados em um próximo acesso.

Para os alunos ainda não cadastrados na IFSC-Cloud, peça para o professor fazer seu cadastro. Após o cadastro siga exatamente TODOS os passos de Acesso_ao_IFSC-CLOUD. Caso tenha algum problema com a senha, entre em contato com o professor

1.3 Listas de exercícios

Lista para a primeira avaliação
  1. Converta para decimal
    1. 1001102
    2. 111102
    3. 1110112
    4. 10100002
    5. 110001012
    6. 110011001101012
    7. 148
    8. 678
    9. 1538
    10. 15448
    11. 20638
    12. 47916
    13. 4AB16
    14. BDE16
    15. F0CA16
    16. 2D3F16
  2. Converta para a base indicada:
    1. 142810=X16
    2. 42810=X8
    3. 2810=X2
    4. F0F016=X2
    5. 14288=X16
    6. 10010102=X16
    7. 100101010=X16
    8. 142816=X8
  3. Livro Pedroni: 2.16 ==> 2.38
  4. Qual é o maior e menor valor decimal que se consegue representar em complemento de dois com 8 dígitos binários?
  5. Livro Pedroni: 3.1 ==> 3.22
  6. Livro Pedroni: 4.7 ==> 4.16, 4.18 e 4.19
  7. O consumo de potência em um circuito lógico é dividido em estática e dinâmica. Defina cada uma dessa potências e quais são as providências a serem tomadas para sua minimização.
  8. Liste os três tipos de buffer. Qual é sua função lógica? Quais são suas principais aplicações?
Lista para a segunda avaliação
  1. Seções do livro a serem estudadas:
    1. 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 e 5.9
    2. 10.1, 10.2, 10.3, 10.5, 10.6 e 10.9
    3. 11.1, 11.5, 11.6, 11.7 e 11.13.
    4. 12.1, 12.2, 12.3, 12.5, 12.6, 12.10, 12.11, 12.12, 12.13 e 12.15.
  2. Livro Pedroni: 5.1, 5.5, 5.8 ==> 5.19, 5.22 ==> 5.28, 5.30 ==> 5.38.
  3. Utilizando álgebra Booleana simplifique as seguintes funções lógicas, mostre todo o processo:
    1. y=a.b+c'+(c.d)'
    2. y=((a.b)'+{c.d)')'
    3. y=(a+b'+c).(a+c+d')'
    4. y=(a+b)'.c.(a+c).b'
    5. y=((a+b)'.c)+((b.d)'.(a'+(b.d)))
  4. Para cada uma das funções lógicas da questão anterior, monte a tabela-verdade equivalente.
  5. Derive uma equação SOP mínima (irredutível) para cada uma das funções Booleanas representadas pelas tabelas-verdade da questão anterior, fazendo uso de mapas de Karnaugh.
  6. Livro Pedroni: 10.4 ==> 10.17
  7. Livro Pedroni: 11.8 ==> 11.12, 11.14 ==> 11.21, 11.23, 11.27 e 11.28
  8. Livro Pedroni: 12.1 ==> 12.3, 12.6a) 12.6b), 12.9 ==> 12.12, 12.16, 12.17, 12.22
Lista para a terceira avaliação
  1. Seções do livro a serem estudadas:
    1. 13.1, 4.10, 13.2, 13.3.1, 13.4, 13.10.
    2. 14.1, 4.11, 4.12, 14.2, 14.3, 14.5, 14.7.
  2. Exercícios Livro Pedroni:
    1. 13.2, 13.7, 13.8, 13.9
    2. 14.1 ==> 14.5, 14.8, 14.23, 14.33, 14.37, 14.38, 14.39.
  3. Para o gerador de sequências pseudorandômicas da Figura 14.30, calcule a sequência dos 25 primeiros bits produzidos pelo circuito, após a execução de um Reset no sistema.
  4. Faça o diagrama de ligações para um SR de 16 bits, com entrada série e saída paralela, baseado no sn74als164a
  5. Faça um diagrama de tempo que explicite a entrada e saída do valor 10001101 no SR sn74als165
  6. Faça um diagrama de tempo que mostre a entrada serial do valor 1110 com deslocamento para a direita e, em seguida, o valor 1011 com deslocamento para a esquerda no sn74as194.
  7. Faça um diagrama de tempo que mostre a entrada serial do valor 1110 com deslocamento para a direita e, em seguida, entrada paralela do valor 1011 com deslocamento para a direita no sn74as194.
  8. Faça o diagrama de ligações para obter duas versões de um contador módulo 10, baseado no SN74LS90.
  9. Faça o diagrama de ligações para obter um contador de 2 à 8, baseado no SN54ALS162B.
  10. Faça o diagrama de ligações para obter um contador módulo 256 ascendente, baseado no SN74ALS191A.
  11. Faça o diagrama de ligações para obter um contador módulo 256 descendente, baseado no SN74ALS193A.
  12. Faça o diagrama de ligações para obter um contador de 12 à 0, baseado no SN74ALS169B.
  13. Faça o diagrama de ligações para obter um contador decimal ascendente, baseado no SN74LS192.

2 Diário de aulas

2.1 Aula 1 - 5/10/15: Apresentação da disciplina

  • Apresentação da disciplina, plano de aula, trabalhos e métodos de avaliação.
  1. Auto apresentação
  2. Apresentação da Wiki
  3. Plano de Ensino, Ementa, Bibliografia e Estratégia de Ensino
  4. Avaliações
    1. 3 avaliações (P1, P2 e P3) mais um projeto final (PF)
    2. Cada uma das avaliações terá terá um conceito: A, B, C e D. Conceito mínimo final para não necessitar reavaliação: C.
    3. Reavaliação única no último dia de aula.
  5. Relação com outras disciplinas do curso
  6. Conceitos iniciais (Seção 1.2 à 1.8 do Pedroni):
    1. Introdução a Circuito Lógicos


2.2 Aula 2 - 6/10/15: Sistemas de Numeração

Seção 2.2 e 2.3 do Pedroni.

Sistemas de Numeração

2.3 Aula 3 - 13/10/15: Representação de números reais e Aritmética Binária

Seção 2.8 e 3.1 do Pedroni

Representação de números reais Aritmética Binária

2.4 Aula 4 - 19/10/15: Aritmética Binária

Seção 3.2 e 3.3 do Pedroni

Aritmética Binária

2.5 Aula 5 - 20/10/15: Multiplicação Binária

Seção 3.4 e 3.5 do Pedroni

Multiplicação Binária

2.6 Aula 6 - 26/10/15: Divisão Binária e Portas NOT, AND, NAND, OR, NOR

Seção 3.6, 3.7 e 4.1 a 4.4 do Pedroni

Multiplicação Binária

2.7 Aula 7 - 27/10/15: Portas NOT, AND, NAND, OR, NOR

Seção 4.1 a 4.4 do Pedroni

Introdução aos Circuitos Digitais

2.8 Aula 8 - 3/11/15: Buffers

Seção 4.1 a 4.4 do Pedroni

Introdução aos Circuitos Digitais

2.9 Aula 9 - 7/11/15: Laboratório 1

  1. Leia e complete até a Seção 7 (inclusive) do tutorial Quartus II Introduction - Using Schematic Designs. Utilize o Quartus versão 13 de sua máquina local. Faça as seguintes adaptações no tutorial:
    1. Item 4.3 -- Utilize: Family: Cyclone IV E e Available Devices: EP4CE30F23C7.
    2. Item 7 -- Figura 27: x1 = PIN_V21, x2 = PIN_W22 e f = PIN_D6. Detalhes da pinagem.
  2. Salve o projeto. Ao salvar arquivos e projetos tome sempre as seguintes precauções, sob pena de erros de compilação:
    1. Cada projeto deve ter um diretório próprio.
    2. Não inicie o nome de projetos e/ou circuitos com caracteres numéricos.
    3. Não nomeie diretórios e/ou arquivos com espaço em branco, se necessário utilize "_" (underline) como caracter separador.
  3. Procedimento para salvar e recuperar projetos
    1. Para salvar um projeto: [Project > Archive Project... > Archive file name: nome_do_projeto.qar]
    2. O arquivo será salvo em: /home/aluno/nome_do_projeto/output_files/nome_do_projeto.qar
    3. Copie o arquivo para algum repositório particular remoto ou mande o mesmo (nome_do_projeto.qar) para o seu email.
  4. Para restaurar um projeto:
    1. Crie um novo projeto vazio: [File > New Project Wizard... > Next > What is workink directory for this project?: /home/aluno/nome_do_diretorio > What is the name of this project?: nome_do_projeto > Next > Next > Family: Ciclone IV E > Device: EP4CE30F23C7 > Next > Finish]
    2. Baixe o arquivo salvo.
    3. Restaure o arquivo de backup: [Restore Archived Project > Archive name: nome_do_projeto.qar]
  5. Há duas formas de executar o Quartus, acesso local e acesso remoto. Nas máquinas do laboratório de programação utilizaremos o acesso local, basta rodar o Quartus versão 13.
  6. Quem desejar praticar em casa pode acessar remotamente, mas antes peça ao professor para criar uma conta na máquina de acesso remoto.
  7. Para acesso remoto o procedimento é o seguinte:
    1. Preferencialmente acesse a IFSC-CLOUD usando o seguinte roteiro
    2. Outra opção é acesso remoto a máquina servidora com o seguinte comando: ssh -X nome_de_usuario@200.135.233.26
    3. Execute o Quartus com o seguinte comando no terminal: /opt/altera/13.0sp1/quartus/bin/quartus &
  8. Em ambos os casos e somente no primeiro uso, ajuste o atalho para o navegador, para poder ler os manuais quando necessário, por meio de Tools > Options > Internet Connectivity, no campo Web browser preencha: /usr/bin/firefox.

2.10 Aula 10 - 9/11/15: Laboratório 2

  1. Continuação e complementação do laboratório 1.
  2. O primeiro laboratório foi focado no uso do Quartus (interface), inserção do projeto (schematic), compilação e o início da simulação funcional (QSIM).
  3. Hoje vamos gravar e utilizar o Kit Mercurio IV (Family=Cyclone IV E / device=EP4CE30F23C7) seguindo o roteiro:Preparando para gravar o circuito lógico no FPGA
  4. Siga o roteiro até que sua placa esteja funcionando corretamente.
  5. Uma vez a placa funcionando complete a tabela verdade do circuito montado, fazendo as respectivas combinações de entrada, através das chaves de entrada, e observando a saída, através do led:
x1 x2 f
0 0
0 1
1 0
1 1

O resultado obtido é condizente com o esperado?

2.11 Aula 11 - 10/11/15: Avaliação 1

2.12 Aula 12 - 16/11/15: Álgebra booleana e Tabelas-verdade

2.13 Aula 13 - 17/11/15: Álgebra de Boole, Minterms, maxterms, Equações SOP e POS

2.14 Aula 14 - 23/11/15: Minterms, maxterms, Equações SOP e POS

2.15 Aula 15 - 24/11/15: Mapas de Karnaugh e projeto de conversor BCD para SSD

2.16 Aula 16 - 30/11/15: Laboratório 3 - Conversor BCD para SSD

2.17 Aula 17 - 1/12/15: Famílias Lógicas

2.18 Aula 18 - 7/12/15: Circuitos combinacionais lógicos - Codificadores, decodificadores, multiplexadores

2.19 Aula 19 - 8/12/15: Circuitos combinacionais lógicos - detetor de paridade e portas com histerese. Circuitos combinacionais aritméticos

2.20 Aula 20 - 14/12/15: Circuitos combinacionais aritméticos

2.21 Aula 21 - 15/12/15: Latches e Flip-Flops

2.22 Aula 22 - 19/12/15: Laboratório 4 - Circuitos combinacionais aritméticos

2.23 Aula 23 - 21/12/15: Dúvidas para a avaliação 2

2.24 Aula 24 - 22/12/15: Avaliação 2

2.25 Aula 25 - 1/2/16: Recapitulação, discussão projeto, registradores de deslocamento

2.26 Aula 26 - 2/2/16: Registradores de deslocamento

2.27 Aula 27 - 15/2/16: Contadores

2.28 Aula 28 - 16/2/16: Contadores

2.29 Aula 29 - 22/2/16: Laboratório 5 - Contador binário síncrono

2.30 Aula 30 - 23/2/16: Divisor de frequência e gerador pseudorrandômico

2.31 Aula 31 - 29/2/16: Avaliação 3

2.32 Aula 32 - 1/3/16: Projeto final em equipes

2.33 Aula 33 - 7/3/16: Projeto final em equipes

2.34 Aula 34 - 8/3/16: Projeto final em equipes

2.35 Aula 35 - 12/3/16: Projeto final em equipes

2.36 Aula 36 - 14/3/16: Apresentação e avaliação do projeto final

A avaliação será feita sobre a demostração de funcionamento do circuito no FPGA e em questões a serem respondidas individualmente pelos membros da equipe.

2.37 Aula 37 - 15/3/16: Reavaliação final