Documente Academic
Documente Profesional
Documente Cultură
Sumrio
Design no fluxo de projeto de Circuitos Integrados Evoluo das tcnicas de projeto Projeto Particionado Linguagens de Descrio de Hardware Verilog
Nveis de Descrio (Comportamental, Portas, RTL) Modelagem Comportamental (assign e always) Blocking x non-blocking Circuitos Combinacionais Circuitos Seqenciais e Maquinas de Estado
2
Especificao
RTL
Verificao Funcional
Portas Lgicas
Sntese Lgica Floorplaning
Portas no layout
Place, Route, outros
GDS II (Layout)
Verificao Formal
Verificao Fsica
4
Modificada facilmente. A arquitetura no definida no cdigo, apenas na sntese. Pode ser simulada com simuladores de HDLs. Codifica-se geralmente a funo do circuito.
Projeto Particionado
Para lidar com a alta complexidade, o projeto de Cis particionado em etapas segundo o fluxo de projeto. Outra tcnica utilizada o projeto hierrquico. O sistema particionado em unidades, que so divididas em blocos funcionais, que contm clulas, que so formadas por transistores. Cada nvel da hierarquia chamado de nvel de abstrao.
10
brazil_ip
8
input [7:0] entrada1, entrada2; output [7:0] saida; // comentario /* Este cdigo no faz nada, uma caixa vazia */ endmodule
12
module brazil_ip (entrada1, entrada2, saida); input [7:0] entrada1, entrada2; output [7:0] saida; wire [7:0] a, b; /* Este codigo ainda no faz nada, mas tem duas caixas vazias dentro */ //instanciacao dos modulos internos int1 X1 (.x(entrada1), .y(entrada2), .w(a), .z(b)); int2 X2 (.j(a), .k(b), .out(saida)); endmodule
x y int1
w j z k int2 out
endmodule
15
module sum (j, k, out); input [7:0] j, k, l; output [7:0] out; assign out = j + k; endmodule
Construes no suportadas por sintetizadores: Delays Wait Initial entre outros; Construes suportadas para sntese: Captulo 20 do Guia de referncia da linguagem.
17
Duas formas de descrever: Continuous Assignment (assign). Blocos always. assign descreve apenas lgica combinacional. always descreve tanto lgica combinacional quanto seqencial.
18
module mux2 (input [3:0] d0, d1, input s, output [3:0] y); assign y = s ? d1 : d0 ; //mux 2 entradas endmodule
20
21
22
24
25
26
As sadas so atualizadas quando qualquer das entradas mudam de valor. As sadas dependem somente das entradas. No h elementos de memria. Pode ser descrito usando assign ou always blocks; Ex: mux, ALU, codificadores, decod ...
27
Obs1: Nesse caso o blocking assignment pode ser usado. Obs 2: o begin e end do always pode ser dispensado. Obs 3: Com assign pode-se fazer o mesmo.
29
Obs1: Nesse caso o blocking assignment pode ser usado. Obs 2: Com assign pode-se fazer o mesmo.
30
32
34