Mudanças entre as edições de "CIL29003-2015-2"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
 
(34 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?
+
==Aula 3 - 13/10/15: Representação de números reais e Aritmética Binária==
  
{| style="border-style: solid; border-width: 20px"
+
Seção 2.8 e 3.1 do Pedroni
|- 
 
| 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?
+
[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]
  
{| style="border-style: solid; border-width: 20px"
+
==Aula 4 - 19/10/15: Aritmética Binária==
|-
 
| 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.
+
Seção 3.2 e 3.3 do Pedroni
  
Este sistema de numeração é conhecido como binário ("que tem aspecto dual, ou é formado por dois elementos ou partes").
+
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-5-aritmetica-binaria.pdf Aritmética Binária]
  
No caso anterior como poderíamos representar maiores quantidades de quilômetros?
+
==Aula 5 - 20/10/15: Multiplicação Binária==
  
Em outra linha de raciocínio, como pode-se aumentar a capacidade de contagem quilométrica, mais do que o permitido no sistema decimal? 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:
+
Seção 3.4 e 3.5 do Pedroni
  
{| style="border-style: solid; border-width: 20px"
+
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-6-multiplicacao-binaria.pdf Multiplicação Binária]
|- 
 
| 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.
+
==Aula 6 - 26/10/15: Divisão Binária e Portas NOT, AND, NAND, OR, NOR==
  
Um outro importante sistema de numeração é o octal.
+
Seção 3.6, 3.7 e 4.1 a 4.4 do Pedroni
  
Perceba que é possível a construção de qualquer sistema de numeração.
+
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-6-multiplicacao-binaria.pdf Multiplicação Binária]
  
==Conversão entre sistemas de numeração==
+
==Aula 7 - 27/10/15: Portas NOT, AND, NAND, OR, NOR==
  
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 4.1 a 4.4 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-7-portas-logicas.pdf Introdução aos Circuitos Digitais]
  
===Conversão de outras bases para a base decimal===
+
==Aula 8 - 3/11/15: Buffers==
  
A regra geral para conversão de binário para um número decimal é assim expressa:
+
Seção 4.1 a 4.4 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-7-portas-logicas.pdf Introdução aos Circuitos Digitais]
  
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 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'''.
  
Observe que esta regra pode ser estendida para qualquer sistema de numeração.
+
==Aula 10 - 9/11/15: Laboratório 2==
 
+
#Continuação e complementação do laboratório 1.
Por exemplo, vamos converter <math>11001_2</math> para a base decimal.
+
#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]]
<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>
+
#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:
Outro exemplo, vamos converter <math>703_8</math> para a base decimal.
+
{| border="1" cellpadding="10" cellspacing="3" style="text-align: center;"
 
 
<math>703_8 = 7\cdot8^2+0\cdot8^1+3\cdot8^0 = 7\cdot64+0\cdot8+3\cdot1 = 451</math>
 
 
 
===Conversão da base decimal para outras bases===
 
 
 
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.
 
 
 
Por exemplo, para converter 23 para a base binária devemos fazer o seguinte procedimento:
 
 
 
[[Arquivo:ConversaoDecimalBinario.jpg|300px]]
 
 
 
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.
 
 
 
===Conversão entre bases de origem binária===
 
 
 
Para conversão entre as bases binária, octal e hexadecimal, basta fazer-se o uso das seguintes tabelas de conversão.
 
 
 
{| style=1
 
|-
 
| octal || binário
 
|-
 
| 0 || 000
 
|-
 
| 1 || 001
 
 
|-  
 
|-  
| 2 || 010
+
| x1 || x2 || f
 
|-  
 
|-  
| 3 || 011
+
| 0 || 0 ||  
|-
 
| 4 || 100
 
 
|-  
 
|-  
| 5 || 101
+
| 0 || 1 ||  
 
|-  
 
|-  
| 6 || 110
+
| 1 || 0 ||  
 
|-  
 
|-  
| 7 || 111
+
| 1 || 1 ||  
 
|}
 
|}
{| style=1
+
O resultado obtido é condizente com o esperado?
|- 
 
| 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
 
|-
 
| B || 1011
 
|-
 
| C || 1100
 
|-
 
| D || 1101
 
|-
 
| 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>
+
==Aula 11 - 10/11/15: Avaliação 1==
{{Collapse bottom}}
+
==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]]==
  
{{Collapse top |Aula 3 - 12/10/15: Representações binárias}}
+
==Aula 30 - 23/2/16: Divisor de frequência e gerador pseudorrandômico==
 +
==Aula 31 - 29/2/16: Avaliação 3==
 +
==Aula 32 - 1/3/16: Projeto final em equipes==
 +
==Aula 33 - 7/3/16: Projeto final em equipes==
 +
==Aula 34 - 8/3/16: Projeto final em equipes==
 +
==Aula 35 - 12/3/16: Projeto final em equipes==
 +
==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.
  
Seção 2.3 à 2.7 do Pedroni
+
==Aula 37 - 15/3/16: Reavaliação final==
 
 
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
 
|-
 
| -32 || + 0 || +8 || +4 || +0 || +1
 
|}
 
 
 
Ao somar-se todos os valores da segunda linha da tabela acima, obtém-se o valor 19.
 
 
 
Usando números de 8 bits, Calcule o complemento de dois para:
 
#-0
 
#-1
 
#-17
 
#-123
 
#-128
 
Algum problema?
 
 
 
{{Collapse bottom}}
 

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

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.

Plano de Ensino

Cronograma_de_atividades_(CIL-EngTel)

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

Listas de exercícios

Lista para a primeira avaliação
  1. Converta para decimal
  2. Converta para a base indicada:
  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.

Diário de aulas

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


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

Seção 2.2 e 2.3 do Pedroni.

Sistemas de Numeração

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

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

Seção 3.2 e 3.3 do Pedroni

Aritmética Binária

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

Seção 3.4 e 3.5 do Pedroni

Multiplicação Binária

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

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

Aula 8 - 3/11/15: Buffers

Seção 4.1 a 4.4 do Pedroni

Introdução aos Circuitos Digitais

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.

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?

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

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

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

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

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

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

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

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.

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