• Nenhum resultado encontrado

Projecto de Sistemas Digitais

N/A
N/A
Protected

Academic year: 2021

Share "Projecto de Sistemas Digitais"

Copied!
20
0
0

Texto

(1)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 2

Projecto de Sistemas Digitais

• Tecnologias digitais cada vez mais importantes

– vastas áreas de aplicação

– evolução tecnológica muito rápida (lei de Moore)

• tamanho, consumo, rapidez

– custo continua a descer…

• Um SD incorporado num equipamento deve ser…

(numa perspectiva industrial)

– bom: satisfazer a funcionalidade com fidelidade e fiabilidade

– barato: custo mais baixo possível, sem comprometer a qualidade

• Projectar um SD

– “if it wasn’t hard they wouldn’t call it hardware”,

J.F. Wakerly

– ferramentas computacionais ajudam “the little gray cells”

mas não substituem

Fluxo de projecto (típico)

Ideia

sistema

(abstracto)

circuito

(RTL – lógico)

mapeamento

tecnológico

validação

validação

fabrico

teste

/dev/null DQ D Q um controlador de intensidade luminoas para ligar e desligar luzes de casa sempre que anguem entra ou sai da casota do cao que se chama bobi e tem tambem um gato que se chama tareco1 - receptor

2 - um cpu para calcular a luz 3 - interface de potência interface processador memória

validação

IC

(2)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 4

Concepção

• Ideia

– clarificar e estruturar a ideia, definir especificações

• um produto é mais do que um sistema digital

• geralmente um projecto é iniciado com especificações incompletas

• Exequibilidade

– boas ideias podem não ser praticáveis

• custo ou risco elevado

• tecnologia não acessível, não dominada ou não adequada • tempo de desenvolvimento demasiado longo

• Implementação

– Parte do projecto pode ser independente da tecnologia alvo...

– ...mas deve ser decidida o mais cedo possível no ciclo de projecto

Aspectos tecnológicos

• Particionamento arquitectural

– um sistema pode não “caber” num único componente

• tamanho, número de pinos, tecnologia de fabrico

• divisão da funcionalidade (por exemplo analógico vs. digital) • selecção dos componentes e da tecnologia de montagem

memória interface co-proc. CPU I/O proc. funcionalidade rapidez disponibilidade número de pinos encapsulamento fabricante(s)

?

PCB COB MCM wire-wrap

ASIC

RAM

µP

LSI

(3)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 6

Selecção da tecnologia

• Critérios a ter em conta

– acessibilidade à tecnologia (projecto e fabrico)

– custo (protótipagem, produção)

– fiabilidade

– testabilidade

– rapidez

– evolução

– tamanho

– consumo

– dissipação térmica

– compatibilidade electromagnética

– resistência mecânica

Ferramentas computacionais

• CAD/CAE

(Computer Aided Design/Computer Aided Engineering)

– fundamentais para projectar em tempo útil circuitos complexos – não competem em qualidade com um projectista experiente (geralmente)

• Ferramentas

CAD/CAE

– trabalham com representações electrónicas de SDs (modelos) – alguns tipos de ferramentas...

• captura esquemática (mais do que desenhar o circuito lógico...) • síntese (layout, lógica, RTL, alto nível)

• mapeamento tecnológico

• desenho físico (layout), verificação de regras geométricas • simulação lógica (verificação funcional)

• análise temporal • análise eléctrica

• modelação e simulação de faltas • geração de vectores de teste • análise térmica

(4)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 8

Modelos de circuitos digitais

• Representações electrónica de SDs

– usadas e transformadas por ferramentas CAD/CAE

• Um modelo é uma aproximação!

– que pode ser boa e pode ser má…

– rigor

detalhe

aproximação da tecnologia

– a simulação de um modelo nunca é igual ao seu funcionamento real

• Modelos

(mais frequentemente)

tratados por humanos

– modelos estruturais (esquemáticos)

• detalham a estrutura do circuito, interligando “componentes” entre si • nível do sistema, RTL, lógico ou dispositivo

– modelos comportamentais (HDLs, state charts, tabelas, BDDs)

• descrevem o comportamento do sistema • não contêm informação estrutural

Y- chart

comportamental

estrutural

físico

placas, MCMs módulos, chips células layout de transistores transistores portas lógicas registos, muxs processadores, memórias fluxogramas, algoritmos transferências entre registos expressões booleanas funções de transistores dispositivo lógico RTL siste ma

