DC-UFRPE/Licenciatura Plena em Computação/Circuitos Digitais/Verilog

Fonte: Wikiversidade

Introdução[editar | editar código-fonte]

Verilog é uma linguagem de descrição de hardware (HDL - Hardware Description Language) utilizada para modelar e simular circuitos digitais. Ela possibilita descrever o comportamento e a estrutura de um circuito digital de maneira eficiente.

A sintaxe do Verilog é semelhante à de outras linguagens de programação, como C, e é composta por módulos, que são blocos básicos para modelar circuitos. Cada módulo é composto por portas de entrada e saída, sinais internos e comportamentos ou estruturas lógicas.

O Verilog tem duas abordagens principais para descrever um circuito digital: o modelo comportamental e o modelo estrutural.

Modelo Comportamental e Estrutural[editar | editar código-fonte]

Em um modelo comportamental, a funcionalidade é normalmente descrita, mas não é necessária uma ideia da estrutura atual do circuito, que é tipicamente a saída do sintetizador. Durante a execução do processo de síntese normal, o usuário irá especificar certos parâmetros de otimização para o sintetizador, que resultarão em uma estrutura particular do circuito; e em outra síntese, se os parâmetros de otimização forem diferentes, a saída do sintetizador pode ser diferente. Modelos comportamentais geralmente são utilizados tanto para síntese quanto para simulação. O código é feito de uma maneira comportamental porque não há nenhuma instanciação de elemento de arquitetura específico no dispositivo no qual o código será implementado, o código é tipicamente genérico. Isto possibilita que uma operação de compilação destine-se a um dispositivo, e outra compilação diferente pode ser destinada a outro dispositivo, sem modificar nenhuma parte do código.

No modelo estrutural, tanto a funcionalidade como a estrutura do circuito são especificados, resultando nos elementos específicos de hardware que serão utilizados na implementação. O elementos de hardware podem ser genéricos como portas lógicas primitivas (como uma porta E ou uma porta OU), ou uma instanciação de outro módulo que representa outra camada de abstração. É normalmente utilizado para síntese e/ou simulação, pode ser genérico, específico de um dispositivo ou ambos, o que significa que posso a descrição da estrutura inteira pode ser direcionada utilizando elementos primitivos da biblioteca que não são específicos de um dispositivo em particular, e ao mesmo tempo também é possível instanciar alguns elementos particulares da arquitetura no código, controlando a implementação do circuito. Em uma designação inicial em um design típico, encontra-se uma combinação dos modelos estruturais e comportamentais, em um modelo Verilog simples.

Material Complementar para estudo[editar | editar código-fonte]