Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
lgica.
Verificao funcional pode ser feita nas primeiras partes do ciclo de projeto.
Projetar com HDLs parecido a um programa de computador comentrios ajudam a debugar
circuitos.
HDLs j so uma realidade para lidar com o incremento da complexidade de circuitos digitais.
A recomendao que nenhum projetista de circuitos digitais pode ignorar o projeto baseado em
HDL.
POPULARIDADE DO VERILOG HDL
O Verilog HDL tem evoludo como uma linguagem de descrio de hardware padro. As
caractersticas so:
Fcil de aprender e usar, parecido com a linguagem C.
Permite vrios nveis de abstrao no mesmo modelo.
Muitas ferramentas de sntese lgica suportam o Verilog.
Todos os vendedores de fabricao fornecem bibliotecas de Verilog.
TENDNCIA EM HDLS
A tendncia mais popular atualmente no projeto em HDL no nvel RTL, devido a que as
ferramentas de sntese lgica podem criar netlist a nvel de portas.
A sntese comportamental est aparecendo e uma vez que esta ferramenta melhore o projetista
ser capaz de projetar diretamente em termos de algoritmos o comportamento do circuito.
As tcnicas de Verificao formal aplicaro tcnicas matemticas formais para verificar a
descrio em Verilog e estabelecer a equivalncia entre RTL e o netlist a nvel de porta.
Para muito altas velocidades e circuitos de tempo crtico parecido com os processadores, o netlist
a nvel de portas fornecido pela ferramenta de sntese lgica no tima. Nestes casos os projetistas
misturam a descrio a nvel de portas dentro da descrio RTL para alcanar timos resultados.
Para essa dificuldade a tendncia que est aparecendo a nvel de sistema uma mistura da
metodologia bottom - up onde os projetistas usam mdulos existentes de Verilog, blocos bsicos
construdos, ou blocos fornecidos pelo vendedor para que rapidamente se faa a simulao do
sistema.
Atualmente se fala bastante do System C para fazer a descrio do hardware. Este bastante
parecido com a linguagem C e parece que ser fortemente utilizado pela academia e a industria.
2
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
Especificao do Projeto
Descrio Comportamental
Snteses Lgica
Leiaute Fsico
Verificao do Leiaute
Implementao
CONCEITOS DE MODELAGEM
HIERRQUICO
Antes de entrar nos detalhes da linguagem Verilog, devemos entender o bsico dos conceitos de
modelagem hierrquico no projeto digital.
O Projetista deve usar uma boa metodologia de projeto para fazer eficiente o projeto baseado em
Verilog. Existem duas metodologias de projeto digital: top-down (figura 1.14) e bottom-up (figura
1.15).
4
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
Contador q0 q1 q2 q3
Ondulante
q q q q
reset
Reset qn q n+1 q
T_FF
1 1 0
1 0 0
q
0 0 1 d
0 1 0 clock D_FF
re se t
Contador Ondulante
5
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
MDULOS
Agora relacionamos os conceitos de modelamento hierrquico ao Verilog onde este fornece o
conceito de um mdulo (module).
Um mdulo um bloco de construo bsico em Verilog, que pode ser um elemento ou uma
coleo de blocos de projeto de baixo nvel. Tipicamente, os elementos so agrupados em mdulos
para fornecer uma funcionalidade comum que usada em muitos lugares do projeto.
Um mdulo fornece a funcionalidade necessria para blocos de maior nvel atravs de sua
interface de porta (entradas e sadas), mas escondendo a implementao interna. Isto permite ao
projetista modificar a parte interna do mdulo sem afetar o resto do projeto.
Em Verilog, um mdulo declarado pela palavra module, e a correspondente palavra
endmodule deve aparecer no final da definio do mdulo.
Cada mdulo deve ter um module_name (nome do mdulo), o qual o identificador do mdulo,
e uma module_terminal_list (lista de terminais do mdulo) , o qual descreve os terminais de entrada
e sada do mdulo.
6
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
Na comunidade de projeto digital, o termo register transfer level (RTL) (Nvel de transferncia
de registros) freqentemente usado para uma descrio Verilog que usa uma combinao de
construo comportamental e dataflow e aceitvel para as ferramentas de sntese lgica.
Normalmente, o maior nvel de abstrao o mais flexvel e independente da tecnologia.
INSTNCIAS (INSTANCES)
Um mdulo fornece um modelo (template) desde o qual se podem criar objetos. Quando um
mdulo chamado, Verilog cria um nico objeto desde o modelo. Cada objeto tem seu prprio
nome, variveis, parmetros e interfaces I/O.
O processo de criar objetos desde o mdulo modelo chamado de instanciao, e os objetos
so chamados de instncias.
//Definir o mdulo de nvel superior chamado contador ondulante. Este instancia 4 T_FFs.
//Interconexes so mostradas na figura 1.16.
module ripple_carry_counter (q, clk, reset);
output [3:0] q; //sinais I/O e vetor de declaracoes
input clk, reset; //sinais de I/O
//Quatro instncias do mdulo T_FF so criados. Cada um tem um nico nome. A cada
//instncia passada um conjunto de sinais. Notar que cada instncia uma cpia do
//mdulo T_FF.
T_FF tff0 (q [0], clk, reset);
T_FF tff1 (q [1], q [0], reset);
T_FF tff2 (q [2], q [1], reset);
T_FF tff3 (q [3], q [2], reset);
endmodule
7
Sistemas Digitais Prof. Antonio Ramirez Hidalgo
//Definimos o mdulo T_FF. Este instncia um D_FF. Assumimos que o mdulo D_FF
// definido em algum outro lugar do projeto.
module T_FF (q, clk, reset);
output q;
input clk, reset;
wire d;
// Instnciar D_FF , chamar este de dff0.
D_FF dff0 (q, d, clk , reset);
// A porta not uma primitiva do Verilog.
not n1(d, q);
endmodule
Em Verilog ilegal aninhar mdulos. Uma definio de mdulo no pode conter outra
definio de mdulo entre module e endmodule.
Exerccios
1. Uma chave de interconexo (interconnect switch - IS) contm os seguintes componentes,
uma memria compartilhada (MEM), um controlador de sistema (SC) e um crossbar de
dados (Xbar). Definir os mdulos MEM, SC e Xbar, usando as palavras module/endmodule.
No precisa definir a parte interna. Assumir que os mdulos no tem lista de terminais.
Definir o mdulo IS, usando as palavras module/endmodule. Instnciar os mdulos MEM,
SC e Xbar e chamar as instncias de mem1, sc1, e xbar1, respectivamente. No precisa
definir a parte interna. Assumir que o mdulo IS no tem lista de terminais.
2. Um somador de 4 bits (4-bit ripple carry adder - Ripple_Add) contm quatro somadores
completos (FA) de 1 bit. Definir o mdulo FA. No precisa definir a parte interna ou a lista
de terminais. Definir o mdulo Ripple_Add . No precisa definir a parte interna ou a lista de
terminais. Instnciar quatro somadores completos do tipo FA no mdulo Ripple_Add e
chamar eles de fa0, fa1, fa2 e fa3.