1 research outputs found
Modelos, métodos e ferramentas para implementação de unidades de controlo virtuais
Mestrado em Engenharia Electrónica e TelecomunicaçõesAs unidades de controlo são um dos tipos de circuitos digitais mais
importantes, estando presentes numa grande diversidade de aplicações,
desde simples controladores de semáforos até sistemas complexos de
processamento de dados. A sua função é estabelecer a sequência de
operações realizadas pelo sistema a que pertencem. Dependendo da
aplicação, podem ser utilizadas isoladamente ou em conjunto com
outros componentes, tais como unidades de execução, sensores e
actuadores. Como um caso particular de circuitos sequenciais, são
normalmente descritas por modelos orientados ao estado, dos quais a
máquina de estados finitos é o exemplo mais conhecido. No entanto,
com a crescente complexidade dos sistemas e consequentemente das
suas unidades de controlo, este modelo deixou de ser adequado para
realizar a sua especificação, uma vez que não suporta a descrição
explícita de hierarquia e concorrência. Nesta dissertação são abordados
alguns dos modelos e linguagens mais apropriadas para este fim, em
particular a máquina de estados finitos hierárquica e/ou paralela, os
esquemas de grafos hierárquicos e/ou paralelos e os Statecharts. O
aparecimento na última década de dispositivos lógicos de elevada
capacidade e programáveis pelo utilizador foi responsável por
importantes alterações no projecto de sistemas digitais, principalmente
ao nível do tempo, custo e flexibilidade de projecto. Além disso, os
dispositivos programáveis dinamicamente, deram origem a uma nova
classe de circuitos: os sistemas reconfiguráveis. Estes podem ser usados
para construir sistemas computacionais modificáveis, pelo que
permitem combinar as vantagens de uma solução programável com o
elevado desempenho de uma implementação em hardware. Os sistemas
reconfiguráveis podem também ser utilizados em aplicações onde a
quantidade de recursos de hardware necessários para uma
implementação integral seja elevada e onde nem todos os sub-sistemas
sejam necessários em simultâneo, sendo portanto possível e até
desejável uma implementação parcial em conjunto com a sua
reconfiguração dinâmica. Neste caso, devido à analogia com os sistemas
de memória virtual, os sistemas reconfiguráveis são também designados
por sistemas de hardware virtual e os respectivos circuitos de controlo
por unidades de controlo virtuais. Como as unidades de controlo são
específicas de cada projecto e normalmente bastante irregulares,
torna-se necessário o estabelecimento de algumas restrições de forma a
simplificar o seu projecto e reconfiguração. Nesta dissertação é
proposta uma arquitectura de unidades de controlo virtuais baseada
numa estrutura predefinida, parametrizável e optimizada para o
dispositivo de implementação utilizado, a FPGA XC6200 da Xilinx.
Esta arquitectura em conjunto com os modelos e os dispositivos
lógicos programáveis utilizados permite construir unidades de controlo
complexas, flexíveis, extensíveis e reutilizáveis. O processo de síntese de
unidades de controlo é também abordado, com uma atenção especial
para as técnicas mais apropriadas para as FPGAs. Finalmente, para
suportar a reconfiguração dinâmica dos circuitos desenvolvidos, foi
construída uma biblioteca de classes em C++ e um controlador (device
driver) para a placa de desenvolvimento utilizada neste trabalho.Control units are one of the most important types of digital circuits.
They are used in a great variety of applications, from simple traffic light
controllers to complex data processing systems. Their function is to
establish the sequence of operations accomplished by the system they
belong to. Depending on the application, they can be used separately or
together with other components, such as execution units, sensors or
actuators. Because control units are a particular kind of sequential
circuits, they are usually described by state-oriented models, the finite
state machine being the best known example. However, with the
increasing complexity of the systems and consequently of its control
units, this model is becoming less adapted to perform its specification,
because it does not support the explicit description of hierarchy and
concurrency. This dissertation presents some of the models and
languages better suited to this purpose, in particular the hierarchical
and/or parallel finite state machine, the hierarchical and/or parallel
graph schemes and the Statecharts formalisms.
The appearance in the last decade of high capacity user programmable
logic devices was responsible for important modifications in the way
digital systems are designed, mainly in terms of time, cost and design
flexibility. Besides, the availability of dynamically reconfigurable devices
made possible the emergence of a new class of circuits: the
reconfigurable systems. They can be used to build modifiable
computational systems combining the advantages of a programmable
solution with the high performance of a hardware implementation. The
reconfigurable systems can also be used in applications where the
amount of required hardware resources for an integral implementation
is too high or at least bigger than desirable and where all the subsystems
are not necessary simultaneously, making possible a partial
implementation in conjunction with its dynamic reconfiguration. Due
to the analogy with virtual memory systems, these systems can also be
called virtual hardware systems and their respective control circuits
virtual control units. Because the control units are specific for each
project and usually very irregular, it is necessary to impose some
constraints in order to simplify their design and reconfiguration. In this
dissertation an architecture for virtual control units based on a
predefined, parameterizable and optimized template for a particular
target device, the FPGA XC6200 from Xilinx, is proposed. However,
the main ideas of this architecture can also be easily applied to other
FPGA families. The use of this architecture together with the
hierarchical and/or parallel models and the dynamically reconfigurable
logic devices allows building complex, flexible, extensible and reusable
control units. This contributes to a decrease in development time and
permits system updates after the completion of the design and
manufacturing cycles. The control unit synthesis process is also
presented with special emphasis on the techniques better suited to
FPGA implementation. Finally, to support the dynamic reconfiguration
of the developed circuits, a C++ class library and a device driver for the
development system used in this work were built