Vous êtes sur la page 1sur 13

EAD: Controle Digital

4. Mdulo 6 Algoritmos complexos gerais para controladores digitais a partir de funes de transferncia desejadas para o controlador:
A transferncia de dados num microcontrolador ocorre entre o registro de trabalho (W) e um registro f que representa um qualquer local de memria na RAM interna (quer se trate de um registro especial ou de um registro de uso genrico). As primeiras trs instrues (observe a tabela seguinte) referem-se escrita de uma constante no registro W (MOVLW uma abreviatura para MOVa Literal para W), cpia de um dado do registro W na RAM e cpia de um dado de um registro da RAM no registro W (ou nele prprio, caso em que apenas a flag do zero afetada) . A instruo CLRF escreve a constante 0 no registro f e CLRW escreve a constante 0 no registro W. A instruo SWAPF troca o nibble (conjunto de 4 bits) mais significativo com o nibble menos significativo de um registro, passando o primeiro a ser o menos significativo e o outro o mais significativo do registro. De todas as operaes aritmticas possveis, os microcontroladores PIC, tal como a grande maioria dos outros microcontroladores, apenas suportam a subtraco e a adio. Os bits ou flags C, DC e Z, so afetados conforme o resultado da adio ou da subtraco, com uma nica exceo: uma vez que a subtraco executada como uma adio com um nmero negativo, a flag C (Carry), comporta-se inversamente no que diz respeito subtraco. Por outras palavras, posta a 1 se a operao possvel e posta a 0 se um nmero maior tiver que ser subtrado de outro mais pequeno. A lgica dentro do PIC tem a capacidade de executar as operaes AND, OR, EX-OR, complemento (COMF) e rotaes (RLF e RRF). Estas ltimas instrues rodam o contedo do registro atravs desse registro e da flag C de uma casa para a esquerda (na direo do bit 7), ou para a direita (na direo do bit 0). O bit que sai do registro escrito na flag C e o contedo anterior desta flag, escrito no bit situado do lado oposto no registro. O Projeto de circuitos e combinatrios e seqenciais e permitem a uma realizao de sistemas de baixa e mdia complexidade. O nvel de detalhe a que estas tcnicas so aplicadas demasiado elevado para que

possam ser usadas na concepo de circuitos de grande dimenso. Assim, no projeto de sistemas com uma funcionalidade mais complexa necessrio um nvel de abstrao mais elevado de forma a esconder muitos detalhes e a tornar o problema manejvel. O projeto de sistemas digitais em termos de duas componentes. Uma a Unidade de Processamento, tambm chamada de circuito de dados (ou datapath, em ingls), que contm toda a lgica que faz os clculos propriamente ditos bem como os registros onde os dados so guardados. A segunda a Unidade de Controlo que gerem quais as operaes que a unidade de processamento deve efetuar em cada ciclo de relgio. A abordagem pressupe que uma complexidade de processamento mais elevada requer em geral vrios ciclos de relgio para se completar. De fato, operaes acima de um certo nvel de complexidade podem implicar um circuito lgico especfico com uma dimenso tal que tornaria incomportvel a sua realizao na prtica. Estas operaes so assim divididas numa seqncia de operaes mais simples, estas sim facilmente realizveis em hardware. A unidade de processamento o circuito que disponibiliza estas operaes mais simples e a unidade de controlo o circuito que as seqncias de forma a realizar a operao complexa. Para permitir descrever de maneira clara o algoritmo de realizao de operaes complexas em termos das operaes bsicas da unidade de processamento, foram desenvolvidas linguagens de descrio de hardware. Embora as unidades de processamento possam ser projetadas para um fim especfico, em muitos casos opta-se por usar unidades que disponibilizam um conjunto de operaes aritmticas e lgicas tpicas, chamadas Unidades Aritmticas e Lgicas ou ULA (em ingls, Arithmetic and Logic Unit ou ALU). A abordagem usada neste captulo para o projeto de circuitos corresponde a subir o nvel de abstrao na descrio de circuitos lgicos. O projeto de sistemas complexos envolve diferentes nveis de abstrao, tendo o projeto incio no mais abstrato, descendo-se sucessivamente para nveis mais concretos. A abordagem por nveis de abstrao torna possvel o projeto de sistemas para os quais uma abordagem direta seria demasiado complexa. De forma a dar uma idia geral deste processo e um melhor contexto para os mtodos de projeto apresentados neste livro, descrevem-se em seguida os diferentes nveis de abstrao tipicamente considerados no projeto de circuitos lgicos complexos. Os nveis de abstrao ordenados de cima para baixo dos nveis mais abstrato para os nveis mais concretos. Dito de outra forma, nesta ordenao o grau de detalhe na descrio do sistema aumenta de cima para baixo.

