Você está na página 1de 17

Universidade Jean Piaget de Angola

Faculdade de Ciências Tecnológicas


Curso de Licenciatura em Eng. Informática de Gestão

LINGUAGEM DE DESCRIÇÃO HARDWARE

Período: Diurno
2ª Ano

Docente

__________________
ENG. Nuno Sebastião

Viana, 22 de Novembro de 2022.


Universidade Jean Piaget de Angola
Faculdade de Ciências Tecnológicas
Curso de Licenciatura em Eng. Informática de Gestão

LINGUAGEM DE DESCRIÇÃO HARDWARE

INTEGRANTES DO GRUPO
 Arminélio Axel Mariano
 Edivaldo André de Sousa Oliveira
 Lourenço Bento Calado António
 Mateso Epuca Vicky
 Paula Tenente Mbande

Viana, 22 de Novembro de 2022.


INTRODUÇÃO
Neste presente trabalho iremos abordar de acordo ao tema “Linguagem de
descrição hardware” LDHs são padrões de expressões baseados em texto, da
estrutura espacial, temporal e comportamental dos sistemas eletrônicos. Como
outras linguagens de programação, LDHs incluem anotações explícitas para
expressar a simultaneidade bem como sintaxe e semântica próprias.
Com o uso da programação pode transformar um grande trabalho de logica
matemática e mapas de Karnaugh em poucas linhas de texto economizando
recursos, tempo e tendo mais com habilidade. Essa técnica de programação é
chamada de HDL (Hardware Description Language), onde projeta-se hardware,
tratando sua funcionalidade bem como sua aplicação. Uma diferença notável entre
esta e a programação de software e o paralelismo.
As linguagens mais usadas atualmente são VHDL e Verilog. Com as
linguagens de descrição de hardware, o processo passou a ser como desenvolver
um software,
tendo como etapas:
 A especificação do projeto em alto nível;
 Codificação;
 Verificação / testes;
 Sintetização;
OBJECTIVO GERAL
O nosso trabalho tem como objectivo geral estudar sobre a linguagem de
descrição hardware.
OBJECTIVOS ESPECIFICOS
 Verificar o uso da linguagem de descrição hardware nos dias de hoje
 Importância e relevância da LDH

IMPORTÂNCIA DE ESTUDO
A linguagem descritiva de hardware (HDL) é importante para entender o
projeto de dispositivos e circuitos semicondutores. O HDL pode ser usado para
criar um modelo de circuito ou dispositivo, que pode ser simulado usando
ferramentas de software. Essas informações podem ser usadas para otimizar o
projeto ou solucionar problemas com o dispositivo
DELIMITAÇÃO DE ESTUDO
O tema delimita-se no estudo de linguangens de descrição Hardware

