Mudanças entre as edições de "CIL29003-2015-2"
Linha 87: | Linha 87: | ||
{{Collapse top |Aula 1 - 5/10/15: Apresentação da disciplina}} | {{Collapse top |Aula 1 - 5/10/15: Apresentação da disciplina}} | ||
+ | |||
+ | Seção 2.2 e 2.3 do Pedroni. | ||
* 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. | ||
Linha 107: | Linha 109: | ||
##Circuitos combinacionais versus sequenciais. | ##Circuitos combinacionais versus sequenciais. | ||
##Circuitos integrados, placas de circuitos e tensões. | ##Circuitos integrados, placas de circuitos e tensões. | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 2 - 6/10/15: Representações Binárias}} | ||
+ | |||
+ | ==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 maiores quantidades de quilômetros? | ||
+ | |||
+ | 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: | ||
+ | |||
+ | {| 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. | ||
+ | |||
+ | Perceba que é possível a construção de qualquer sistema de numeração. | ||
+ | |||
+ | ==Conversão entre sistemas de numeração== | ||
+ | |||
+ | 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. | ||
+ | |||
+ | 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=== | ||
+ | |||
+ | A regra geral para conversão de binário para um número decimal é assim expressa: | ||
+ | |||
+ | <math>y = \sum_{k=0}^{N-1} a_{N-1-k} 2^{N-1-k}</math> | ||
+ | |||
+ | 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. | ||
+ | |||
+ | Observe que esta regra pode ser estendida para qualquer sistema de numeração. | ||
+ | |||
+ | Por exemplo, vamos converter <math>11001_2</math> para a base decimal. | ||
+ | |||
+ | <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> | ||
+ | |||
+ | Outro exemplo, vamos converter <math>703_8</math> para a base decimal. | ||
+ | |||
+ | <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 top |Aula 3 - 12/10/15: Representações binárias}} | ||
+ | |||
+ | Seção 2.3 a 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 13h54min de 1 de outubro de 2015
Dados Importantes
Professor: Odilson Tadeu Valle
Email: odilson@ifsc.edu.br
Atendimento paralelo: ?ª das?? às ?? e ?ª das ?? às ??. Local: Lab. de Desenvolvimento.
- 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 |
---|
|
Lista para a segunda avaliação |
---|
|
Lista para a terceira avaliação |
---|
|
Diário de aulas
Aula 1 - 5/10/15: Apresentação da disciplina |
---|
Seção 2.2 e 2.3 do Pedroni.
|
Aula 2 - 6/10/15: Representações Binárias | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sistemas de numeraçãoObserve a Figura do odômetro. 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?
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?
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 maiores quantidades de quilômetros? 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:
Este é o sistema de numeração hexadecimal. Um outro importante sistema de numeração é o octal. Perceba que é possível a construção de qualquer sistema de numeração. Conversão entre sistemas de numeraçãoComo é 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. 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 decimalA regra geral para conversão de binário para um número decimal é assim expressa:
onde é um número decimal e é sua representação binária usual. Observe que esta regra pode ser estendida para qualquer sistema de numeração. Por exemplo, vamos converter para a base decimal.
Outro exemplo, vamos converter para a base decimal.
Conversão da base decimal para outras basesA 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: 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áriaPara conversão entre as bases binária, octal e hexadecimal, basta fazer-se o uso das seguintes tabelas de conversão.
Por exemplo, para converter para binário, deve-se tomar dígito a dígito da tabela acima e ir montando o valor binário equivalente: , e . Portanto o resultado da conversão é 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 para a base octal procedemos primeiro a conversão para a base binária () e em seguida, tomando três a três dígitos a partir do LSB, convertemos para o octal usando a tabela, resultando em |
Aula 3 - 12/10/15: Representações binárias | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
Seção 2.3 a 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. Código Gray: código de distância unitária porque a distância entre duas palavras adjacentes é sempre 1 bit [1]. Código one-hot: frequentemente utilizado na codificação de máquinas de estados [2] [3]. 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 negativosComo representar sinal no código binário? Código sinal-magnitudeNesse 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:
Código complemento de umSe o MSB for 0 (número positivo), para obter o equivalente negativo, basta inverter todos os bits. Ex:
Código complemento de doisEsta é 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:
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:
Algum problema? |