níveis de abstracção

(5)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 10

Especificação de um SD

• Tradicionalmente…

– captura esquemática (estrutural)

• interligação de portas lógicas, flip-flops, componentes RTL,… • bibliotecas de componentes específicas de uma tecnologia • anotação do desenho com atributos

– nomes, parâmetros de componentes, restrições para implementação

• captura a estrutura (física) do circuito

• transformado de forma optimizada para uma tecnologia alvo

– tabelas de verdade, expressões booleanas (comportamental)

• conveniente para blocos de lógica combinacional ou FSMs

– minimização lógica – codificação de estados

• representação textual, tradução automática para um circuito lógico • independente do meio de implementação

Especificação de um SD

• Actualmente...

– projecto a níveis de abstracção mais elevados

• representações comportamentais ao nível RTL e algorítmico • linguagens normalizadas para descrição de hardware

– suportadas por ferramentas de síntese automática – combinam modelação estrutural com comportamental

– permitem ao projectista abstrair-se da tecnologia alvo (não totalmente!) – portabilidade e facilidade de manutenção

• redução do ciclo de projecto

– permite explorar diversas alternativas com diferentes compromissos

– comparando com a programação de computadores...

}

código máquina assembly C, Pascal layout portas lógicas HDLs nível de abstracção crescente ainda se justifica ?

(6)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 12

Projecto estruturado

• Hierarquia e modularidade

– conceitos semelhantes aos empregues em programação estruturada

– objectivos:

• estruturação do projecto

• permitir a reutilização de módulos • facilitar a verificação do projecto

• simplificar a produção da documentação (geralmente esquecida!)

– “quanta” hierarquia ?

• nem 1 nem 1000 ! como se faz em programação ? porquê ? • critérios principais:

– funcionalidade e granuralidade (complexidade dos módulos)

• uma diferença importante da hierarquia em software:

– não significa reduzir a complexidade do hardware

– geralmente “desaparece” durante o percurso até ao nível lógico ou dispositivo

Metodologias de projecto

• Abordagens típicas

– bottom-up (capture-and-simulation)

• hierarquia criada de baixo para cima (lógico

RTL

sistema) • ciclo de projecto:

– desenhar os circuitos mais simples (ou usá-los se existirem) – validar com simulação esses circuitos

– usá-los na construção de outros circuitos mais complexos

– top-down (describe-and-synthesize)

• hierarquia criada de cima para baixo (sistema

RTL

lógico) • ciclo de projecto

– especificar o sistema de forma comportamental

– sintetizar e avaliar as soluções resultantes de diferentes restrições

– na prática, top-down e bottom-up… tocam-se!

manual

(7)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 14

Validação do projecto

• Simulação funcional

– verificação funcional da especificação

• realizada a diferentes níveis de abstracção (sistema ou RTL) • verificar que é satisfeita a funcionalidade desejada

• se não funciona? detecção e depuração de erros (debug) • problemas:

– como definir os vectores de simulação ? – como se sabe que o resultado é correcto ? – quão exaustivo é o teste ?

– fontes de erro mais comuns

• especificações incompletas, ligações erradas ou nomes trocados • uso incorrecto de ferramentas de síntese automática

• má organização das várias versões de um projecto (save before quit? oops!)

• é bom lembrar: os computadores não erram, os humanos sim… • e que: são humanos que criam as ferramentas de software!

Validação do projecto

• Análise temporal

– circuitos lógicos introduzem atrasos

• a simulação dá resultados correctos considerando os atrasos ? • qual o desempenho ?

• o que limita o desempenho ?

– modelos de atrasos

• específicos de uma tecnologia

• dependem do circuito em que um componente se insere (fan-out) • quanto mais completo é o modelo, mais complexa é a simulação

– tpLH, tpHL, tr, tf(mínimos, típicos e máximos)

• interligações também introduzem atrasos

– função do comprimento e da forma

(8)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 16

Teste

• Teste do sistema fabricado

– testar para quê?

• minimizar (→ 0%) o número de sistemas defeituosos vendidos • detectar e diagnosticar defeitos de fabrico

• melhorar o sistema ou o processo produtivo

– como testar ?

• construir um modelo de faltas do circuito

• criar vectores de simulação que as consigam detectar

– saídas diferentes na presença ou ausência da falta