DEFINIÇÃO DE CONCEITOS
FUNDAMENTAÇÃO TEÓRICA
Em eletrônica, uma linguagem de descrição de hardware ou LDH é
qualquer linguagem de uma classe de linguagens de computador, linguagem de
especificação ou linguagem de modelagem para uma descrição formal e design
de circuitos eletrônicos, e mais comumente, a lógica digital. Pode descrever o
funcionamento do circuito, a sua concepção e organização, e ainda testá-lo para
verificar seu funcionamento por meio de simulação.
LDHs são padrões de expressões baseados em texto, da estrutura espacial,
temporal e comportamental dos sistemas eletrônicos. Como outras linguagens de
programação, LDHs incluem anotações explícitas para expressar a simultaneidade
bem como sintaxe e semântica próprias. No entanto, em contraste com a maioria
dos softwares de linguagem de programação, LDHs também incluem uma noção
implícita de tempo, como um atributo primário de hardware. Linguagem cuja única
característica é a de expressar a conectividade do circuito entre uma hierarquia de
blocos que estão adequadamente classificadas como uma
linguagem netlist utilizada no computer-aided design (CAD).
LDHs são usados para escrever especificações executáveis de algum pedaço
de hardware. Um programa de simulação, concebido para implementar a semântica
subjacente das declarações de linguagem, juntamente com o progresso da
simulação de time, fornece o designer de hardware com a capacidade de modelar
uma peça de hardware antes de ser criado fisicamente. É isso que dá
executabilidade na LDH a ilusão de serem linguagens de programação, quando
eles são mais precisamente, classificados como linguagens de especificação ou
linguagens de modelagem. Simuladores capaz de suportar eventos discretos
(digital) e de time contínuo (analógico) na modelagem existente, e LDHs
direcionados para cada uma que esta disponível.
É certamente possível representar a semântica hardware utilizando
linguagens de programação tradicionais, como C + +, embora a função de tais
programas devem ser aumentados com bibliotecas de classe extensa e de difícil
manejo. No entanto, linguagens de programação de software não incluem qualquer
capacidade de expressar explicitamente time, e é por isso que eles não funcionam
como uma linguagem de descrição de hardware. Antes da introdução recente
de SystemVerilog, C + + integrado com um simulador de lógica era uma das
poucas maneiras de usar OOP na verificação de hardware. SystemVerilog é uma
LDHs importante para oferecer orientação a objetos e garbage collection.
Usando o subconjunto próprio de praticamente qualquer linguagem
(descrição de hardware ou software de programação), um programa chamado de
sintetizador (ou ferramenta de síntese) pode-se inferir operações lógicas de
hardware a partir das declarações de linguagem e produzir um netlist equivalente
de hardware genérico primitivo para implementar o comportamento especificado.
Sintetizadores geralmente ignoram a expressão de qualquer timing construído no
texto. Sintetizadores de lógica digital, por exemplo, geralmente usa a banda do
time como caminho para o time do circuito, ignorando quaisquer construções de
timing. A capacidade de ter um subconjunto sintetizado da linguagem não quer
dizer q seja uma linguagem de descrição de hardware.
Os nívíeis de hierarquia nos HDLs podem ser visualizados na figura 1

Figura 1: Descrição Hierarquica das abstrações de hardware, iniciando com Nível


Arquitetural, Funcional, Nível de Registradores, Estrutural e por fim no nıvel Fısico.

HISTÓRIA
As primeiras linguagens de descrição de hardware foram ISP (Processador
de Conjunto de Instruções), desenvolvido na Carnegie Mellon University, e
KARL, desenvolvido na Universidade de Kaiserslautern, ambos por volta de 1977.
ISP, entretanto, foi mais como uma linguagem de programação de software usado
para descrever as relações entre as entradas e as saídas do projeto. Portanto, ela
poderia ser usada para simular o design, mas não para sintetizá-lo. KARL a
inclusão de características de design de linguagem cálculo apoio VLSI
floorplanning chip e hardware design estruturado, que foi também a base da ABL
KARL da linguagem gráfica interativa irmã, implementado no início de 1980
como o editor de design gráfico VLSI abled, pelas telecomunicações centro de
pesquisa CSELT em Torino, Itália. Em meados dos anos 1980, um quadro design
VLSI foi implementado em torno KARL ABL e por um consórcio internacional
financiado pela Comissão da União Europeia (capítulo em [3]). Em 1983 Data-I /
O introduziram ABEL. Foi alvo para descrever dispositivos lógicos programáveis
e foi basicamente usado para projetar máquinas de estado finito.
O primeiro LDH moderno, Verilog, foi apresentado pelo Gateway Design
Automation em 1985. Cadence Design Systems mais tarde adquiriu os direitos
para Verilog-XL, o LDH-simulador que se tornaria o padrão de-facto (de
simuladores de Verilog) para a próxima década. Em 1987, um pedido do
Departamento de Defesa dos EUA, levou ao desenvolvimento de VHDL
(Linguagem de Descrição de Hardware VHSIC, onde VHSIC é Very High Speed
Integrated Circuit). VHDL foi baseada na linguagem de programação Ada.
Inicialmente, Verilog e VHDL foram usadas para documentar e simular projetos
de circuitos já capturado e descrito de outra forma (como um arquivo de esquema.)
LDH-simulação habilitam engenheiros a trabalhar em um nível maior de abstração
do que a simulação no nível de esquema, e assim aumentou a capacidade de design
de centenas de transistores para milhares [ carece de fontes? ].
A introdução da lógica de síntese para LDHs empurrou a LDHs do fundo
para o primeiro plano de design digital. Ferramentas de síntese compilada LDH-
source files (escrito em um formato limitado chamado RTL) em uma descrição
netlist manufacturable gate / transistor-level. Gravação de arquivos RTL
sintetizados requer prática e disciplina por parte do designer; comparado a um
esquema tradicional layout, sintetizado-RTL netlists eram quase sempre maior em
área e mais lento em desempenho [ carece de fontes? ]. O design do circuito feito
por um engenheiro qualificado, utilizando mão de obra intensiva schematic-
capture/hand-layout, quase sempre superam o seu equivalente logicamente
sintetizado, mas vantagem na produtividade da síntese rapidamente deslocado a
captura digital esquemática exatamente nas áreas que eram problemáticas para
síntese-RTL-: extremamente alta velocidade, baixo consumo de energia, ou
circuitos assíncronos. Em resumo, a síntese lógica impulsiona a tecnologia LDH
em um papel central para o desenho digital.
Dentro de alguns anos, tanto VHDL e Verilog emergiu como o LDHs
dominante na indústria de eletrônicos, enquanto LDHs mais velhos e menos
capazes gradualmente desapareceu de uso. Mas VHDL e Verilog compartilham
muitas das mesmas limitações: nem HDL é adequado para analógico / circuito de
sinal misto de simulação. Não possui construções de linguagem para descrever
estruturas lógica gerada recursivamente. LDHs especializados (como Confluence)
foram introduzidas