O projeto tem incio ao nvel de sistema onde so feitas anlises globais, mas muito gerais, sobre o projeto, nomeadamente sobre o nmero de subsistemas em que o sistema se deve dividir, qual o tipo de subsistemas e a sua forma de interligao. Termina ao nvel de layout aonde se vai a um grau de detalhe em que fica definido o caminho de cada interligao do circuito eltrico, permitindo, portanto a sua fabricao. Em cada nvel de abstrao, a anlise feita individualmente sobre mdulos criados no nvel imediatamente acima. Assim, o projeto sucessivamente dividido em mdulos menores, o que permite ir aumentando o nvel de detalhe, mantendo-o sempre como um problema gervel em cada nvel. este processo de dividir para conquistar que faz o sucesso deste conceito de nveis de abstrao. Por outro lado, num dado nvel de abstrao possvel desenvolver o projeto sem necessitar de informao sobre nveis inferiores. Esta caracterstica esconde os detalhes de implementao, permitindo que o projetista se concentre em conseguir a melhor soluo possvel a esse nvel. Toda a anlise se debruou sobre circuitos descritos ao nvel da porta lgica. Este o nvel de abstrao intermdio, como se pode observar na hierarquia. Referiu-se atrs que a realizao de portas lgicas feita com o uso de transistores que, como se pode ver na figura, um nvel de abstrao imediatamente abaixo. No entanto, para a definio das tcnicas de projeto apresentadas, nunca foi necessrio saber em concreto como que as portas lgicas iriam ser realizadas em termos de transistores. Depois de obtida uma especificao ao nvel de portas lgicas, o passo seguinte convert-las para transistores e fazer as ligaes eltricas. Para uma dada tecnologia de fabrico de circuitos, a cada porta lgica corresponde um esquema eltrico de interligao de transistores. No entanto, para alm deste mapeamento necessrio fazer o dimensionamento dos transistores de maneira a garantir, por exemplo, determinados tempos de atraso e consumos de potncia. Embora se possam realizar sistemas digitais com elementos discretos, cada vez mais comum que a realizao dos sistemas digitais seja em termos de circuito integrado. Neste caso, o passo final converter esta descrio ao nvel de transistor, que no fundo uma descrio de um circuito eltrico, para mscaras que so usadas diretamente no fabrico de circuitos integrados, a que se chama nvel de layout. Estas mscaras definem linhas por onde passam certos tipos de elementos que constituem o circuito final. Por exemplo, as interligaes so normalmente realizadas por linhas de metal, podendo existir vrias camadas destas linhas e correspondendo a cada camada uma mscara. No caso da tecnologia CMOS, os transistores so formados pelo cruzamento de uma linha de polisilcio por outra de

dopagem de substrato, correspondendo a mais duas mscaras diferentes. Tipicamente, na passagem do nvel de transistor para o nvel de layout, o objetivo escolher o caminho de cada linha de forma minimizar a rea total ocupada pelo circuito. Estes dois nveis de abstrao, assim como o nvel de sistema, sai fora do mbito deste livro e, portanto no sero discutidos. O nvel de transferncia entre registros, nvel imediatamente acima do nvel de porta lgica. De acordo com a filosofia dos nveis de abstrao, usam-se mdulos de complexidade mais elevada, mas sem detalhar a forma como so construdos. Por exemplo, so utilizados diretamente somadores sem haver a preocupao de como esses somadores sero realizados em termos de portas lgicas. De referir que, para a maior parte das operaes de projeto e otimizao a cada nvel de abstrao, o projetista pode recorrer a ferramentas de sntese de circuitos. A partir de uma descrio do circuito a um dado nvel, estas ferramentas geram automaticamente o circuito correspondente num nvel de abstrao mais baixo, otimizando tendo encontra um conjunto de parmetros que o projetista pode especificar. A rea de investigao de algoritmos de sntese lgica uma rea de intensa atividade, mas este tambm um tema que sai fora do mbito deste livro. O sistema digital pode ser construdo de raiz usando bsculas e portas lgicas discretas usando as tcnicas de projeto de circuitos sncronos apresentadas nos captulos anteriores. Porm, como discutido na seco prvia, esta aproximao tem grandes limitaes. Por exemplo, qualquer dos mtodos de gerao de circuitos combinatrios impraticvel quando o nmero de variveis de entrada elevado. Os sistemas digitais so, assim, normalmente estruturados em duas unidades principais, a Unidade de Processamento e a Unidade de Controlo. A unidade de processamento constituda por pequenos mdulos interligados para armazenar e processar a informao til do sistema. Como indicado, recebe as entradas a processar, ou seja, os operandos ou dados do exterior e calcula o resultado. A unidade de controlo responsvel por gerar os sinais de controlo que seqncias as operaes bsicas da unidade de processamento de forma a que o sistema realize operaes complexas. Ao conjunto de sinais de controlo que saem da unidade de controlo para a unidade de processamento chama-se palavra de controlo. A seqncia de sinais de controlo gerada pela unidade de controlo pode depender dos resultados dos clculos efetuados pela unidade de processamento. Esta informao fornecida unidade de controlo por bits de estado ou flags, cujo funcionamento ser discutido mais frente. A unidade de controlo pode tambm receber informao diretamente do exterior, como por exemplo, um sinal externo que indica quando dar incio

