Mudanças entre as edições de "CIL29003-2015-1"
(44 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 6: | Linha 6: | ||
* Avaliações | * Avaliações | ||
** 3 avaliações (P1, P2 e P3) mais um projeto final (PF). | ** 3 avaliações (P1, P2 e P3) mais um projeto final (PF). | ||
− | ** Cada uma das avaliações terá terá um conceito numérico: | + | ** 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 | + | ** Um ou mais conceitos D implica na realização da reavaliação: uma única a ser realizada no último dia de aula. |
+ | |||
+ | * [http://www.sj.ifsc.edu.br/~odilson/CIL29003/DIARIO%202015-1%20CIL29003.pdf Listagem dos conceitos. Atualizado em 7/7] | ||
'''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. | '''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. | ||
==[[CIL-EngTel_(Plano_de_Ensino)|Plano de Ensino]]== | ==[[CIL-EngTel_(Plano_de_Ensino)|Plano de Ensino]]== | ||
− | + | [[Cronograma_de_atividades_(CIL-EngTel)]] | |
− | + | ||
− | + | ==Procedimento para acessar IFSC-Cloud== | |
− | + | [[Acesso_ao_IFSC-CLOUD]] | |
− | + | ||
− | + | Siga exatamente TODOS os passos. Caso tenha algum problema com a senha, entre em contato com o professor | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==Listas de exercícios== | ==Listas de exercícios== | ||
+ | |||
+ | {{Collapse top |Lista para a primeira avaliação}} | ||
+ | |||
+ | #Converta para decimal | ||
+ | ##<math>100110_2</math> | ||
+ | ##<math>11110_2</math> | ||
+ | ##<math>111011_2</math> | ||
+ | ##<math>1010000_2</math> | ||
+ | ##<math>11000101_2</math> | ||
+ | ##<math>11001100110101_2</math> | ||
+ | ##<math>14_8</math> | ||
+ | ##<math>67_8</math> | ||
+ | ##<math>153_8</math> | ||
+ | ##<math>1544_8</math> | ||
+ | ##<math>2063_8</math> | ||
+ | ##<math>479_16</math> | ||
+ | ##<math>4AB_16</math> | ||
+ | ##<math>BDE_16</math> | ||
+ | ##<math>F0CA_16</math> | ||
+ | ##<math>2D3F_16</math> | ||
+ | #Converta para a base indicada: | ||
+ | ##<math> 1428_{10} = X_{16} </math> | ||
+ | ##<math> 428_{10} = X_{8}</math> | ||
+ | ##<math> 28_{10} = X_{2}</math> | ||
+ | ##<math> F0F0_{16} = X_{2}</math> | ||
+ | ##<math> 1428_{8} = X_{16}</math> | ||
+ | ##<math> 1001010_{2} = X_{16}</math> | ||
+ | ##<math> 1001010_{10} = X_{16}</math> | ||
+ | ##<math> 1428_{16} = X_{8}</math> | ||
+ | #Livro Pedroni: 2.16 ==> 2.38 | ||
+ | #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 | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Lista para a segunda avaliação}} | ||
+ | #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? | ||
+ | #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: | ||
+ | ##y=a.b+c'+(c.d)' | ||
+ | ##y=((a.b)'+{c.d)')' | ||
+ | ##y=(a+b'+c).(a+c+d')' | ||
+ | ##y=(a+b)'.c.(a+c).b' | ||
+ | ##y=((a+b)'.c)+((b.d)'.(a'+(b.d))) | ||
+ | #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. | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Lista para a terceira avaliação}} | ||
+ | #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. | ||
+ | ##14.1, 4.11, 4.12, 14.2, 14.3, 14.5, 14.7. | ||
+ | #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 | ||
+ | ##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. | ||
+ | {{Collapse bottom}} | ||
=Diário de aulas= | =Diário de aulas= | ||
Linha 471: | Linha 497: | ||
Perceba que esse é o menor erro possível. Qual seria o erro aproximado para 11111111 11111111 11111111 10000000? | Perceba que esse é o menor erro possível. Qual seria o erro aproximado para 11111111 11111111 11111111 10000000? | ||
− | |||
− | |||
− | |||
{{Collapse bottom}} | {{Collapse bottom}} | ||
Linha 535: | Linha 558: | ||
01110 10000 11111 00000 | 01110 10000 11111 00000 | ||
− | |||
− | |||
{{Collapse bottom}} | {{Collapse bottom}} | ||
Linha 623: | Linha 644: | ||
1111 (-1) --> 1111 1111 (-1) --> 1111 0000 (-16) | 1111 (-1) --> 1111 1111 (-1) --> 1111 0000 (-16) | ||
− | |||
− | |||
{{Collapse bottom}} | {{Collapse bottom}} | ||
Linha 722: | Linha 741: | ||
===Operações com ponto flutuante=== | ===Operações com ponto flutuante=== | ||
Ver seções 3.8, 3.9 e 3.10 do livro do Pedroni. | Ver seções 3.8, 3.9 e 3.10 do livro do Pedroni. | ||
− | |||
− | |||
− | |||
{{Collapse bottom}} | {{Collapse bottom}} | ||
Linha 734: | Linha 750: | ||
##Preferencialmente acesse a IFSC-CLOUD usando o seguinte [http://wiki.sj.ifsc.edu.br/index.php/Acesso_ao_IFSC-CLOUD roteiro] | ##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 | ##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 comando: /opt/altera/13.0sp1/quartus/bin/quartus & | + | ##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. | + | ##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'''. |
#Ao salvar arquivos e projetos tome '''sempre''' as seguintes precauções, sob pena de erros de compilaçã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. | ##Cada projeto deve ter um diretório próprio. | ||
Linha 741: | Linha 757: | ||
##'''Não''' nomeie diretórios e/ou arquivos com espaço em branco, se necessário utilize "_" (''underline'') como caracter separador. | ##'''Não''' nomeie diretórios e/ou arquivos com espaço em branco, se necessário utilize "_" (''underline'') como caracter separador. | ||
#Execute as exatas orientações do referido tutorial até a seção 8 (inclusive) com as seguintes definições: | #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=''' | + | ## Seção 4.4: Family='''Cyclone IV E''' / device='''EP4CE30F23C7''' ('''DE2''' na tabela abaixo). |
## 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]] | ## 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]] | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
Linha 754: | Linha 770: | ||
No primeiro laboratório foi focado o uso do Quartus (interface), inserção do projeto (''schematic''), análise do RTL, e o início da simulação funcional (QSIM). | No primeiro laboratório foi focado o uso do Quartus (interface), inserção do projeto (''schematic''), análise do RTL, e o início da simulação funcional (QSIM). | ||
− | Hoje vamos gravar e utilizar o Kit '''Mercurio IV''' (''' | + | 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]] |
===Procedimento para salvar e recuperar projetos=== | ===Procedimento para salvar e recuperar projetos=== | ||
Linha 801: | Linha 817: | ||
{{Collapse bottom}} | {{Collapse bottom}} | ||
− | {{Collapse top |Aula 19 - 17/4/15: Circuitos Combinacionais Lógicos}} | + | {{Collapse top |Aula 19 - 17/4/15: Circuitos Combinacionais Lógicos -- Codificadores e Decodificadores}} |
Seções 11.1 , 11.2, 11.3, 11.4 e 11.5 do livro texto. | Seções 11.1 , 11.2, 11.3, 11.4 e 11.5 do livro texto. | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 20 - 20/4/15: Circuitos Combinacionais Lógicos -- Codificadores, Decodificadores e Multiplexadores}} | ||
+ | Seções 11.5 e 11.6 do livro texto. | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 21 - 24/4/15: Circuitos Combinacionais Lógicos -- Detector de paridade, portas com histerese e dúvidas para a segunda avaliação}} | ||
+ | Seções 11.7 e 11.13 do livro texto. | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 22 - 27/4/15: Avaliação 2 - Circuitos Digitais e Álgebra Booleana}} | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 23 - 6/5/15: Cap 12 - Circuitos Combinacionais Aritméticos}} | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 24 - 8/5/15: Cap 12 - Circuitos Combinacionais Aritméticos}} | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 25 - 13/5/15: Laboratório 4 – Circuitos Aritméticos (Somador, Complemento de 2 e Subtrator)}} | ||
+ | [[Experimento_13_para_Circuitos_Lógicos | Roteiro para o laboratório]] | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 26 - 15/5/15: Correção da avaliação 2}} | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 27 - 19/5/15: Cap 12 - Latches, FlipFlops e Registradores}} | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 28 - 22/5/15: Cap 14 - Registradores e Contadores}} | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 29 - 27/5/15: Laboratório 5 - Circuito de Multiplicação Binária}} | ||
+ | [[Circuito_de_Multiplicação_Binária]] | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 30 - 29/5/15: Cap 14 - Contadores}} | ||
+ | [[Arquivo:Contadores.qar QAR utilizado em sala de aula]] | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 31 - 3/6/15: Cap 14 - Divisor de frequência}} | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 32 - 10/6/15: Projeto final em equipes: Definição das equipes e especificação do projeto}} | ||
+ | [[Projetos_Finais_CIL29003]] | ||
+ | Resultado esperado na primeira aula: | ||
+ | #Diagrama de blocos dos indicando o funcionamento total do sistema. Cada um dos blocos deve remeter a um dos sistemas lógicos discutidos na disciplina. | ||
+ | #Indicação da quantidade de de vagas totais no estacionamento. | ||
+ | #Indicação de quantidade de cancelas de acesso ao estacionamento. | ||
+ | |||
+ | ==Equipes== | ||
+ | #Josiane, Filipe, Matheus | ||
+ | #Anderson Gaspar, José Augusto | ||
+ | #Paula, Mateus, Nelson | ||
+ | #Adonis, Daniel, Pedro | ||
+ | #Layssa, Natalia, Luísa | ||
+ | #Lucas T., Lucas S. Henrique | ||
+ | #Alana, Francin, Reinaldo | ||
+ | #João Leonardo, Vinícius, Thiago | ||
+ | #Aldebarã, Alline, Ricardo | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 33 - 12/6/15: Terceira avaliação}} | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 34 - 17/6/15: Projeto final em equipes: ...}} | ||
+ | [[Projetos_Finais_CIL29003]] | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 35 - 19/6/15: Projeto final em equipes: ...}} | ||
+ | [[Projetos_Finais_CIL29003]] | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 36 - 24/6/15: Projeto final em equipes: ...}} | ||
+ | [[Projetos_Finais_CIL29003]] | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 37 - 26/6/15: Projeto final em equipes: Avaliação}} | ||
+ | [[Projetos_Finais_CIL29003]] | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 38 - 1/7/15: Projeto final em equipes: Avaliação}} | ||
+ | [[Projetos_Finais_CIL29003]] | ||
+ | {{Collapse bottom}} | ||
+ | |||
+ | {{Collapse top |Aula 39 - 3/7/15: Reavaliação final}} | ||
{{Collapse bottom}} | {{Collapse bottom}} |
Edição atual tal como às 17h31min de 7 de julho de 2015
Dados Importantes
Professor: Odilson Tadeu Valle
Email: odilson@ifsc.edu.br
Atendimento paralelo: 2ª das 17h35 às 18h30 e 6ª das 9h40 às 10h35. 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)
Procedimento para acessar IFSC-Cloud
Siga exatamente TODOS os passos. 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 - 3/2/15: Apresentação da disciplina |
---|
|
Aula 2 - 5/2/15: Sistemas de numeração Binário, Octal, Hexadecimal e conversão entre sistemas | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Sistemas de numeraçãoObserve a Figura do odômetro. Supoha 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 - 5/2/15: Representações binárias | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
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? |
Aula 4 - 13/2/15: Ponto fixo e ponto flutuante | |||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Como é a representação (e conversão para decima) de um número binário fracionário? Representação por ponto fixoA representação segue a regra
onde:
Por exemplo:
Portanto o decimal equivalente é: 29,625 Representação por ponto flutuanteComo representar número inteiros? Padrão IEEE 754
onde:
Observe que tem-se 32 bits totais para a precisão simples e 64 bits para a precisão dupla. Precisão simplesO número decimal equivalente é obtido por:
Ex1: Encontre o valor decimal equivalente para o valor abaixo que está em ponto flutuante com precisão simples. 10111111110...0 Analisando o número acima obtemos: S = 1, E = 01111111 = 127, F = 10...0 = = 0,5. Portanto
Ex2: Encontre o valor decimal equivalente para o valor abaixo que está em ponto flutuante com precisão simples. 010000001010...0 Precisão duplaO número decimal equivalente é obtido por:
Observações:
Ex: determinar as representações binárias por ponto flutuante de precisão simples para: -2,625 = -2 + 1/2 + 1/8 = -21/8 = portanto S=1, F=0101..., E=128 (10000000), já que 128-127=1, que é o expoente da base binária do número obtido Ponto flutuante versus inteiroPonto flutuante pode representar números muito grandes e números muito pequenos. Por exemplo, com os 32 bits da precisão simples pode-se representar a faixa de até aproximadamente . Enquanto que na representação inteira consegue-se somente a faixa até Qual o preço a pagar? A precisão dos números em ponto flutuante pode ser menor. Ex: Dado um valor inteiro de 32 bits y1 = 11111111 11111111 11111111 00000001
= 1,1111111 11111111 11111111 00000001
Ponto flutuante equivalente y2 = 1,1111111 11111111 11111111
S=0, F=1111...1, E=158
O erro relativo é dado por: (y1-y2)/y1 = (00000000 00000000 00000000 00000001)/y1 = 1/y1 que é aproximadamente
Perceba que esse é o menor erro possível. Qual seria o erro aproximado para 11111111 11111111 11111111 10000000? |
Aula 5 - 20/2/15: Aritmética binária |
---|
Adição sem sinalEx: 1101 4 bits +1011 4 bits _____ 11000 5 bits Normalmente computadores armazenam somente N bits, ou seja, pode ocorrer overflow (estouro) como é o caso do exemplo acima com N = 4. Adição sem sinal com entrada de N bits e saída de N bitsComo pode ocorrer overflow deve-se ter critérios para detecção automática caso esse caso ocorra:
Ex: 0000 1111 1000 1001 1001 1000 +0110 Certo! +0111 Errado! +1000 Errado! _____ _____ Pelos dois critérios _____ Pelo primeiro critério. 1111 0000 0000 Adição sem sinal com entrada de N bits e saída de N+1 bitsNunca ocorre overflow! Adição e subtração com sinalSubtração binária 0-1-1 0 --> borrow (empresta-um) 1 0 0 1 - 0 1 1 1 _________ 0 0 0 1 0 Na prática a subtração não é utilizada. Utiliza-se complemento de dois, já que, por exemplo, a-b=a+(-b), onde "-b" é o complemento de dois de "b". Adição e subtração com sinal com entradas de N bits e saída de N bitsComo pode ocorrer overflow deve-se ter critérios para detecção automática caso esse caso ocorra:
Ex: 0000 0111 1111 1000 1100 0101 0101 1011 1011 0101 +0010 Certo! +0011 Errado! +1101 Certo! +1100 Errado! +1110 Certo! _____ _____ Pelos dois critérios _____ _____ Pelos dois critérios _____ 0111 1000 1000 0111 0011 Adição e subtração com sinal com entradas de N bits e saída de N+1 bitsNunca ocorre overflow, MAS:
Ex: 0111 1000 0000 1111 0111 1000 0111 1001 +0111 +1000 +1000 +0111 _____ _____ _____ _____ 01110 10000 11111 00000 Regra prática: extensão do sinal em cada operando, desprezando novo overflow Ex: 00111 11000 00111 11001 +00111 +11000 +11000 +00111 _____ _____ _____ _____ 01110 10000 11111 00000 |
Aula 6 - 25/2/15: Uso de deslocamentos nas operações aritméticas e multiplicação binária. |
---|
Princípios da divisão e multiplicaçãoO que ocorre a uma palavra binária de N bits se a deslocarmos um bit a direita? 1100110 (102) --> 0110011 (51) 1100111 (103) --> 0110011 (51) Percebe-se que o número é dividido por 2 (base), com certo erro em alguns casos. O que ocorre a uma palavra binária de N bits se a deslocarmos um bit a esquerda? 01100110 (102) --> 11001100 (204) 1100111 (103) --> 1001110 (78) Percebe-se que o número é multiplicado por 2 (base), com erro grave em caso de overflow. Operações de deslocamento (SHIFT)SHIFT lógicoA palavra binária de N bits é deslocada um certo número de posições para a direita ou para a esquerda, as posições vazias são preenchidas por zeros. SRL = shift right logical SLL = shift left logical Ex: 10111 SRL2 = 00101 10100 SRL2 = 00101 11101 SLL1 = 11010 11101 SRL-1 = 11010 SHIFT aritméticoO vetor binário é deslocado um certo número de posições para a direita ou para a esquerda. Quando deslocado para a direita, as posições vazias são preenchidas com o valor do bit original da estrema esquerda (bit de sinal). Quando deslocado para a esquerda, em VHDL, as posições vazias são preenchidas com o valor do bit original da estrema direita. SRA = shift right arithmetic SLA = shift left arithmetic Ex: 10101 SRA2 = 11101 10101 SLA1 = 01011 SHIFT circular (rotação)Semelhando ao SHIFT lógico, com a diferença que as posições vazias são preenchidas com os bits removidos. ROR = rotational right ROL = rotational left Ex: 11001 ROR2 = 01110 11001 ROL1 - 10011 Divisão usando SHIFT lógico para números sem sinalRegra: um deslocamento lógico de uma posição para a direita resulta na divisão do número por 2 (base), duas posições por 4 (base²)... Ex: 101110 SRL1 = 010111 110101 SRL1 = 011010 101100 SRL2 = 001011 101111 SRL2 = 001011 Divisão usando SHIFT aritmético para números com sinalEx: 01110 --> 00111 00111 --> 00011 10000 --> 11000 11001 --> 11100 Multiplicação usando SHIFT lógicoRegra: um deslocamento lógico de uma posição para a esquerda resulta na multiplicação do número por 2 Números sem sinal, ex: 01110 --> 11100 11010 --> 10100 Número com sinal, ex: 00111 --> 01110 01110 --> 11100 11000 --> 10000 10000 --> 00000 Observe que quando o par de bits iniciais for igual o resultado é correto e incorreto em caso contrário. Multiplicação usando SHIFT lógico e uma saída mais largaNa prática, dobra-se o número de bits (2N) do resultado, garantindo assim a não mais ocorrência do overflow com até N deslocamentos. Números sem sinal com 4 deslocamentos, ex: 0011 (3) --> 0000 0011 (3) --> 0011 0000 (48) 1000 (8) --> 0000 1000 (8) --> 1000 0000 (128) Números com sinal com 4 deslocamentos, ex: 0011 (3) --> 0000 0011 (3) --> 0011 0000 (48) 1000 (-8) --> 1111 1000 (-8) --> 1000 0000 (-128) 1111 (-1) --> 1111 1111 (-1) --> 1111 0000 (-16) |
Aula 7 - 27/2/15: Multiplicação e divisão binária e operações aritmética de ponto flutuante |
---|
Multiplicação sem sinalCom N bits de entrada e 2N bits de saída não ocorre overflow. Algoritmo básico. Ex: 1101 x1100 _____ 0000 0000 1101 1101 ________ 10011100 Qualquer algoritmo de multiplicação é derivado do algoritmo utilizado para a resolução do exemplo anterior. Quando faz-se uma implementação no hardware, do zero, utiliza-se esse algoritmo. Por outro lado a multiplicação pode ser efetuada usando somente operações de adição e deslocamento, abordagem empregada por exemplo em computadores, já que os mesmos possuem uma ALU que faz adições enquanto a unidade de controle pode facilmente deslocar os registradores de dados conforme a necessidade. Um exemplo de multiplicação sem sinal baseada em ALU é mostrado na figura a seguir. Multiplicação de 1001 (multiplicando) por 1100 (multiplicador): Em resumo: se o bit de produto da extrema direita for 1, o multiplicando é adicionado a metade esquerda do produto, em seguida o registrador de produto é deslocado uma posição para a direita, entretanto, se o bit for 0, deve ocorrer somente a operação de deslocamento (a multiplicação de qualquer valor por zero é igual a zero, por isso não ocorre a soma). Multiplicação com sinalAlgoritmos para a multiplicação com sinal também são derivados do algoritmo básico. Na figura a seguir é ilustrado o multiplicador Baugh-Wooley modificado. Por exemplo, vamos empregar o algoritmo acima para multiplicar 1101 e 1100: padrão Baugh-Wooley 1101 1101 (-3) x1100 x1100 (-4) _____ _____ 0000 11000 0000 --> 1000 1101 0101 1101 11010 _________ __________ 00001100 (+12) Algoritmo baseado em ALU, algoritmo de Booth. Multiplicação de 01110 (multiplicando) por 10010 (multiplicador). 5 bits nos operandos leva a necessidade de 5 iterações e 10 bits de saída: Em resumo: se os bits da extrema direita forem 10, o multiplicando deve ser subtraído da metade esquerda do registrador de produto e o resultado deve ser deslocado aritmeticamente para a direita. Se os bits forem 01 então o multiplicando deve ser somado à metade esquerda do registrador de produto e o resultado deslocado aritmeticamente para a direita. Por fim, se os bits forem 00 ou 11, então deve ocorrer somente o deslocamento aritmético para a direita. Divisão sem sinalAlgoritmo básico, 1101 (13) dividido por 0101 (5): decimal (para relembrar :) ) binário dividendo --> 173 |_7 <--divisor 0001101 |_0101 00 024 <-- quociente 0000 0010 <-- quociente __ ____ 17 0011 14 0000 __ ____ 033 0110 28 0101 __ ____ 05 <-- resto 0011 <-- resto Obs:
Do ponto de vista de hardware, é mais difícil implementar divisões dedicadas do que multiplicadores dedicados. Por essa razão, a abordagem mais comum é empregar algoritmos baseados em ALU para a divisão, os quais utilização operações de adição, subtração e deslocamento. Um algoritmo desse tipo é mostrado na figura a seguir, onde 1101 (13) é dividido por 0101 (5). Deve-se ter N iterações para a solução e o registrador de resto deve ter 2N bits. Em resumo: o divisor é subtraído da metade esquerda do resto, se o resultado for negativo, o divisor é somado de volta ao resto, restaurando seu valor, e então é realizado um shift para a esquerda e a posição vazia é preenchida com um zero. Ao contrário, se o resultado for positivo, o registrador de resto é deslocado para a esquerda e a posição vazia é preenchida com um 1. Após a última iteração, a metade esquerda do registrador de resto deve ser deslocada para a direita e a posição vazia preenchida com um zero. O quociente aparecerá na metade direita do registrador de resto, enquanto o resto verdadeiro aparecerá em sua metade esquerda. Divisão com sinalA divisão com sinal é normalmente efetuada como se os números não tivessem sinal. Isso implica que, em primeiro lugar, os números negativos devem passar por complemento de dois. Além disso, se o dividendo e o divisor tiverem sinais diferentes, então o quociente deve ser negativado (complemento de dois) e o resto também. Ex: 1001 (-7) / 0011 (+3) Complemento de dois de 1001 é 0111 0000111 |_ 0011 0000 0010 <-- quociente ____ 0001 0000 ____ 0011 0011 ____ 0001 <-- resto complemento de dois de 0010 é 1110 (-2) complemento de dois de 0001 é 1111 (-1) Operações com ponto flutuanteVer seções 3.8, 3.9 e 3.10 do livro do Pedroni. |
Aula 8 - 4/3/15: Laboratório 1 |
---|
|
Aula 9 - 6/3/15: Portas NOT, AND, NAND, OR, NOR |
---|
Seções 4.1 a 4.4 do livro texto. |
Aula 10 - 11/3/15: Laboratório 2 |
---|
Continuação e complementação do laboratório 1. No primeiro laboratório foi focado o uso do Quartus (interface), inserção do projeto (schematic), análise do RTL, 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 Procedimento para salvar e recuperar projetos
|
13/3/15: Aula cancelada por licença médica |
---|
Aula 11 - 18/3/15: Avaliação 1 - 7h30 sala 12 |
---|
Aula 12 - 20/3/15: Portas OR, NOR, XOR, Buffer, Tri-state |
---|
Seções 4.4, 4.5, 4.7 e 4.8 do livro texto. |
Aula 14 - 27/3/15: Algebra de Boole. Mintermos, Maxtermos, Equações SOP e POS |
---|
Seções 5.3, 5.4 e 5.5 do livro texto. |
Aula 15 - 1/4/15: Algebra de Boole. Mintermos, Maxtermos, Equações SOP e POS |
---|
Seções 5.3, 5.4 e 5.5 do livro texto. |
Aula 16 - 8/4/15: Mapas de Karnaugh |
---|
Seções 5.6 e 5.7 do livro texto. |
Aula 17 - 10/4/15: Mapas de Karnaugh e projeto de conversor BCD para SSD |
---|
Seções 5.6, 5.7 e 11.5.5 do livro texto. |
Aula 18 - 15/4/15: Laboratório conversor BCD para SSD |
---|
Projete e implemente na FPGA um conversor BCD (Binary to Coded Decimal) para SSD (Seven Segment Display) que apresente a seguinte sequência de caracteres: 0, 1, ..., 9, X, X, C, X, E, X. Experimento_5_para_Circuitos_Lógicos. |
Aula 19 - 17/4/15: Circuitos Combinacionais Lógicos -- Codificadores e Decodificadores |
---|
Seções 11.1 , 11.2, 11.3, 11.4 e 11.5 do livro texto. |
Aula 20 - 20/4/15: Circuitos Combinacionais Lógicos -- Codificadores, Decodificadores e Multiplexadores |
---|
Seções 11.5 e 11.6 do livro texto. |
Aula 21 - 24/4/15: Circuitos Combinacionais Lógicos -- Detector de paridade, portas com histerese e dúvidas para a segunda avaliação |
---|
Seções 11.7 e 11.13 do livro texto. |
Aula 22 - 27/4/15: Avaliação 2 - Circuitos Digitais e Álgebra Booleana |
---|
Aula 23 - 6/5/15: Cap 12 - Circuitos Combinacionais Aritméticos |
---|
Aula 24 - 8/5/15: Cap 12 - Circuitos Combinacionais Aritméticos |
---|
Aula 25 - 13/5/15: Laboratório 4 – Circuitos Aritméticos (Somador, Complemento de 2 e Subtrator) |
---|
Aula 26 - 15/5/15: Correção da avaliação 2 |
---|
Aula 27 - 19/5/15: Cap 12 - Latches, FlipFlops e Registradores |
---|
Aula 28 - 22/5/15: Cap 14 - Registradores e Contadores |
---|
Aula 29 - 27/5/15: Laboratório 5 - Circuito de Multiplicação Binária |
---|
Aula 30 - 29/5/15: Cap 14 - Contadores |
---|
Aula 31 - 3/6/15: Cap 14 - Divisor de frequência |
---|
Aula 32 - 10/6/15: Projeto final em equipes: Definição das equipes e especificação do projeto |
---|
Projetos_Finais_CIL29003 Resultado esperado na primeira aula:
Equipes
|
Aula 33 - 12/6/15: Terceira avaliação |
---|
Aula 34 - 17/6/15: Projeto final em equipes: ... |
---|
Aula 35 - 19/6/15: Projeto final em equipes: ... |
---|
Aula 36 - 24/6/15: Projeto final em equipes: ... |
---|
Aula 37 - 26/6/15: Projeto final em equipes: Avaliação |
---|
Aula 38 - 1/7/15: Projeto final em equipes: Avaliação |
---|
Aula 39 - 3/7/15: Reavaliação final |
---|