LDH E LINGUAGENS DE PROGRAMAÇÃO


A LDH é análoga a um software de linguagem de programação, mas com
grandes diferenças. Muitas linguagens de programação são inerentemente
processuais (single-threaded), com apoio sintático e semântico limitada para lidar
com a concorrência. LDHs, por outro lado, se assemelham a programação
concorrente, linguagem na sua capacidade de modelar vários processos paralelos
(como flipflops, somadores, etc.) que automaticamente execute
independentemente um do outro. Qualquer alteração para introduzir o processo
automaticamente é disparada uma atualização na pilha do simulador de processo.
Ambas as linguagens de programação e LDHs são processados por um compilador
(normalmente chamado de um sintetizador no caso LDH), mas com objetivos
diferentes. Para LDHs, 'compilador' refere-se à síntese, um processo de
transformação da listagem de código LDH em uma porta netlist fisicamente
realizável. A saída netlist pode tomar qualquer das muitas formas: uma
"simulação" netlist com porta de atraso de informação, um "handoff" netlist para
pós-síntese local e rota, ou um formato genérico padrão da indústria EDIF (para
posterior conversão em um JEDEC - formato de arquivo).
Por outro lado, um compilador de software converte a listagem do código-
fonte em um microprocessador específico código-objeto, para execução no
microprocessador alvo. Como LDHs e linguagens de programação emprestando
conceitos e características um para o outro, o limite entre eles está se tornando
menos distinto. No entanto, LDHs pura são inadequados para o desenvolvimento
de aplicações de propósitos gerais propósito, assim como linguagens de
programação de propósito geral são indesejáveis para o hardware de modelagem.
No entanto, como sistemas eletrônicos crescem cada vez mais complexos,
e sistemas reconfiguráveis tornado cada vez mais mainstream, há um crescente
desejo na indústria para uma única linguagem que execute algumas tarefas de
ambos os projetos de hardware e software de programação. SystemC é um
exemplo desse tipo de embutido, o hardware do sistema pode ser modelado como
blocos não detalhados de arquitetura (blackboxes com entradas de sinal modelado
e drivers de saída).
O aplicativo de destino é escrito em C / C + + e compilados nativamente
para o sistema host-desenvolvimento (em oposição à segmentação do CPU
embutida, o que exige host de simulação do CPU incorporado). O alto nível de
abstração de modelos SystemC é bem adequado para o início da exploração da
arquitetura, como modificações arquitetônicas pode ser facilmente avaliada com
pouca preocupação com questões de nível de sinal-implementação. No entanto, o
modelo de segmentação usado em SystemC e sua dependência de memória
compartilhada significam que ele não controla a execução paralela ou modelos de
nível mais baixo também.
Em uma tentativa de reduzir a complexidade do projeto em LDHs, que
foram comparados com o equivalente de linguagens assembly, há movimentos
para elevar o nível de abstração do design. Empresas como a Cadence, Synopsys
e Design Solutions está promovendo agilidade SystemC como uma maneira de
combinar linguagens de alto nível com os modelos de concorrência para permitir
ciclos mais rápidos de projeto para FPGAs do que é possível utilizando LDHs
tradicionais. Abordagens baseadas em padrão C ou C + + (com bibliotecas ou
outras extensões permitindo programação paralela) são encontrados na C Catapult
ferramentas da Mentor Graphics, o Impulse C ferramentas de Tecnologias Impulse
acelerada, e open-source ROCCC 2,0 ferramentas de Jacquard Computing inc.
Annapolis Micro Systems, Inc. 's Suite Design CoreFire e National Instruments
LabVIEW FPGA fornecer uma interface gráfica de fluxo de dados para abordagem
de alto nível de entrada de design. Linguagens como SystemVerilog,
SystemVHDL e Handel-C procuram atingir o mesmo objetivo, mas visam fazer
com que os mais produtivos engenheiros de hardware existentes contra os
engenheiros de software fazendo FPGAs mais acessíveis. Não há mais
informações sobre C para LDH e Fluxo de LDH em seus respectivos artigos.
TIPOS DE LINGUAGENS
Como mencionando anteriormente, as LHDs são de extrema importância e
o conhecimento dos diferentes tipos de linguagens, porem elas podem ser
agrupadas e divididas em duas classes principais,sendo elas: As Standalone,
(Independentes), que possuem a sua propria sintaxe, biblioteca e compiladores. E
as Programming Language Based HDLs , (Baseadas em Linguagem de
Programação), que São bibliotecas baseadas em linguagens de programac~ao ja
conhecidas como, C, C++ e Java. Nas proximas sessões apresentaremos alguns
exemplos das linguagens pertencentes a cada classe acompanhado de uma breve
descricao das mesmas.
INDEPENDENTES
VHDL
A linguagem mais utilizada atualmente e a VHDL, onde HDL vem de
linguagem de descrição de hardware e V esta para Very High Speed Itegrated
Circuits, ou seja, VHDL seria uma linguagem de descrição de hardware para
circuitos integrados de velocidade muito alta. Sua criação foi financiada pelo
departamento de defesa dos Estados Unidos em 1980, e teve sua primeira versão
lancada em 1987. Nesse mesmo ano, o VHDL se tornou a primeira LHD a ser
padronizada pela IEEE atraves dos padrões 1076 e 1164. Deste modo,
acompanhado da mobilidade da linguagem, de ser independente de tecnologia, o
VHDL foi difundido nas industrias e se tornou a linguagem mais utilizada.
Posteriormente, o VHDL teve três novas versões, a VHDL 93, a VHDL 2002, e
VHDL 2008. As diferencas e lancamentos de cada versão podem ser encontradas
em Todo arquivo VHDL requer ao menos duas estruturas: uma declaração de
entidade (entity) e uma arquitetura (architecture).
A declaração de entidade de ne os aspectos externos da função VHDL, isto
e, os nomes das entradas e sadas e o nome dado ao circuito gerado, normalmente
o nome da função que o circuito ira executar, por exemplo, multiplicador. A
arquitetura de ne os aspectos internos, isto e, como as entradas e sadas trabalham
no funcionamento do uxo de sinais, dentro da arquitetura a maneira como o circuito
e descrito pode ser tanto comportamental quanto estrutural. O compilador ira
executar os comandos seguindo o uxo de sinais nos registradores, e não de maneira
sequencial das linhas como esta descrito no codigo. Porem, o VHDL permite que
o codigo ocorra de maneira sequencial, atraves da chamada de procedimentos
(Procedures).
Ainda mais, o VHDL permite a sntese e a simulação do circuito, onde a
sntese seria a tradução do abstração gerada em codigo para um hardware. Ja a
simulação busca testar se o circuito esta funcionando da maneira desejada descrita
em codigo. Por m o uxo de desenvolvimento de implementação de um codigo em
VHDL pode ser de nido em três passos: a programação, a compilacação e a
implementação. Inicialmente o usuario deve escrever o codigo com as
especicações desejadas.
O proximo passo e compilar o codigo. Nesta etapa o compilador utiliza um
ferramenta de síntese e gera uma estrutura de hardware disponvel com o tipo de
dispositivo escolhido pelo usuario para que durante o mapeamento das portas a
distribuição ocorra corretamente para cada dispositivo. Esta e uma grande
vantagem do VHDL, onde o mesmo codigo pode servir para diferentes
dispositivos. Finalmente, feito a a simulação corretamente do circuito ele pode ser
implementado em um dispositivo, no caso de CPLDs (Complex Programmable
Logic Device) e FPGAs ( Field-Programmable Gate Array) a implementação
ocorre com o a copia do codigo para o dispositivo.