operao ou qual a operao a realizar. Em geral, existiro sadas de controlo para indicar para o exterior o estado da computao, como por exemplo, um sinal que indica o fim da operao. Naturalmente, entre os ciclos de relgio necessrio ao processamento de uma operao complexa ter-se- que guardar valores temporrios de clculos intermdios. Estes so guardados em registros, disponveis na unidade de processamento. As formas de interligao de registos e mdulos de processamento foram apresentados. Este processo de separao de uma operao complexa numa seqncia de operaes mais simples, considere-se o caso de uma multiplicao. Discute -se a realizao lgica de multiplicadores, nomeadamente o fato de serem mdulos complexos que requerem muito hardware. apresentada a realizao direta para uma operao de multiplicao P=A*B. Uma alternativa trivial a este circuito realizar esta multiplicao atravs de somas sucessivas, somando A vezes o valor de B. Assim, em vez de um mdulo multiplicador ser necessrio apenas um somador, mdulo significativamente mais simples. Este circuito funciona como a sua unidade de processamento. O preo a pagar pela simplificao do hardware do circuito a necessidade de um mdulo adicional de controlo capaz de realizar a seguinte seqncia de operaes: 1. colocar registro P a zero. 2. carregar em P a soma de P com B. 3. decrementar o registro A. 4. se o registro A no chegou a zero, voltar para 2. Para facilitar estas operaes, os registros utilizados tm algumas funcionalidades adicionais. Assim, o registro A de fato um contador, com uma entrada de controle para fazer a sua decrementao e uma sada de estado que fica ativa quando este registro contm o valor 0. Por seu lado, o registro P tem um sinal de controle que permite coloc-lo a zero. Tendo disponveis estes sinais de controlo, a unidade de controlo ser um circuito seqencial que gera a seqncia de sinais para realizar o algoritmo apresentado atrs. Este algoritmo apresenta sob a forma de um fluxograma, ao qual foram adicionados dois sinais. A entrada serve para indicar quando se deve dar incio operao. A sada indica quando a operao terminou. Este sinal til porque o nmero de ciclos de relgio necessrios para esta operao no fixo. Para cada operao de multiplicao o tempo de processamento determinado pelo valor inicial de A e, portanto importante que o sistema possa dar esta indicao para o exterior. possvel aplicar qualquer das tcnicas de projeto de circuitos seqenciais apresentadas. Nas seces seguintes, apresenta-se uma linguagem de

