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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 88: Linha 88:
 
=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 99: Linha 99:
 
# [[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]]
+
Aula 3 - 12/10/15: Códigos Binários
  
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?
+
Seção 2.3 à 2.7 do Pedroni
 
 
{| 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?
+
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-3-codigos.pdf Códigos Binários]
  
{| style="border-style: solid; border-width: 20px"
+
Aula 4 - 13/10/15: Representação de números reais e 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 2.8 e 3.1 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-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]
  
No caso anterior como poderíamos representar maior quantidade de quilômetros?
+
Aula 5 - 19/10/15: Aritmética Binária
  
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:
+
Seção 3.2 e 3.3 do Pedroni
  
{| style="border-style: solid; border-width: 20px"
+
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-5-aritmetica-binaria.pdf Aritmética 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 - 20/10/15: Multiplicação Binária
  
Um outro importante sistema de numeração é o '''octal''', com oito símbolos: 0, 1, ..., 6, 7.
+
Seção 3.4 e 3.5 do Pedroni
  
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 </math> e <math> 16 = 2^4 </math>. Maiores detalhes serão vistos posteriormente.
+
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-6-multiplicacao-binaria.pdf Multiplicação Binária]
  
Perceba que é possível a construção de qualquer sistema de numeração.
+
Aula 7 - 20/10/15: Divisão Binária
  
==Conversão entre sistemas de numeração==
+
Seção 3.6 e 3.7 do Pedroni
  
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.
+
[http://docente.ifsc.edu.br/odilson/CIL29003/aula-6-multiplicacao-binaria.pdf Multiplicação Binária]
  
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?
 
  
===Conversão de outras bases para a base decimal===
+
{{Collapse top |Aula 8 - 4/3/15: Laboratório 1}}
 
+
#Leia o tutorial [ftp://ftp.altera.com/up/pub/Altera_Material/13.0/Tutorials/Schematic/Quartus_II_Introduction.pdf Quartus II Introduction - Using Schematic Designs].
A regra geral para conversão de binário para um número decimal é assim expressa:
+
#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:
<math>y = \sum_{k=0}^{N-1} a_{N-1-k} 2^{N-1-k}</math>
+
##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
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.
+
##Execute o Quartus com o comando: '''/opt/altera/13.0sp1/quartus/bin/quartus &'''
 
+
##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.
+
#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.
Por exemplo, vamos converter <math>11001_2</math> para a base decimal.
+
##'''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.
<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>
+
#Execute as exatas orientações do referido tutorial até a seção 8 (inclusive) com as seguintes definições:
 
+
## Seção 4.4: Family='''Cyclone IV E''' / device='''EP4CE30F23C7''' ('''DE2''' na tabela abaixo).
Outro exemplo, vamos converter <math>703_8</math> para a base decimal.
+
## Seção 7. Utilize a quinta coluna - '''DE2''': Pin Assignment (x1=sw[0], x2=sw[1] e f=LEDG[0])  [[Arquivo:DEpinSW_Led.png|600px]]
 
 
<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
 
|-
 
| 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
 
|-
 
| 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>
 
 
{{Collapse bottom}}
 
{{Collapse bottom}}
  
{{Collapse top |Aula 3 - 12/10/15: Representações binárias}}
+
{{Collapse top |Aula 9 - 6/3/15: Portas NOT, AND, NAND, OR, NOR}}
 
+
Seções 4.1 a 4.4 do livro texto.
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
 
|-
 
| -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}}
 
{{Collapse bottom}}

Edição das 15h53min de 21 de outubro de 2015

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
Lista para a segunda avaliação
  1. Livro Pedroni: 4.7 ==> 4.16, 4.18 e 4.19
  2. 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.
  3. Liste os três tipos de buffer. Qual é sua função lógica? Quais são suas principais aplicações?
  4. Livro Pedroni: 5.1, 5.5, 5.8 ==> 5.19, 5.22 ==> 5.28, 5.30 ==> 5.38.
  5. 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)))
  6. Para cada uma das funções lógicas da questão anterior, monte a tabela-verdade equivalente.
  7. 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.
Lista para a terceira avaliação
  1. Seções do livro a serem estudadas:
    1. 11.1, 11.5, 11.6, 11.7, 11.13.
    2. 12.1, 12.2, 12.3, 12.5, 12.6, 12.10, 12.1112.12, 12.13, 12.15.
    3. 13.1, 4.10, 13.2, 13.3.1, 13.4, 13.10.
    4. 14.1, 4.11, 4.12, 14.2, 14.3, 14.5, 14.7.
  2. Exercícios Livro Pedroni:
    1. 11.8 ==> 11.12, 11.14 ==> 11.21, 11.23, 11.27 e 11.28
    2. 12.1 ==> 12.3, 12.6a) 12.6b), 12.9 ==>12.12, 12.16, 12.17, 12.22
    3. 13.2, 13.7, 13.8, 13.9
    4. 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.

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 - 12/10/15: Códigos Binários

Seção 2.3 à 2.7 do Pedroni

Códigos Binários

Aula 4 - 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 5 - 19/10/15: Aritmética Binária

Seção 3.2 e 3.3 do Pedroni

Aritmética Binária

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

Seção 3.4 e 3.5 do Pedroni

Multiplicação Binária

Aula 7 - 20/10/15: Divisão Binária

Seção 3.6 e 3.7 do Pedroni

Multiplicação Binária


Aula 8 - 4/3/15: Laboratório 1
  1. Leia o tutorial Quartus II Introduction - Using Schematic Designs.
  2. 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.
  3. 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:
    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 comando: /opt/altera/13.0sp1/quartus/bin/quartus &
    4. 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.
  4. 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.
  5. Execute as exatas orientações do referido tutorial até a seção 8 (inclusive) com as seguintes definições:
    1. Seção 4.4: Family=Cyclone IV E / device=EP4CE30F23C7 (DE2 na tabela abaixo).
    2. Seção 7. Utilize a quinta coluna - DE2: Pin Assignment (x1=sw[0], x2=sw[1] e f=LEDG[0]) DEpinSW Led.png
Aula 9 - 6/3/15: Portas NOT, AND, NAND, OR, NOR

Seções 4.1 a 4.4 do livro texto.