VERILOG
Introduzida em 1985 pela GDA (Gateway Design Automation), a
linguagem Verilog e de domnio publico (desde maio de 1990) e tendo diversas
padronizações pela IEEE, tendo extensões e modificações. Entre eles: Verilog-95
(padrão IEEE 1364-1995), Verilog 2001 (IEEE 1364-2001) e Verilog 2005 (IEEE
1364-2005).
(Os identificadores podem conter qualquer sequência de letras, digitos, do
simbolo '$' e do simbolo '', onde o primeiro caractere deve ser uma letra ou o
smbolo ''.) O Verilog, que e muito semelhante com a linguagem de programação
C, e case sensitive ) Esta linguagem tambem oferece ao projetista os meios para
descrever um sistema digital em varios níveis de abstração, e tambem suporta
ferramentas de projeto para sintese logica. Projetistas de hardware podem
expressar suas ideias com construções comportamentais, deixando os detalhes para
fases posteriores do projeto. Uma representação abstrata pode ser usada para
explorar alternativas arquiteturais atraves de simulações e para detectar restrições
de projeto antes do projeto detalhado.

SYSTEMVERILOG

SystemVerilog e uma extensão do Verilog e foi aceita como um padrão pela


Accellera em 2002. Ele pode ser visto como um sistema voltado a verificação e
modelagem de sistemas. Para verificação ele oferece recursos para geração de
bacadas de teste, (testbenches) do codigo. E para do aspecto de design ele funciona
como uma versão melhorada do Verilog, promovendo comunicação de interfaces
e tipos de dados mais ricos, similar ao C. Alem disso, o SystemVerilog, soube
aproveitar as vantagens e recursos presentes tanto no VHDL quanto no Verilog.
Elementos que são presentes em uma linguagem e não na outra foram adicionados
ao SystemVerilog, por exemplo, eventos nomeados, hierarquia, processos reativos,
abstração de interfaces, primitivas no nvel de sistema e mecanismos, como,
semaforos e criação dinâmica de processos.

