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)
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

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
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.

2 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])
Aula 9 - 6/3/15: Portas NOT, AND, NAND, OR, NOR

Seções 4.1 a 4.4 do livro texto.