design com verilog(2)

Upload: leonardo-faustino

Post on 08-Jul-2015

288 views

Category:

Documents


0 download

TRANSCRIPT

Design Digital com VerilogCampina Grande, 16 de maro de 2010

Curso Brazil-IP Design Digital com Verilog

SumrioDesign no fluxo de projeto de Circuitos Integrados Evoluo das tcnicas de projeto Projeto Particionado Linguagens de Descrio de Hardware VerilogNveis de Descrio (Comportamental, Portas, RTL) Modelagem Comportamental (assign e always) Blocking x non-blocking Circuitos Combinacionais Circuitos Seqenciais e Maquinas de Estado2

Curso Brazil-IP Design Digital com Verilog

Design no Fluxo de Projeto de Circuitos IntegradosDesign, implementao e codificao so sinnimos no fluxo de projeto. A equipe de codificao responsvel por, a partir de uma especificao e arquiteturas definidas, transformar em um cdigo de uma linguagem de descrio de harware que, aps sintetizado, se transforma em um circuito que realiza a funo desejada, seja programado em um FPGA, ou transformado em um circuito integrado (CI). O codificador tem que dominar a linguagem de hardware e utiliz-la da melhor forma possvel para traduzir o que est na especificao para um cdigo que seja sintetizvel e realize todas as funes desejadas.

3

Curso Brazil-IP Design Digital com Verilog

Design no Fluxo de Projeto de Circuitos IntegradosMicroarquiteturaArquiteto de Sistemas Projetista HDL

Especificao

RTL

Verificao Funcional

Portas LgicasSntese Lgica Floorplaning

Portas no layoutPlace, Route, outros

GDS II (Layout)

Verificao Formal

Verificao Fsica4

Curso Brazil-IP Design Digital com Verilog

Evoluo das tcnicas de projeto - ComplexidadeN de dispositivos 109 LSI 105 MSI Small Scale IC 10 Vlvula Transistor 10 VLSI

1 1940 1960 1970 1980 1990 Hoje 5

Curso Brazil-IP Design Digital com Verilog

Evoluo das tcnicas de projetoAntes das Linguagens de descrio de hardware (at meados dos anos 80): Desenho feito a mo, transistor por transistor, fio por fio. Uma mudana ou erro de projeto implicava em um retrabalho imenso. Simulaes SPICE eram necessrias.

6

Curso Brazil-IP Design Digital com Verilog

Evoluo das tcnicas de projetoAps as Linguagens de descrio de hardware (a primeira surgiu em 81):// Simple 32-bit adder module adder32 (a, b, sum); input [31:0] a,b; output [31:0] sum; assign sum = a + b; endmodule

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.

7

Curso Brazil-IP Design Digital com Verilog

Projeto ParticionadoPara 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.

8

Curso Brazil-IP Design Digital com Verilog

Projeto Particionado Grfico YCada nvel mais alto esconde mais detalhes do projeto. Muitas das etapas de projeto so automatizadas e realizadas por ferramentas. Cabe ao projetista conhecer bem o que a ferramenta faz para atingir os requisitos do projeto.

9

Curso Brazil-IP Design Digital com Verilog

Projeto Particionado Nveis Hierrquicos

10

Curso Brazil-IP Design Digital com Verilog

Linguagens de Descrio de Hardware - HDLMuito mais produtivo projetar o sistema pela sua funcionalidade. possvel projetar em qualquer nvel de abstrao (exceto transistores). Linguagens mais utilizadas: Verilog HDL(1984)Sintaxe mais parecida com C. Mais utilizada no Vale do Silcio.

VHDL VHSIC Hardware Description Language (1981)Criada pelo Departamento de Defesa Americano Mais utilizado na Europa e nos rgo de governo americano.

System Verilog Linguagem para Verificao que abrange o Verilog.11

Curso Brazil-IP Design Digital com Verilog

Verilog Estrutura GeralMdulo: Estrutura Principalmodule brazil_ip (entrada1, entrada2, saida);entrada1 8 entrada2 8 saida