BASEADAS EM LINGUAGEM DE PROGRAMAÇÃO


SYSTEMC
Criado em 1999, foi recebido com muito entusiasmo pela industria e
comunidade acadêmica por ser a primeira linguagem de codigo aberto baseado em
C++. Ainda que sem suporte para orientação a objetos na versão 1.0, a versão 2.0
abordou mais esse quesito. Interfaces e canais, por exemplo, eram muito uteis no
desenvolvimento do mais elevado nvel de abstração e na separação entre
comunicação e comportamento. Muitas empresas utilizaram SystemC para
modelar de uma forma muito e ciente os aspectos dos sistemas.
HDLs padrão continuam a ser usados para modulação de hardware e sintese.
Ser uma ferramenta de simulação livre ainda e o principal motivo para o uso do
SystemC. Uma maioria dos usuario o utiliza para fazer uso da sntese RTL.
Muitas empresas estão interessadas sistemas operacionais e programação
de modo que estas não estão atualmente disponveis em SystemC
2.0. Dado que o SystemC 2.0 e de fato uma "C++ library"ela se presta ao
desenvolvimento de testbenches muito so sticadas e ultrapassa largamente lnguas
especializadas, tais como 'e' ou 'verna'que são destinadas para verificação e
desenvolvimento testbench.
JHDL
JHDL, como a intuição nos indica, e proveniente do Java.E uma linguagem
orientada a objetos e utiliza, exclusivamente, as construções orientadas a objeto do
Java para modulação de hardware no nivel RTL. Alem de simulação e
implementação de FPGAs.
SpecC
SpecC e uma linguagem baseada no ANSI-C, um padrão da linguagem C,
suportando descrições comportamentais e estruturais baseadas em hierarquia,
concorrência, maquinas de estado e temporizaçao.A comunicação por canais e
abstração de comunicações do SystemC foram inspiradas pelo SpecC.
MATLAB e Simulink
MATLAB e Simulink podem ser usados em parceria com a a Xilinks ou
Altera para desenvolver aplicacoes em FPGAs. Esta tradução de MATLAB pode
ocorrer atraves do HDL Codes, disponibilizado pela Mathworks. Portanto, o
MATLAB insere uma nova maneira de descrever os sistemas em um alto nvel de
abstração que e muito familiar para muitos engenheiros devido a difusão do
MATLAB no mercado.
FUNDAMENTAÇÃO PRÁTICA