descrio que permite descrever as operaes bsicas da unidade de processamento, facilitando a composio de um circuito seqencial que realize a operao complexa desejada. Este exemplo ilustra como se pode reduzir a complexidade do circuito a implementar, traduzindo operaes complexas numa seqncia de operaes mais simples. Existe assim um compromisso que o projetista pode explorar entre a complexidade da unidade de processamento a implementar e o tempo (em termos de ciclos de relgio) que a operao demora a realizar. Em geral, quanto mais simples as operaes disponveis menor o hardware necessrio na unidade de processamento, mas maior a seqncia de operaes, correspondendo, portanto h um tempo total de execuo maior. O exemplo aqui apresentado simplesmente ilustrativo. Embora na prtica se evitem fato os mdulos multiplicadores combinatrios devido sua complexidade, existem mtodos seqenciais mais eficientes do que o aqui apresentado. Alm disso, este exemplo discute duas alternativas possveis, uma combinatria, outra seqencial. Em muitos casos, as operaes so de tal modo complexas que a alternativa de um mdulo combinatrio puro est partida fora de causa. As unidades de processamento so tipicamente construdas usando os mdulos combinatrios de mdia complexidade estudados nos Captulos 5 e 6 e registros estudados. Sobre a informao contida nos registros podem ser realizadas operaes cujo resultado pode ser guardado no mesmo registro, noutro registro ou mesmo numa posio de memria. Por exemplo, se se pretender um sistema para uma funcionalidade especfica como o clculo de D=(A+B)*C, uma possvel unidade de processamento seria simplesmente a indicada. Pela forma como o circuito est desenhado, todos os ciclos de relgio o registro D atualizado como valor (A+B) * C, em que os valores de A, B e C so os destes registros no incio de cada ciclo de relgio. Existe alguma liberdade na construo da unidade de processamento. Em primeiro lugar, o projetista tem ao seu dispor um conjunto de mdulos, sejam eles aritmticos, lgicos ou outros, pelos quais poder optar dependendo da operao a realizar. Poder ainda construir mdulos novos e especficos usando as tcnicas de projeto do Captulo 3. No exemplo anterior, assumisse que estavam disponveis mdulos somadores, mdulos multiplicadores e registros. Em segundo lugar, em muitos casos possvel fazer compromissos entre a complexidade da unidade de processamento e a complexidade da unidade de controlo, tentando-se arranjar um equilbrio entre a quantidade de hardware necessrio para o circuito e o desempenho deste. Concretizando para o exemplo anterior, para poupar hardware, em vez de se usar um mdulo

multiplicador, poder-se-ia optar por realizar a multiplicao por somas sucessivas, como discutido na seco anterior. Para isto seria necessrio um registro temporrio onde se somaria vezes o valor do registro C, sendo o valor do resultado A+B. A desvantagem bvia que a operao que antes se realizava num nico ciclo de relgio agora necessita de ciclos para a multiplicao, mais um ciclo para a soma original. A complexidade da unidade de controlo aumenta, pois agora tem que controlar o nmero de vezes que a soma da multiplicao se efetua. Outro ponto a considerar no projeta de uma unidade de processamento est relacionado com a freqncia mxima permitida para o sinal de relgio. Como referido na, para o correto funcionamento do sistema, o perodo de relgio ter que ser sempre superior ao maior atraso na lgica entre 2 registros da unidade de processamento. Portanto, mesmo que existam operaes muito simples no sistema, esta ser sempre a granularidade mnima de durao de uma operao. Para reduzir esta granularidade, os mdulos podem ser intercalados com registros, como ilustrado onde o registro T guarda temporariamente o resultado da soma. Neste caso, a operao D=(A+B) * C demora 2 ciclos de relgio, um para calcular a soma T=A+B e outro para calcular a multiplicao D=T*C, mas o ciclo de relgio foi reduzido. De sublinhar que esta otimizao pode ter um impacto enorme no desempenho do sistema, pois esta reduo de ciclo de relgio tem influncia em todas as operaes simples do sistema. Uma vez escolhidos os mdulos para a unidade de processamento, ficam definidas quais as operaes que podem ser realizadas sobre a informao armazenada nos registros a cada ciclo de relgio. Estas operaes so chamadas de micro-operaes e estas deferimos pontos de controlo para a unidade de controlo. Apresenta-se mais frente neste captulo um exemplo de uma unidade de processamento construda para um fim especfico. No entanto, podem-se construir unidades de processamento para as quais no esteja definida partida uma aplicao em particular, como o caso das unidades de processamento de computadores. Para estas situaes, define-se um conjunto de microoperaes suficientemente genrico e poderoso para acomodar eficientemente um conjunto grande de funcionalidades. A estas unidades de processamento d-se o nome de Unidade Lgica e Aritmtica ou ULA (em ingls, Arithmetic and Logic Unit ou ALU).

7 Controladores Digitais usando mquinas de estado:

Algumas aplicaes requerem circuitos de controle que realizem aes seqenciais pr-definidas em resposta a sinais aplicados externamente ou como resultado de condies geradas dentro do circuito, tal como um Carry em uma operao de adio ou no final da contagem de um contador. Tais circuitos de controle so caracterizados por terem um nmero finito de estados. Esses circuitos so ento chamados de Controladores de Estado Finito (CEF). Os CEF so formados de duas partes: a) Caminho dos Dados b) Unidade de Controle O Caminho dos Dados envolve mdulos combinacionais, tais como unidades lgico-aritmtica, multiplexadores, registradores e memrias. A Unidade de Controle fornece comandos ao Caminho dos Dados para habilitar operaes selecionadas. Estes comandos devem ser seqenciados apropriadamente para assegurar que as operaes sero realizadas em resposta s entradas ou condies internas. Projeta-se uma Unidade de Controle para um sistema digital identificando suas entradas e suas sadas, e desenvolvendo ento o algoritmo de controle na forma de um Diagrama de Estado. Os Controladores de Estado Finito so projetados usando em geral Circuitos Seqenciais Sncronos. Definem-se as entradas e as sadas do controlador e o algoritmo a ser implementado. Determina-se o Diagrama de Estado e implementa-se o Circuito Seqencial Sncrono equivalente. Projeto de um Controlador de Estado Finito para um Robot para que encontre a sada do labirinto.