brazil_ip8

input [7:0] entrada1, entrada2; output [7:0] saida; // comentario /* Este cdigo no faz nada, uma caixa vazia */ endmodule

Obs: Verilog case sensitive

12

Curso Brazil-IP Design Digital com Verilog

Verilog Estrutura Geral1 Tipo de Dados: wire Hierarquia: instanciao de mdulos.brazil_ipentrada1 8 entrada2 8 a int1 b int2 8 saida

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

Obs: a descrio dos mdulos internos no prximo slide.13

Curso Brazil-IP Design Digital com Verilog

Verilog Estrutura GeralOperadores: precednciamodule int1 (x, y, w, z); input [7:0] x, y; output [7:0] w, z; /* Este codigo tem uma funcao, que funcao ser essa? */ assign w = ~x & y | x & (x ^ y); assign z = x | y; module int2 (j, k, out); input [7:0] j, k; output [7:0] out; assign out = j + k; endmodule14

x y int1

w j z k int2 out

endmodule

Curso Brazil-IP Design Digital com Verilog

Verilog Estrutura GeralOperadores: precedncia

15

Curso Brazil-IP Design Digital com Verilog

Verilog Nveis de descrioComportamental (Behavioral): Descreve o que o mdulo faz.j k l sum out

Estrutural (Structural): Especifica como o mdulo composto de outros mdulos ou primitivas.module brazil_ip (entrada1, entrada2, saida); input [7:0] entrada1, entrada2; output [7:0] saida; wire [7:0] a, b; int1 X1 (.x(entrada1), .y(entrada2), .w(a), .z(b)); int2 X2 (.j(a), .k(b), .out(saida)); endmodule16

module sum (j, k, out); input [7:0] j, k, l; output [7:0] out; assign out = j + k; endmodule

Curso Brazil-IP Design Digital com Verilog

Verilog Construes no sintetizveis

Construes no suportadas por sintetizadores: Delays Wait Initial entre outros; Construes suportadas para sntese: Captulo 20 do Guia de referncia da linguagem.

17

Curso Brazil-IP Design Digital com Verilog

Verilog Modelagem Comportamental

Duas formas de descrever: Continuous Assignment (assign). Blocos always. assign descreve apenas lgica combinacional. always descreve tanto lgica combinacional quanto seqencial.

18

Curso Brazil-IP Design Digital com Verilog

Verilog Modelagem Comportamental - assignQualquer mudana nos sinais do lado direito causa atualizao imediata no lado esquerdo da igualdade. Descreve apenas circuitos combinacionais. Todos os sinais so do tipo wire.module gates (input [3:0] a, b, output [3:0] y1, y2, y3, y4, y5); /* 5 diferentes portas de 2 entradas e 4 bits */ assign y1 = a & b; //AND assign y2 = a | b; //OR assign y3 = a ^ b; //XOR assign y4 = -( a & b ); //NAND assign y5 = - ( a | b ); //NOR endmodule19

Curso Brazil-IP Design Digital com Verilog

Verilog Modelagem Comportamental - assignOperadores condicionais (select ? TRUE : FALSE).

module mux2 (input [3:0] d0, d1, input s, output [3:0] y); assign y = s ? d1 : d0 ; //mux 2 entradas endmodule

20

Curso Brazil-IP Design Digital com Verilog

Verilog Modelagem Comportamental - assignConstantes.

21

Curso Brazil-IP Design Digital com Verilog

Verilog Modelagem Comportamental - assignOperador de multiplicao (*). Concatenao ({ }).module mul (input [7:0] a, b, output [7:0] upper, lower); assign {upper, lower} = a * b ; endmodule

22

Curso Brazil-IP Design Digital com Verilog

Verilog Modelagem Comportamental - alwaysH atualizao de valores quando os sinais da lista de sensibilidade variam. Pode-se descrever circuitos combinacionais ou sequnciais. 2 tipo de dados: regmodule flop (input clk, input [3:0] d, output reg [3:0] q); always @ (posedge clk) // lista de sensibilidade q