Escolar Documentos
Profissional Documentos
Cultura Documentos
Definio de um sistema
Entradas e sadas Objetivo Analgicos ou Digitais
Sistemas Analgicos
Os sinais processados variam no tempo dentro de uma faixa pr-estabelecida, de forma contnua. Exemplos
od
rig
de
So
uz
Sistemas
Vi
ei
ra
Sistemas Digitais
Os dados processados variam no tempo dentro de valores pr-estabelecidos Exemplos
Facilidade do projeto
Chaveamento
Armazenamento da informao
informao pode ser retida
Preciso
maior preciso software mais circuitos
Operaes programveis
Integrao
CIs
Mas...
... o mundo no digital!! O que fazer para trabalhar com sistemas digitais em um mundo analgico??
od
rig
Robustez
de
So
uz
Vi
ei
ra
Soluo
Converter entradas analgicas em digitais Processar e operar os dados digitalmente
Sncrono
dados mudam em intervalos constantes de tempo
Assncrono
dados mudam a qualquer instante
od
rig
de
So
uz
Vi
ei
ra
CAD
esquemticos
teste e validao
Programadores
od
rig
de
Simuladores
So
uz
Vi
ei
ra
Representao de dados
Nmeros binrios
1010111101101011
Nmeros decimais
8769383.98792
od
rig
Exemplo: Converter 122 para binrio 122 2 0 61 2 O processo acaba O processo acaba 1 30 2 quando o quociente quando o quociente tem valor 1, tem valor 1, 0 15 2 1 7 2 1 3 2 1 1
de
So
uz
Vi
ei
ra
Exerccios
Converta os sinais de acordo com a notao solicitada.
Sistemas Combinacionais
lgebra Booleana e Conjuntos lgicos completos
lgebra de Boole
Anlise formal para circuitos digitais
Georges Boole (1815-1865).
Em 1854, ele inventou um sistema algbrico de dois valores, agora chamado lgebra Booleana. Usando esta lgebra, pode-se formular proposies que:
so verdadeiras ou falsas, combin-las para fazer novas proposies e determinar se as novas proposies so verdadeiras ou falsas.
od
rig
de
So
uz
Vi
ei
ra
od
rig
de
So
uz
Portas Lgicas
Vi
ei
ra
Teorema de Morgan
Permite escrever circuitos equivalentes alterando entre as portas NAND e NOR
( A + B) = A B ( A B) = A + B
A+ AB = A+ B A+0 = A A 1 = A A +1 = 1 A+ A = A A+ A =1 A0 = 0 A A = A A A = 0
Simplifique as equaes
1) A B + A B resp. A 2) A B C + B C resp. B C 3) ( A + B + C ) + ( B + C ) resp. 0
4) ( A + B + C ) ( A + B ) resp. A + B 5) A B + A B C + A B C resp. ( A B )
od
rig
A= A A (B + C) = A B + A C A + ( B C ) = ( A + B) ( A + C )
de
So
A + A B = A
uz
Vi
ei
ra
Tabelas verdade
Toda equao booleana pode ser representada por uma tabela verdade e vice-versa 2n linhas dada n variveis Uma soma de produtos (SDP) uma soma lgica de termos produtos.
AD + ABC
Dada uma tabela verdade, os minitermos so aqueles que o resultado 1 e os maxitermos so aqueles em que o resultado 0
od
rig
de
So
uz
Minitermos e Maxitermos
Vi
ei
ra
Mi
A+ B +C A+ B +C A+ B +C A+ B +C A + B+C A + B+C A + B +C A + B +C
Observe que o ndice i do minitermo o ndice binrio da funo de sada!! A esta frmula se d o nome de soma cannica de uma funo
od
rig
de
Um minitermo de n-variveis pode ser representado por um inteiro de n-bit Para se chegar a este nmero, deve-se verificar a representao binria do minitermo.
So
uz
Representando minitermos
Vi
ei
ra
10
Observe que o ndice i do Maxitermo o ndice binrio da funo de sada!! A esta frmula se d o nome de produto cannico de uma funo
Mapas de Karnaugh
Para 4 variveis...
od
rig
de
Surgiu da observncia que pares de minitermos que diferenciam de somente uma varivel podem ser simplificados Exemplo para 3 variveis
So
uz
Mapas de Karnaught
Vi
ei
ra
11
Exerccios
Ache o produto cannico e a soma cannica das equaes abaixo:
a ) ABC + ABD + A BC b) AC + BD + AB c) ABD + A B C
H ( A, B, C , D ) = m(0,1,2,3,4,5,12,13,14,15) I ( A, B, C , D ) = M (3,4,5,9,13)
od
rig
de
So
uz
Exerccios
Vi
ei
ra
12
Arranjos lgicos
od
rig
de
So
uz
Exerccio
Vi
ei
ra
13
Arranjos lgicos
So geralmente circuitos dados atravs de matrizes de portas lgicas e permitem criar sadas que produzam minitermos especficos
od
rig
m0 = A B C
m2 = A BC
m4 = AB C
de
m7 = ABC
So
uz
Vi
ei
ra
14
Arranjos programados
Os arranjos programados so arranjos lgicos que podem gerar sadas definidas em conjuntos pr-estabelecidos de minitermos Dividem-se em dois tipos
O arranjo SDP O arranjo PDS
A B C Minitermos
f1 f2 f3
Arranjo PDS
Arranjo OR
A B C Maxitermos
od
rig
Arranjo AND
f1 f2 f3
de
Arranjo AND
Arranjo OR
So
uz
Arranjo SDP
Vi
ei
ra
15
Exemplo
Criar um PLA que fornea as seguintes funes de sada
f = ABC + A B C + AB C g = AB C + A B C + A BC
m7 m5 m4 m2 m1 m0
rig
od
de
So
uz
O Circuito do exemplo
Vi
ei
ra
16
Exerccio
Monte o PLA para um display de 7 seguimentos conforme mostrado abaixo
a f e d g c b
Aplicao
Faa um conversor de BCD (Binary Coded Decimal ) para binrio utilizando um PLA. Lembre-se que o BCD utiliza 4 bits para representar um nmero de 0 a 9. Utilize no circuito dois dgitos BCD e 8 bits de sada. Trabalhe apenas com os valores positivos e resolva o problema para o espectro 0 -15 em decimal.
od
rig
=3
de
Faa um contador digital que transforme o valor binrio em uma barra de leds como mostrado abaixo. Utilize um PLA e defina com o nmero de entradas mnimas necessrias.
So
uz
Exerccio 02
Vi
ei
ra
17
PLA x PAL
PLA
Portas AND e OR programveis
PAL
Portas AND programveis e OR fixas
16L8
Mais comum 10 entradas e 8 sadas
Variaes
GAL: Generic Array Logic
Similar ao PAL Pode ser reprogramado (similar a EEPROM)
od
rig
Elemento fusvel
de
So
uz
PAL comercial
Vi
ei
ra
18
Circuitos Combinacionais
od
rig
n entradas
de
Circuito combinacional
So
uz
Viso geral
Vi
ei
ra
19
Exemplo
Criar um circuito que descreva o seguinte problema: Dadas 3 entradas lgicas, o valor de sada ser verdadeiro se somente um nmero par de entradas for verdadeiro.
Tendo somente CIs do tipo 7401 - 4 portas do tipo NAND, remonte o circuito do exemplo anterior.
Circuitos elementares
Decodificador
Dada uma entrada binria, este tipo de circuito somente habilita um sinal de sada Nomenclatura Decodificador n X m, onde m 2n Smbolo
od
rig
de
So
uz
Exerccio
Vi
ei
ra
20
Decodificador - circuito
Multiplexador - Circuito
od
rig
de
Dado um conjunto de m entradas, o multiplexador capaz de selecionar uma delas. dado como Mux m-1 Smbolo
So
uz
Multiplexador
Vi
ei
ra
21
Somadores
Em sistemas binrios podemos encontrar dois tipos de somadores
Meio somador - soma apenas 2 bits Somador completo - soma 2 bits mais o carry
od
rig
de
So
uz
Vi
ei
ra
22
Somador/subtrador
Adotando uma porta XOR na entrada do somador completo, pode-se criar um somador/subtrador binrio
VHDL
Conceitos bsicos
Origem
Anos 70 - DoD cria o projeto VHSIC (Very High Speed Integrated Circuits) Anos 80 - Criada uma linguagem para descrever os VHSIC 1987 - VHDL (VHSIC Hardware Description Language) torna-se padro pela IEEE
od
rig
de
So
uz
Vi
ei
ra
23
Utilizao da VHDL
Linguagem para descrever sistemas digitais Especificar Simular e Sintetizar sistemas digitais Existem outras linguagens
Verilog, SystemC, SDL, ISP, etc..
Mais vantagens
Sob o ponto de vista do nvel fsico
Reduz tempo e custos de projeto Elimina erros de projeto Diminui o Gap de mercado
od
rig
de
So
uz
Vantagens
Vi
ei
ra
24
Desvantagens
Hardware pode no ter melhor otimizao Necessidade de treinamento de pessoal
Exemplo de cdigo
entity counter is port (count : buffer bit_vector(8 downto 1); clk : in bit; reset : in bit); end; begin for i in input'low to input'high loop result(i) := input(i) xor carry; carry := input(i) and carry; exit when carry = '0'; end loop; return result; end increment; architecture only of counter is begin ctr: constant tpd_reset_to_count : time := 10 ns; process(clk, reset) constant tpd_clk_to_count : time := 5 ns; begin if (reset = '1') then function increment(val : bit_vector) return bit_vector if reset'event then is count <= (others => '0') after tpd_reset_to_count; -- normalize the indexing end if; alias input : bit_vector(val'length downto 1) is val; elsif clk'event and (clk = '1') then variable result : bit_vector(input'range) := input; count <= increment(count) variable carry : bit := '1'; after tpd_clk_to_count; end if; end process; end only;
od
rig
de
So
uz
Abstrao da linguagem
Vi
ei
ra
25
Tipos Tipos
rig
od
de
So
uz
Vi
ei
ra
26
Tipos: Nmeros
Existem os nmeros inteiros
10 4567 101
E os nmeros reais
1.05 0.003 3.45E10
Bit
assume valor 0 ou 1
Boolean
Assume valores true ou false
Tipos: Fsicos
Physical
Definem uma grandeza fsica como voltagem, tempo, etc... Tipos mais comuns:
ps, ns, ms, sec, min, hr
od
rig
de
So
uz
Tipos: Lgicos
Vi
ei
ra
27
Tipos: Sinal
Serve para conectar dois componentes Funciona internamente em uma entidade Sintaxe:
signal nome : tipo;
Octal
ex.: O7710
Hexadecimal
ex.: XAA20
od
rig
de
So
uz
Vi
ei
ra
28
Operadores
+ adio subtrao / diviso = igualdade < menor que > maior que & concatenador | barra vertical ; terminador ( ) parenteses < > caixa : ** => := /= >= <= <= -separador de tipo aspas dupla aspas simples exponenciao ento... ou recebe atribuio desiguladade maior ou igual a menor ou igual a associo para valor de sinal comentrio
Elementos da VHDL
Comentrios
Marcados aps dois traos --
Ex.: read (dados, bit01); -- coloca dados em bit01
Identificadores
Servem para determinar sinais e processos
Precisa comear sempre com uma letra No pode terminar com sublinhado No pode ter dois sublinhados em seqncia Pode conter qualquer letra, nmero e o sublinhado
od
rig
de
So
uz
Mais operadores
Vi
ei
ra
29
Constantes e variveis
Todo valor deve ser declarado antes de seu uso Uma constante declarada utilizando a palavra reservada constant.
Ex.: constant pi :=3.141592653; -- define o valor de Pi
Exemplos:
type valor_leitura is range -5.0 to 5.0; type unidades is range 1 to 10;
J os vetores so definidos pela palavra is array e determinam um conjunto de valores associados varivel
Ex.: type imagem is array (1 to10) of integer type imagem2 is array(1 to 5, 1, to 5) of bit
od
rig
de
So
uz
Usando os tipos
Vi
ei
ra
30
Tipos estruturais
Os tipos estruturais so aqueles que apresentam subtipos na sua declarao. So definidos atravs da palavra is record
Ex.: type horario is record segundo : integer range 0 to 59; minuto: integer range 0 to 59; hora: integer range 0 to 23 end record horario
od
rig
de
Definem em qual sentido o fluxo do programa dever seguir if e if-else Ex. if sinal = 1 then
So
uz
Vi
ei
ra
31
od
rig
.... endloop
de
Define um loop infinito no cdigo Utiliza a palavra exit para sair do loop Ex.: loop exit when sinal = 1;
So
uz
Vi
ei
ra
32
od
rig
de
Utiliza-se vrgula Utiliza-se vrgula para adicionar para adicionar mais flags. mais flags.
So
uz
Vi
ei
ra
33
Entity
A entidade o elemento bsico da VHDL Conceito de caixa-preta Associa entradas e sadas com seus respectivos tipos
VHDL VHDL
Architecture
Define o comportamento da Entidade Uma mesma Entidade pode ter mais de uma arquitetura Baseia-se em dois modelos
Comportamental Estrutural
od
rig
de
So
uz
Vi
ei
ra
34
od
function nome_da_funo( nome_sinal ::tipo_de_sinal; function nome_da_funo( nome_sinal tipo_de_sinal; nome_sinal ::tipo_de_sinal) nome_sinal tipo_de_sinal) return tipo_des_sinal is return tipo_des_sinal is <declaraes de tipos> <declaraes de tipos> <declarao de sinais> <declarao de sinais> <declarao de constantes> <declarao de constantes> <definio de funes> <definio de funes> <definio de procedimentos> <definio de procedimentos> <declarao de componentes> <declarao de componentes> begin begin ...... ...... end function nome_da_funo; end function nome_da_funo;
rig
de
So
uz
Funes e procedimentos
Vi
ei
ra
35
Procedimentos
Um procedimento uma funo que no retorna valor e podem receber ou no parmetros
procedure nome_do_procedimento(nome_sinal ::tipo_de_sinal; procedure nome_do_procedimento(nome_sinal tipo_de_sinal; nome_sinal ::tipo_de_sinal) nome_sinal tipo_de_sinal) is is <declaraes de tipos> <declaraes de tipos> <declarao de sinais> <declarao de sinais> <declarao de constantes> <declarao de constantes> <definio de funes> <definio de funes> <definio de procedimentos> <definio de procedimentos> <declarao de componentes> <declarao de componentes> begin begin ...... ...... end procedure nome_da_funo; end procedure nome_da_funo;
Parsers
http://home.wtal.de/software-solutions/vhdl-parser/ http://www.ti.informatik.uni-frankfurt.de/grimm/hybrid.html
Compiladores
http://www-asim.lip6.fr/recherche/alliance/ http://www.gnu.org/software/electric/electric.html http://www.cliftonlabs.com/savant/download/
http://www.symphonyeda.com/products.htm
Componentes
Para representar estruturas do tipo
od
rig
Ambientes
de
So
uz
Internet
Vi
ei
ra
36
Componentes
Utiliza-se componentes como forma de modularizar o cdigo. So utilizados dentro da arquitetura do sistema So definidos como:
componente Nome is... .... end component;
Neste caso...
cada mdulo um component se comunicam atraves de signal e cada signal mapeado atravs de port map
Usando componentes
Montar o circuito:
od
rig
de
So
uz
Usando componentes
Vi
ei
ra
37
Definindo os componentes
Primeiramente se define as entidades em arquivos separados:
-- componente 1 entity PORTA_AND is port( A: in bit; B: in bit; F1: out bit ); end PORTA_AND; architecture processa of PORTA_AND is begin F1 <= A and B; -- comportamento end processa;
-- componente 2 entity PORTA_OR is port( X: in bit; Y: in bit; F2: out bit ); end PORTA_OR; architecture processa of PORTA_OR is begin F2 <= X or Y; -- comportamento end processa;
architecture estrutura of CIRCUITO is component PORTA_AND is port( A: in bit; B: in bit; F1: out bit ); end component; component PORTA_OR is port( X: in bit; Y: in bit; F2: out bit ); end component; -- PORTA_AND
signal ligacao: bit; -- signal de ligao begin -- mapeando as entradas porta1: PORTA_AND port map (A=>input1, B=>input2, F1=>ligacao); porta2: PORTA_OR port map (X=>ligacao, Y=>input3, F2=>output); end estrutura;
-- PORTA OR
Testando o circuito
Uma das vantagens do VHDL possibilitar o teste da lgica do circuito Para tal se cria uma nova entidade cujo componente principal o circuito a ser testado. Deve-se definir um conjunto de sinais que sero colocados no circuito para gerar a sada
od
rig
Observe que: a)O nome do componente e seus membros deve ser o mesmo da entidade b) O sinal ligao serve para conectar os componentes c)port map utilizado para associar as entradas da entidade com a dos componentes
de
So
entity CIRCUITO is port( input1: in bit; input2: in bit; input3: in bit; output: out bit ); end CIRCUITO;
uz
Definindo o circuito
Vi
ei
ra
38
O cdigo do teste
entity CIRCUITO_TESTA is end CIRCUITO_TESTA; -- entidade vazia begin -- mapeia as portas e sinais teste: CIRCUITO port map (input1=>T_input1,input2=>T_input2,input3=>T_input3, output =>T_output); process begin -- define um processo architecture BENCHTEST of CIRCUITO_TESTA is component CIRCUITO is -- declara o circuito como port( input1: in bit; -- componente da entidade input2: in bit; -- sempre levando em input3: in bit; -- conta o mesmo nome output: out bit ); end component; -- define os sinais de teste para o programa signal T_input1, T_input2, T_input3,T_output: bit;
-- primeiro caso T_input1 <= '0'; T_input2 <= '0'; T_input3 <= '0'; wait for 100 ns; -- segundo caso T_input1 <= '1'; T_input2 <= '1'; T_input3 <= '1'; wait; end process; end BENCHTEST; ------------------------------------------------------------------configuration CFG_TESTE of CIRCUITO_TESTA is for BENCHTEST end for; end CFG TESTE;
od
rig
de
So
uz
Configuration
Vi
ei
ra
39