O Robot possui um sensor no nariz que detecta a presena de um obstculo frente fornecendo a entrada x=1 para o controlador, ou x=0 quando no tiver obstculo.

O Controlador deve fornecer dois comandos: Z1 = 1 para virar direita e Z2 = 1 para virar esquerda.

Operao: Ao detectar o primeiro obstculo, virar esquerda, detectando segundo, virar direita, o terceiro esquerda e assim sucessivamente. Estado A: Nenhum obstculo detectado, ltimo comando direita. Estado B: Obstculo detectado, virar esquerda. Estado C: Nenhum obstculo detectado, ltimo comando esquerda. Estado D: Obstculo detectado, virar direita. Definio dos Estados:

Projeto de uma mquina de doces operada atravs da insero de moedas. Cada doce custa 20 centavos. A mquina aceita apenas moedas de 5 e 10 centavos. Se mais do que 20 centavos for inserido, a mquina deve fornecer o troco. No mais que 25 centavos pode ser inserido em uma simples compra, assim, o mximo troco 5 centavos.

X1 = 1 ==> moeda de 5 centavos foi inserida X2 = 1 ==> moeda de 10 centavos foi inserida As entradas automaticamente zeram no prximo pulso de clock. fisicamente impossvel inserir duas moedas no mesmo perodo do clock, ou seja, x1 = x2 = 1

Diagramas de Mquinas de Estado Algortmica (Diagramas ASM) Diagrama alternativo ao Diagrama de Estado, til para o projeto de Unidades de Controle em Mquinas de Estado Finito. Diagrama ASM uma ferramenta para implementar algoritmos a serem executados por Circuitos Lgicos Seqenciais Sncronos. A filosofia a mesma empregada para a gerao de Fluxogramas empregados em descrever o algoritmo a ser executado por um computador. So definidos trs blocos para a gerao de Diagramas ASM:

Bloco de Estado: Representa um Estado do circuito e equivalente a um n do Diagrama de Estado. Para Circuitos Moore, as sadas produzidas, que a ao a ser realizada enquanto neste estado, tambm listada. Bloco de Deciso: Representa uma deciso de transio de estado, baseada em uma entrada do circuito. Um Bloco de Deciso usado para cada entrada. Bloco de Sada Condicional: Especifica as sadas associadas com as transies de estado para uma dada entrada em circuito Mealy.

Projeto de uma Unidade de Controle para um Multiplicador Binrio que computar 8 Bits atravs do produto de dois nmeros binrios sem sinal de 4 Bits. O Multiplicador comea com um sinal de Reset e pra enviando um sinal de Halt quando a operao termina.

O circuito evidentemente um Controlador de Estado Finito. O Caminho do Dado requer trs registradores e um somador binrio.

A Unidade de Controle possui 02 entradas e 04 sadas.

Foi utilizado um circuito Modelo Moore com os seguintes Estados: Start: Carrega os operandos nos registradores M e Q. Zera o registrador A e o contador CNT. Add: Soma o Multiplicando (M) com o Produto Parcial corrente carregando a soma e o Carry do somador binrio no registrador A. Shift: Desloca o Produto Parcial e o Multiplicador de 1 Bit direita. Incrementa o contador. Halt: Para a operao, deixando o Produto nos registradores A e Q. Mtodo ne hot para projeto de Mquina de Estado Finito Mtodo utilizado para reduzir o tempo de projeto A atribuio de Estados one hot estabelece 1 Flip Flop por Estado. Todas as variveis de estado, exceto uma, so zero para um dado intervalo de tempo:

O projeto one hot derivado diretamente do Diagrama ASM 1) Usa se FF tipo D atribuindo se 1 FF por Estado

2) Os loops d controle do Diagrama ASM so implementados atravs de portas OU.

3) Os blocos de Deciso do Diagrama ASM so implementados atravs de portas AND e os Blocos de Sada Condicional so as sadas das portas AND em circuitos AND em circuitos Modelo Mealy.

Implementao do Multiplicador, atravs do Mtodo One Hot.

Vous aimerez peut-être aussi