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

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 565: Linha 565:
 
   _____              _____          _____          _____   
 
   _____              _____          _____          _____   
 
   01110              10000          11111          00000
 
   01110              10000          11111          00000
 +
{{Collapse bottom}}
 +
 +
{{Collapse top |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ção==
 +
O 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ógico===
 +
A 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''
  
==Princípios de divisão e multiplicação utilizando deslocamento==
 
===Divisão usando ''SHIFT'' lógico para números sem sinal===
 
Regra: um deslocamento lógico de uma posição para a direita resulta na divisão do número por 2 (2¹), duas posições por 4 (2²) etc.
 
 
Ex:
 
Ex:
  101110 -->(1 pos) 010111    certo?
+
  10111 SRL2 = 00101
  110101 -->(1 pos) 011010    certo?
+
  10100 SRL2 = 00101
  101100 -->(2 pos) 001011    certo?
+
  11101 SLL1 = 11010
  101111 -->(2 pos) 001011    certo?
+
  11101 SRL-1 = 11010
 +
===SHIFT aritmético===
 +
O 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 [http://pt.wikipedia.org/wiki/VHDL 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''
  
===Divisão usando ''SHIFT'' aritmético para números com sinal===
 
 
Ex:
 
Ex:
  01110 --> 00111    certo?
+
  10101 SRA2 = 11101
  00111 --> 00011    certo?
+
  10101 SLA1 = 01011
10000 --> 11000    certo?
+
===SHIFT circular (rotação)===
11001 --> 11100    certo?
+
Semelhando ao SHIFT lógico, com a diferença que as posições vazias são preenchidas com os bits removidos.
===Multiplicação usando ''SHIFT'' lógico===
+
 
Regra: um deslocamento lógico de uma posição para a esquerda resulta na multiplicação do número por 2 (2¹), duas posições por 4 (2²) etc.
+
ROR = ''rotational right''
  
Exemplo sem sinal:
+
ROL = ''rotational left''
01110 --> 11100    certo?
 
11010 --> 10100    certo?
 
Exemplo com sinal:
 
00111 --> 01110    certo?
 
01110 --> 11100    certo?
 
11000 --> 10000    certo?
 
10000 --> 00000    certo?
 
O que tem em comum os casos corretos e incorretos acima? Dica: observe os dois bits mais significativos.
 
  
Regra prática: antes de proceder a multiplicação dobra-se o número de bits dos operandos.
 
 
Ex:
 
Ex:
  0011(3)  = 0000 0011 -->(4 pos) 0011 0000 (48)
+
  11001 ROR2 = 01110
  1000(-8) = 1111 1000 -->(4 pos) 1000 0000 (-128)
+
  11001 ROL1 - 10011
{{Collapse bottom}}
 
 
 
{{Collapse top |Aula 6 - 25/2/15: Uso de deslocamentos nas operações aritméticas e multiplicação binária.}}
 
  
 
{{Collapse bottom}}
 
{{Collapse bottom}}

Edição das 09h25min de 26 de fevereiro 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: 1, 2, ..., 9, 10. Conceito mínimo para não necessitar reavaliação: 6.
    • Um ou mais conceitos abaixo de 6 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
Aula Data Horas Conteúdo Recursos
1 4/2 2 Aula inaugural, apresentação da disciplina Sala de Aula, Projetor multimídia
2 6/2 2 Sistemas de numeração Binário, Octal, Hexadecimal e conversão entre sistemas. Sala de Aula, Projetor multimídia
3 11/2 2 Códigos Gray, Binário, BCD e one-hot, representaçao de números negativos: sinal-magnitude e complemento de 2 Sala de Aula, Projetor multimídia
4 13/2 2 Ponto fixo e ponto flutuante Sala de Aula, Projetor multimídia
5 20/2 2 Soma e subtraçao binária (com complemento de 2) Sala de Aula, Projetor multimídia
6 25/2 2 Deslocamentos (SXL, SXA, ROX), uso para multiplicaçao e divisao. Multiplicacao binária (com e sem sinal) Sala de Aula, Projetor multimídia
7 27/2 2 Laboratório 1 – Uso do software Quartus para ensino de Circuitos Lógicos Laboratório de Programação
8 4/3 2 Divisao binaria, aritmetica de ponto flutuante. Exercicios Sala de Aula, Projetor multimídia
9 6/3 2 Laboratório 2 – Uso do software QSIM e Programação do FPGA Laboratório de Programação
10 11/3 2 Cap 4 – Portas AND, NAND, OR, NOR Sala de Aula, Projetor multimídia
11 13/3 2 Cap 4 – Porta XOR, Buffer, Tri-state Sala de Aula, Projetor multimídia
12 18/3 2 AVALIAÇÃO 1 – Sistemas de Numeração e Aritmética Binaria Sala de Aula, Projetor multimídia
13 20/3 2 Cap 5 – Algebra de Boole. Teoremas, Tabelas-Verdade Sala de Aula, Projetor multimídia
14 25/3 2 Cap 5 – Algebra de Boole. Mintermos, Maxtermos, Equações SOP e POS Sala de Aula, Projetor multimídia
15 27/3 2 Cap 5 – Algebra de Boole. Mintermos, Maxtermos, Equações SOP e POS Sala de Aula, Projetor multimídia
16 1/4 2 Cap 5 – Mapa de Karnaugh Sala de Aula, Projetor multimídia
17 8/4 2 Cap 5 – Mapa de Karnaugh Sala de Aula, Projetor multimídia
18 10/4 2 Cap 5 – Mapa de Karnaugh Sala de Aula, Projetor multimídia
19 15/4 2 Laboratório 3 – Codificador de 7 segmentos (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, X, E, X, X, -, b) Laboratório de Programação
20 17/4 2 Cap 11 -Circuitos Combinacionais Logicos Sala de Aula, Projetor multimídia
21 22/4 2 Cap 11 -Circuitos Combinacionais Logicos Sala de Aula, Projetor multimídia
22 24/4 2 Cap 11 -Circuitos Combinacionais Logicos Sala de Aula, Projetor multimídia
23 29/4 2 AVALIAÇÃO 2 – Cap 4, Cap 5 Sala de Aula, Projetor multimídia
24 6/5 2 Cap 12 -Circuitos Combinacionais Aritméticos Sala de Aula, Projetor multimídia
25 8/5 2 Cap 12 -Circuitos Combinacionais Aritméticos Sala de Aula, Projetor multimídia
26 13/5 2 Laboratório 4 – Circuitos Aritméticos (Somador, Complemento de 2 e Subtrator) Laboratório de Programação
27 15/5 2 Cap 4 – Flip-Flop D, Registrador de deslocamento Sala de Aula, Projetor multimídia
28 20/5 2 Laboratório 5 - Comparadores, Multiplicadores Laboratório de Programação
29 22/5 2 Cap 4 – Contadores Assincronos, Sincronos, Gerador de Sequencia Pseudo Aleatória Sala de Aula, Projetor multimídia
30 27/5 2 Cap 13 – Registradores, Latches e FlipFlops Sala de Aula, Projetor multimídia
31 29/5 2 Cap 14 -Circuitos Sequenciais Sala de Aula, Projetor multimídia
32 3/6 2 Cap 14 -Circuitos Sequenciais Sala de Aula, Projetor multimídia
33 10/6 2 Laboratório 6 – Contadores Laboratório de Programação
34 12/6 2 Projeto Final em Equipes – Definição das equipes e especificação dos projetos Laboratório de Programação
35 17/6 2 Projeto Final em Equipes – Trabalho das equipes (Apresentação dos circuitos comerciais necessários para os projetos) Laboratório de Programação
36 17/6 2 Projeto Final em Equipes – Trabalho das equipes Laboratório de Programação
37 24/6 2 Projeto Final em Equipes – Trabalho das equipes Laboratório de Programação
38 26/6 2 Projeto Final em Equipes – Apresentação do Relatório Laboratório de Programação
39 1/7 2 Projeto Final em Equipes – Apresentação do Relatório Laboratório de Programação
40 3/7 2 Reavaliação final Sala de Aula, Projetor multimídia
TOTAL 80

Diário de aulas

Aula 1 - 3/2/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. Ementa
  4. Apresentação do modelo de aulas a ser adotado
    1. Laboratórios
    2. Bibliografia
  5. 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 numérico: 1, 2, ..., 9, 10. Conceito mínimo para não necessitar reavaliação: 6.
    3. Reavaliação única no último dia de aula.
  6. Relação com outras disciplinas do curso
  7. Conceitos iniciais:
    1. Analógico x Digital
      1. ADC <==> DAC
    2. Lógica binária: 2 níveis, 0 e 1
      1. 4 bits = nibble
      2. 8 bits = byte
      3. n bits = word (16, 32, 64)
    3. Circuitos digitais: cada circuito digital pode ser descrito por uma função binária que é como ele processa os bits que recebe.
Aula 2 - 5/2/15: Sistemas de numeração Binário, Octal, Hexadecimal e conversão entre sistemas

Sistemas de numeração

Observe a Figura do odômetro.

Odometro.jpg

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?

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?

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:

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:

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

ConversaoDecimalBinario.jpg

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.

octal binário
0 000
1 001
2 010
3 011
4 100
5 101
6 110
7 111
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 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

Exercícios

Converta para decimal

Converta para a base indicada:

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. Tabela de equivalência entre códigos

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

  1. 0000 = +0
  2. 1001 = -1
  3. 110011 = -19
  4. 010011 = +19
  5. 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:

  1. 0000 = +0 ==> 1111 = -0
  2. 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:

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:

  1. -0
  2. -1
  3. -17
  4. -123
  5. -128

Algum problema?

Exercícios

  1. Livro Pedroni: 2.16 -> 2.32
  2. Qual é o maior e menor valor decimal que se consegue representar em complemento de dois com 8 dígitos binários?
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 fixo

A representação segue a regra

S I F

onde:

  • S = sinal. 0 para positivo e 1 para negativo
  • I = parte inteira do valor. Representação binária tradicional
  • F = parte fracionária do valor. O expoente do base inicia em -1 e vai sendo decrementado.

Por exemplo:

0 1 1 1 0 1 1 0 1
+
+ 16 8 4 0 1 0,5 0 0,125

Portanto o decimal equivalente é: 29,625

Representação por ponto flutuante

Como representar número inteiros?

Padrão IEEE 754

S E F

onde:

  • S = sinal. 0 para positivo e 1 para negativo
  • E = expoente. 8 bits para precisão simples e 11 bits para precisão dupla
  • F = parte fracionária. 23 bits para precisão simples e bits para precisão dupla

Observe que tem-se 32 bits totais para a precisão simples e 64 bits para a precisão dupla.

Precisão simples

O 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 dupla

O número decimal equivalente é obtido por:

Observações:

  1. Na representação por ponto flutuante, a representação de números negativos é equivalente a representação sinal magnitude, ou seja, obtida pela simples inversão de todos os bitas da representação positiva do número.
  2. As equações não produzem valor 0 (zero), portanto, uma representação especial se faz necessário para representar esse valor: S=0/1, E=0 e F=0 é equivalente a +0 e -0.
  3. Representação de infinito: S=0/1, E=max e F=0 é equivalente a .
  4. Representação NaN (not a number) que são o btidas por números inválidos ou indeterminados (0/0, etc): S=0/1, E=0 e é equivalente a NaN (erro).

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 inteiro

Ponto 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?

Exercícios

Livro texto: 2.33 ==> 2.38

Aula 5 - 20/2/15: Aritmética binária

Adição sem sinal

Ex:

 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 bits

Como pode ocorrer overflow deve-se ter critérios para detecção automática caso esse caso ocorra:

  1. se o último bit do carry for 1 ==> ocorreu overflow
  2. baseado nos operandos: quando ambos MSB são 1 ou quando são diferentes é o resultado de sua soma é zero.

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 bits

Nunca ocorre overflow!

Adição e subtração com sinal

Subtraçã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 bits

Como pode ocorrer overflow deve-se ter critérios para detecção automática caso esse caso ocorra:

  1. se os dois últimos bits de carry forem diferentes, então ocorreu overflow
  2. se o MSB dos operandos forem iguais e o MSB da soma for diferente deles, então ocorreu overflow.

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 bits

Nunca ocorre overflow, MAS:

  1. se as entradas tiverem sinais diferentes, o MSB do carry deve ser invertido e incrementado ao resultado final.

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ção

O 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ógico

A 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ético

O 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
Aula 7 - 27/2/15: Divisão binária, aritmética de ponto flutuante
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. Conecte remotamente a máquina servidora com o seguinte comando: ssh -X nome_de_usuario@200.135.233.26
    2. Execute o Quartus com o comando: /opt/altera/13.0sp1/quartus/bin/quartus &
    3. 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. Seguindo orientações do referido tutorial execute as seguintes operações:
    1. Typical CAD Flow
    2. Getting Started
    3. Starting a New Project
    4. Schematic Design Entry
    5. Compiling the Design
    6. Pin Assignment DEpinSW Led.png
    7. Simulating the Designed Circuit
    8. Programming and Configuring the FPGA Device
    9. Testing the Designed Circuit
Board Device Name
DE0 Cyclone III EP3C16F484C6
DE0-Nano Cyclone IVE EP4CE22F17C6
DE1 Cyclone II EP2C20F484C7
DE2 Cyclone II EP2C35F672C6
DE2-70 Cyclone II EP2C70F896C6
DE2-115 Cyclone IVE EP4CE115F29C7