– ferramentas para ATPG - Automatic Test Pattern Generation

– teste é uma fatia importante do custo de produção

• projecto orientado para a testabilidade (DFT - Design for Testability) • auto-teste (BIST - Built-in Self Test)

• teste de PCB (boundary scan test, norma IEEE 1149.1)

Linguagens de descrição de hardware

• Modelação de um circuito (digital)

– descrições comportamentais permitem nível elevado de abstracção

– metodologia de projecto top-down: ferramentas de síntese automática

– representação textual: portabilidade, edição e documentação

– a favor do esquemático: “uma figura diz mais do que mil palavras”

• um esquema captura melhor a ideia estrutural

• ferramentas gráficas front-end produzem descrições em HDLs

– editores de esquemático: netlist em HDL (estrutural, gate-level ou RTL) – editores de diagramas de estados: descrições comportamentais sintetizáveis

– duas perspectivas na construção de um modelo

• descrever o seu funcionamento apenas para simulação

• construir uma descrição sintetizável ($monitor(…)não é sintetizável!)

– um modelo sintetizável deve descrever “bem” o seu funcionamento – subsets das linguagens e regras de modelação dependem das ferramentas

(9)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 18

HDLs

- exemplos

– VHDL - VHSIC Hardware Description Language (IEEE 1076 ‘93)

• desenvolvida para simulação, usada para síntese, fortemente tipada

– Verilog (IEEE 1364 ‘95)

• mais simples do que VHDL, poucos tipos de dados, próxima de C

