Please use this identifier to cite or link to this item: http://hdl.handle.net/10773/32682
Title: Hardware C++: uma linguagem orientada por objectos para especificação multinível de sistemas digitais
Author: Veloso, Aires Manuel Araújo
Advisor: Ferrari, António de Brito
Keywords: Programação orientada para o objeto
Linguagens de programação
Engenharia electrotécnica
Defense Date: 1996
Abstract: A linguagem Hardware C++ (HC++) foi desenvolvida de forma a tirar partido do paradigma de orientação por objectos para a especificação multinível de sistemas digitais. As principais motivações para o seu desenvolvimento foram a constatação de que as linguagens de descrição de hardware actuais se encontram numa fase intermédia entre as linguagens estruturadas e as orientadas por objectos e a necessidade da incorporação da tecnologia da orientação por objectos para fazer face à crescente complexidade dos sistemas de hardware. A linguagem HC++ é uma extensão da linguagem C++. Para além das facilidades disponíveis em C++, HC++ dispõe de recursos que a habilitam à descrição dos componentes de hardware no domínio estrutural e/ou comportamental, nomeadamente, o módulo, os processos, os sinais, os subprocessos, as funções de resolução e um modelo de tempo dotado de duas formas de atraso, o inercial e o de transporte, instruções especiais para o instanciamento de componentes, para o controlo da execução dos processos e de atribuição de sinal. O módulo e o conceito central de HC++; possibilita a modelação dos componentes de hardware em qualquer nível de abstração, combinando as características das classes do C++ com a concorrência inerente ao hardware. Os processos podem invocar outros processos, criando uma árvore de processos que reflecte a estrutura hierarquizada dos sistemas digitais; os processos são reutilizáveis e o seu tempo de vida pode ser controlado pelo projectista. Outro aspecto importante de HC++, são os poderosos mecanismos de parametrização que permitem captar o carácter repetitivo e regular do hardware. HC++ permite a parametrização das suas descrições por constantes de tipos escalares e de vectores de tipos escalares e também de tipos, possibilitando a descrição de arquitecturas abstraindo a natureza específica dos subcomponentes do sistema. O principal mérito de HC++ reside no facto de possuir os recursos necessários ao nível da sua sintaxe e da sua semântica para, tal coma as linguagens convencionais poder descrever os componentes de hardware, mas também explorar as potenciais relações que possam existir entre componentes distintos de hardware. Em vez dos sistemas de hardware serem descritos como entidades isoladas como acontece com as linguagens correntes, passam a ser descritos coma realmente são concebidos, i.e. como aperfeiçoamentos e/ou extensões de sistemas existentes. As descrições dos novos sistemas especificam apenas os aperfeiçoamentos e as extensões introduzidas e herdam automaticamente as descrições das versões anteriores. Esta nova perspectiva possibilita um maior nível de reutilização de código, maior legibilidade das descrições e um encurtarnento considerável do ciclo de desenvolvimento dos sistemas. Sendo descendente de C++, beneficia do largo suporte existente para a linguagem C++ e tal como a linguagem C++ é de fácil aprendizagem. Simplifica consideravelmente o codesenho dos sistemas, pois pode ser utilizada simultaneamente para as descrições de hardware e para as descrições de software, evitando aos desenhadores a tarefa de familiarização com duas linguagens completamente distintas. A linguagem HC++ pode ser instalada em qualquer tipo de máquina actual, visto exigir como plataforma de base apenas um compilador de C++ e o sistema operativo UNIX. Qualquer destes recursos estão disponibilizados para a vasta gama de computadores existentes no mercado, quer para computadores pessoais quer para as máquinas de médio e grande porte. Para alem da definição da linguagem foi concebido e implementado um sistema de desenvolvimento para HC++ que possibilita a descrição e a simulação de sistemas digitais. No futuro prevê-se o desenvolvimento de novas ferramentas a integrar no ambiente, nomeadamente: • um tradudor, com facilidades como a inserção de pontos de paragem, a execução passo a passo, e a visualização do conteúdo de objectos do programa fonte (HC++); • ferramentas de síntese.
The Hardware C++ language (HC++) was developed to explore the object oriented paradigm in the multilevel specification of digital systems. The main motivation for its development was the verification that present hardware description languages do not fully support the object oriented approach and the need for object oriented technology in hardware description languages to face the increasing complexity of hardware systems. HC++ is an extension of the C++ language. Besides C++ facilities, HC++ provides mechanisms for description of hardware components in the structural and/or behavioural domain, namely, the module, the processes, the signals, the subprocesses, the resolution functions and a time model with two delay formats, inertial and transport, special instructions for component instantiation, and for the control of execution of processes and signal assignement. The module is the HC++ central concept; it provides hardware component modelling in any abstraction level, joining the object oriented characteristics of C++ classes with the concurrency inherent to hardware. Processes can invoke other processes, creating a tree of processes which reflect the hierarchical structure of digital systems; processes are reusable and their lifetime can be controled by the designer. An other important HC++ aspect, is the powerful parameterization mechanisms providing the capture of hardware repetitivity and regularity. HC++ descriptions can be parameterized by scalar and scalar array constants and also by types, making possible the description of architectures abstracting the specific nature of system components. The main HC++ worth is to provide the necessary ressources at level of its syntax and semantics to explore the potential relations existing between hardware components. Instead of hardware systems described by separate entities as it's common in traditional languages, they begin to be described as they are really designed, i.e. as improvements and/or extensions of existing systems. The descriptions of the new systems only specify the introduced improvements and extensions, and inherit automatically the descriptions of previous systems. This new orientation provides a greater level of code reuse, greater legibility of descriptions and considerably shortens system development cicle. Beeing descendant of C++, HC++ benefits from the large C++ support and such as C++, is easy to learn. It can simplify considerably the codesign of systems, because it could be used for simultaneous hardware and software descriptions, sparing designers the task of learning two different languages. The HC++ language can be installed in any machine running UNIX, because it only requires a C++ compiler. Besides the HC++ definition, a development system for HC++ supporting the description and simulation of digital systems has been implemented. In the near future the development and integration of new tools into the system is forseen, namely: • a traceability tool, allowing the control of the simulation by breakpoint settings, step by step simulation and the check of object values; • synthesis tools.
URI: http://hdl.handle.net/10773/32682
Appears in Collections:UA - Teses de doutoramento
DETI - Teses de doutoramento

Files in This Item:
File Description SizeFormat 
Documento_Aires_Veloso.pdf450.35 MBAdobe PDFrestrictedAccess


FacebookTwitterLinkedIn
Formato BibTex MendeleyEndnote Degois 

Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.