VHDL não é uma linguagem de programação, e sim uma linguagem que


descreve um circuito integrado.
Vir de linguagens de programação, em que geralmente seus comandos são
sequenciais, pode dificultar a imersão em VHDL.
Somente em situações específicas partes do código em VHDL irão se
comportar sequencialmente.Um exemplo mas que facilitará a compreensão de
quem não possui conhecimento em micro controladores é o seguinte:
Uma televisão possui as conexões abaixo

E dentro da televisão tem uma placa que recebe os dados de entradas e


também controla os dados que irão sair, além de controlar os sinais internos, como:
monitor, caixas de som. O objetivo do VHDL é descrever o circuito que fará o
controle disso.

Em suma, a entidade segue a seguinte sintaxe:


entity nome_da_entidade is
Port(entrada: in tipo;
saida: out tipo);
end nome_da_entidade;
Detalhe, quando se adiciona as portas, a ultima porta não tem ‘;’, e é
importante ressaltar que vhdl não é Case-sensitive
Os tipos de portas são portas de entrada(in), saída(out), entrada|saida (inout)
e o buffer(uma porta em que a saída também será usada pela placa). Os três
principais tipos de tipos de dados sãos os inteiros(integer), binários(bit) e os vetores
(bit_vector)
Após a definição da entidade temos a arquitetura, que no exemplo
da tv seria o circuito interno, que utiliza as entradas e gera dados
para as saídas.

Em suma, a arquitetura segue a seguinte sintaxe


architecture nome_da_arquitetura ofentidade_da_arquitetura is
Begin
end nome_da_arquitetura;
As operações e conexões do circuito ficarão após o begin da arquitetura.
CONCLUSÃO
Após a elaboração do trabalho Concluímos que, ainda que o avanço na área
de eletrônicos esteja caminhando a passos largos para suas desenvolturas em
software, devemos lembrar que tem uma parte básica física, e não menos
importante. Logo, a importância de criar chips e sistemas físicos com poucos erros
(ou até mesmo nenhum) e tabelas em um curto intervalo de tempo motiva todos a
fazerem uso das HDLs.
E, portanto, de suma importância para o avanço tecnológico rápido que as
linguagens de descrição de hardware sejam bem implementadas, conferindo-lhes
portabilidade e padronização de modo que possam ser executadas por grande parte
dos sistemas.
RECOMENDAÇÕES
REFERÊNCIAS BIBLIOGRAFICA

Autor: Edson T. Midorikawa


Introdução às Linguagens de Descrição de Hardware. PDF (15/11/2022)
Autores: João Vitor Rodrigues, Marcus Vinicius Bunn
Linguagens de Descrição de Hardware: Tipos e Características. PDF
(15/11/2022)
https://medium.com/@jecrs687/introdução-a-linguagem-de-descrição-de-
hardware-vhdl-9cf9f418e73d (15/11/2022)
https://pt.m.wikipedia.org/wiki/Linguagem_de_descri%C3%A7%C3%A3o_de_h
ardware (15/11/2022)

Você também pode gostar