– EDIF - Electronic Data Interchange Format (IEEE

• standard para representação de circuitos electrónicos ao nível estrutural

– ABEL - Advanced Boolean Equation Language (TM

Data I/O)

• programação de PLDs, equações lógicas, descrição de FSMs

– HardwareC (univ. Berkeley)

• derivada da linguagem C, orientada para a representação de hardware

– ISPS - Instruction Set Processor Specification

• descrição do conjunto de instruções de processadores

– Silage (IMEC)

• aplicações de DSP, pouco controlo, data-flow

– XNF - Xilinx Netlist Format (TM XILINX)

• proprietária da XILINX para descrever netlists, estrutural, permite hierarquia

Verilog vs. VHDL

- história

• VHDL

– ‘80: por necessidade de normalização, documentação e portabilidade, e DOD funda

projecto para criar linguagem de “programação” para descrever hardware

– ‘83: início do desenvolvimento do VHDL (IBM, Texas, Intermetrics)

‘87: o DOD impõe que todos os SDs fossem descritos em VHDL; standard IEEE 1076;

os sistemas electrónicos do F-22 foram um dos primeiros projectos em VHDL

‘93: VHDL é revisto e adoptado como o standard IEEE 1076 ’93

‘96: adopção generalizada por ferramentas EDA; package para ferramentas de síntese

(IEEE 1076.3); modelação de bibliotecas para ASIC e FPGA (IEEE 1076.4)

• Verilog

– ‘81: Gateway Design Automation, Philip Moorby cria GenRad HDL e o simulador HILO

– ‘83: Gateway lançou a linguagem Verilog HDL e um simulador de Verilog

– ‘85: linguagem e simulador são enriquecidos (Verilog-XL)

– ‘87: Synopsys adopta Verilog como formato de entrada para ferramentas de síntese

– ‘89/’90: Cadence compra Gateway e separa o simulador da linguagem; a linguagem é

libertada para o domínio público; é criado o OVI (Open Verilog International)

– ‘93: neste ano, de todos os circuitos submetidos a fundições de silício, 85% foram

desenvolvidos e submetidos em Verilog.

(10)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 20

Verilog e VHDL

- comparação

• capacidade de modelação

– semelhante para modelos estruturais

– VHDL oferece melhor suporte para modelos abstractos e modelos de atrasos

– Verilog tem melhores construções para modelar ao nível lógico e primitivas de

bibliotecas de ASICs e FPGAs

• tipos de dados

– VHDL suporta tipos de dados abstractos criados pelo utilizador

– em Verilog os tipos são muito simples e mais próximos do hw (wire e reg)

• aprendizagem

– VHDL é fortemente tipada, menos intuitiva, mais verbosa (baseada em ADA)

– Verilog é mais simples e menos verbosa (baseada em C)

• parameterização

– VHDL tem construções para parametrizar número de bits, replicar estruturas e

configurar modelos

– Verilog suporta apenas modelos com parâmetros, instanciação com redefinição de

parâmetros

VHDL-Verilog

(comportamental)

library IEEE; use IEEE.STD_Logic_1164.all; entity MUX_2_1 is port(S1,A1,B1,S2,A2,B2,S3,A3,B3:in std_logic; Y1,Y2,Y3:out std_logic);

end entity MUX_2_1;

architecture COND_DATA_FLOW of MUX_2_1 is begin Y1 <= A1 when S1=‘1’ else B1; TWO_2_1_MUXES: process(S2,A2,B2,S3,A3,B3) begin Y2<=B2; if (S2=‘1’) then Y2<=A2; endif; if (S3=‘1’) then Y3<=A3; else Y3<=B3; endif;

end process TWO_2_1_MUXES end architecture COND_DATA_FLOW;

module MUX_2_1(S1,A1,B1,Y1, S2,A2,B2,Y2, S3,A3,B3,Y3); input S1,A1,B1,S2,A2,B2,S3,A3,B3; output Y1,Y2,Y3; reg Y2,Y3; assign Y1=S1?A1:B1; always @(S2 or A2 or B2 or S3 or A3 or B3) begin Y2=B2; if (S2) Y2=A2; if (S3) Y3=A3; else Y3=B3; end endmodule VHDL Verilog

(11)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 22

VHDL-Verilog

(estrutural)

library IEEE; use IEEE.STD_Logic_1164.all; entity HALF_ADDER is port(a,b:in std_logic; sum,carry:out std_logic); end entity HALF_ADDER;

architecture STRUCT of HALF_ADDER is

component xor2

port(a,b:in std_logic; c:out std_logic); end component;

component and2

port(a,b:in std_logic; c:out std_logic); end component;

begin

X1: xor2 port map(a=>a,b=>b,c=>sum); A1: and2 port map(a=>a,b=>b,c=>carry); end STRUCT; module HALF_ADDER(a,b,sum,carry); input a,b; output sum,carry; xor X1(sum,a,b); and A1(carry,a,b); endmodule VHDL Verilog

Modelação em HDL

• Modelo sintetizável vs. modelo não sintetizável

– ferramentas de síntese automática inferem a estrutura de um circuito

• o modelo (comportamental ou estrutural) vai ser hardware • regras, restrições e recomendações das ferramentas de síntese

– como é interpretado e traduzida a descrição em HDL – simulação e implementação devem concordar

– construções específicas da tecnologia de implementação

– modelos não sintetizáveis

• não são traduzidos para hardware

• definem estímulos para simulação, e permitem a monitorização de sinais • modelam o comportamento de outros circuitos para simulação do sistema

– circuito de relógio – memórias ou CPUs

(12)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 24

Modelação em HDLs

recomendações gerais

• Antes de iniciar a construção do modelo

– definir a arquitectura e estruturação do projecto (particionamento)

– ferramentas de síntese não processam bem circuitos infinitamente

grandes!

• Escrever o código de modo a reflectir a arquitectura

– estruturado em módulos e funções, ter em mente a reusabilidade

– favorecer a legibilidade: nomes, comentários, parêntesis, parâmetros

• Garantir a precisão da simulação

– deve traduzir fielmente o comportamento do hardware gerado

– modelar correctamente o comportamento das partes não sintetizáveis

Verilog HDL

(Hardware Description Language)

• Linguagem de descrição de hardware (digital)

– modelação de circuitos lógicos a diferentes níveis de abstracção

– criada para modelação e simulação de circuitos digitais

– actualmente usada como fonte para ferramentas de síntese

– modelos estruturais e modelos comportamentais

– não é uma linguagem de programação!

• Unidade básica de um modelo em Verilog:

– module: um sub-circuito definido por:

• interface (entradas e saídas)

• implementação (modelo do circuito digital)

preset clear q qbar q qbar preset clear

(13)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 26

Verilog - introdução

• Modelo estrutural de uma latch com portas NAND:

module ffnand(preset,clear,q,qbar); input preset, clear;

output q, qbar;

nand #1 nand1(q, qbar, preset), nand2(qbar, q, clear); endmodule interface implementação q qbar preset clear instância atraso

• Circuito:

saída entradas primitiva

Verilog - introdução

• Simulação do módulo ffnand

`timescale 1ns/100ps module top_ffnand; wire q, qb; reg pre, clr; ffnand ffnand1(pre,clr,q,qb); initial begin $monitor($time,

“ preset=%b, clear=%b, q=%b, qbar=%b”, pre, clr, q, qb); #10 pre=0; clr=1; #10 pre=1; #10 clr=0; #10 clr=1; #10 $finish; end endmodule fios estímulos de simulação monitor de sinais instância registos espera 10ns

(14)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 28

Verilog - introdução

• Modelo completo para simulação (testbench)

– reunião dos módulos ffnand e top_ffnand

• Resultados da simulação

– produzidos pela task $monitor(...)

• sempre que algum dos sinais declarados muda de estado

– análise das formas de onda de sinais relevantes

0 preset=x clear=x q=x qbar=x 10 preset=0 clear=1 q=x qbar=x 11 preset=0 clear=1 q=1 qbar=x 12 preset=0 clear=1 q=1 qbar=0 20 preset=1 clear=1 q=1 qbar=0 30 preset=1 clear=0 q=1 qbar=0 31 preset=1 clear=0 q=1 qbar=1 32 preset=1 clear=0 q=0 qbar=1 40 preset=1 clear=1 q=0 qbar=1

valor lógico desconhecido

Verilog - introdução

• Um contador de 4 bits (counter)

– estruturação em 3 módulos: c16, Dff e clockgen

– clockgen

produz o sinal de relógio

– contador c16 usa instâncias do módulo Dff (flip-flops tipo D)

– hierarquia do modelo:

clockgen c16

Dff Dff Dff Dff

(15)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 30

Verilog - introdução

• Modelo do contador c16

module c16(value, clock, fifteen, ten); input clock;

output [3:0] value; output fifteen, ten;

Dff D1(value[0], clock, ~value[0]),

D2(value[1], clock, value[1] ^ value[0]), D3(value[2], clock, value[2] ^ &value[1:0]), D4(value[3], clock, value[3] ^ &value[2:0]); assign fifteen = &value;

assign ten = value[3] & ~value[2] & value[1] & ~value[0]; endmodule

vector de bits

operadores

saída ten vale 1 quando value = 1010

saídas de 1 bit

Verilog - introdução

• Modelo (comportamental) do Dff

module Dff(q, clock, d); input clock, d; output q; reg q; initial q = 0; always @ (negedge clock) #10 q = d; endmodule

qé reg porque “segura” um valor no início da simulação (t=0) sempre que clock

(16)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 32

Verilog - introdução

• Gerador de relógio (clockgen)

module clockgen(clock); output clock; reg clock; initial #5 clock = 1; always #50 clock = ~clock; endmodule para sempre... sinal clock gerado:

t=05 50 50

unidades de tempo reais: ‘timescale 1ns/100ps

unidade de atraso arredondamento do cálculo

Verilog - introdução

• O circuito completo (módulo counter)

module counter; wire [3:0] count;

wire clock, ten, fifteen;

c16 contador( count, clock, fifteen, ten); clockgen clock( clock );

initial

$monitor($time, “ Clk=%b, Count=%d, is_10=%b, is_15=%b”, clock, count, ten, fifteen);

(17)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 34

Modelação com Verilog

• Modelos estruturais

– instanciação de módulos ou primitivas

• primitivas lógicas: and, or, nand, nor, xor, xnor not, buf

– ligação de sinais por posição ou nome

module xpto(a,b,c); input a,b; output c; ... endmodule module top; wire x1,x2; reg k1,k2; xpto xpto_1(k1,k2,x1), xpto_2(.c(x2),.a(x1),.b(k2)); endmodule xpto_1 xpto_2 a b c a b c k1 k2 x1 x2 primeiro sinal é saída, restantes são entradas

primeiro sinal é entrada, restantes são saídas

Verilog

- modelos comportamentais

• Entidade básica

– processo: um componente que realiza uma acção

• síncrono com um relógio, assíncrono ou combinacional

• activado por eventos abstractos (por exemplo dump da memória)

• Um sistema

– vários processos que operam concorrentemente

– comunicam entre si através dos sinais que os interligam

• Construções:

always statement; always trigger_event statement; @(a or b or c) @(posedge clock) @(modulename.event) wait(rqst == 1) initial statement;

simula statement uma vez quando o simulador inicia

(18)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 36

Verilog

- modelos comportamentais

• Instruções condicionais

(dentro de always ou initial)

if (condition) statement1 else statement2 case (expression) expr1: statement1; expr2: statement2; default: statement3; endcase; (expression)?(true):(false)

if (a[2:0]==3’b010 && cy) ...

casez casex

(zé don’t care) (ze x são don’t cares)

case (ir[7:4]) 4’b0001: ... 4’b0010: ... default: ... endcase; casex (ir[7:4]) 4’bxx01: ... 4’bxx10: ... default: ... endcase; acc=(ir[7:0]==4’b0011) ? 0 : 255; if (a[2:0]===3’b01z && cy) ...

Verilog

- modelos comportamentais

• Ciclos

for(start;end_expr;update) statement; always begin while(start); ... end forever statement; for(i=0;i<8;i=i+1) ... repeat(loop_count) statement; repeat(10) begin a[i]=a[i+1]; i=i+1; end; forever a = b; while(i<8) ... while(condition) statement;

(19)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 38

Verilog

- modelos comportamentais

task

– equivalente a um procedimento

– pode chamar-se a si próprio

usando os mesmos registos locais

function

– equivalente a uma função

– retorna um valor

– não pode conter instruções

com temporizações ou eventos

• Estruturação em “subrotinas” (em testbenches)

multiply(a,b,acc); ... task multiply input [15:0] a, b; output [31:0] prod; begin ... end endtask if (testDF(d1,d2)==2’b00) ... function [1:0] testDF; input [1:0] Duab, Dvab;

begin ...

testDF=2’b01; end

endfunction

Verilog

– procedimental vs. non-blocking

• Atribuição procedimental

• Atribuição non-blocking

begin #10 a1=in0+in1-acc; y1=a1+b1>>3; #20 z1=y1+a1>>4; end begin #10 a1<=in0+in1-acc; y1<=a1+b1>>3; #20 z1<=y1+a1>>4; end avaliadas em sequência a1 y1 z1 10 20 20 avaliadas em paralelo a1 y1 z1 10

(20)

FEUP/DEEC, Projecto de Sistemas Digitais, 2003/2004

José Carlos Alves 40

Verilog

- modelos comportamentais

• Atribuição contínua

– modela um bloco de lógica combinacional

– modelação de atrasos

assign #delay one_wire = expression, other_wire = expression; # delay #(d1,d2,d3) #(d1m:d1t:d1M, d2m:d2t:d2M, d3m:d3t:d3M) delay: atraso d1:atraso de 0 - 1 d2:atraso de 1 - 0

d3:atraso para HiZ

mínimo típico máximo assign #5

sum= a^b^ci, cout = a & b |

a & ci | b & ci; wire #delay one_wire = expression,

other_wire = expression; wire [7:0] #10 sum = a + b;

Verilog

- modelos comportamentais

• Módulos com parâmetros

• Tasks do sistema

– $display(); imprime quando é invocado

– $monitor(); só um activo no modelo

– $time; tempo de simulação

– $finish; termina a simulação

– $stop; interrompe a simulação

module my_multiply(...); parameter size=16, delay=5; ...

endmodule

my_multiply #(8,2) mult1(...);

valores por omissão

valores atribuídos à instânciamult1

Referências

Documentos relacionados

Aiming to identify and understand the artifacts used to facilitate the communication between designers and developers in an AUCD approach we carried out a netnographic study in

O estudo objetivou apresentar as características do Bloco K do Sped fiscal visando analisar se as empresas obrigadas a entrega da Escrituração Fiscal Digital (EFD) - ICMS-IPI

Por fim, este artigo ousa afirmar, com base nestes resultados, que as empresas da área de TI, de pequeno e médio porte e que possuem projetos em parceria com o parque e a

No experimento 2, no qual foram introduzidos componentes que podem ser utilizados no manejo de solos (serapilheira e EM), a ausência de diferenças entre tratamentos sobre

Após todos os levantamentos e análises, conclui-se que a empresa necessita criar uma gestão de custos como ferramenta para auxiliá-la na formação dos seus preços de

[r]

Mais especificamente, deseja-se responder como essas proporções poderiam ser ajustadas para minimizar os custos totais a partir de um maior equilíbrio entre os níveis de estoque

A Pró-Reitoria de Pesquisa e o Comitê Institucional do Programa de Iniciação Científica e de Iniciação em Desenvolvimento Tecnológico e Inovação da Universidade de São Paulo,