Treinamento em Projeto de Sistemas Digitais -...

87
Treinamento em Projeto de Sistemas Digitais

Transcript of Treinamento em Projeto de Sistemas Digitais -...

Page 1: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Treinamento em Projeto de

Sistemas Digitais

Page 2: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Projetando Sistemas

Digitais com

SystemVerilogEdna Barros

Grupo de Engenharia da Computação

Centro de Informática -UFPE

Treinamento em Projeto de

Sistemas Digitais

Page 3: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Agenda

• RTL Design

• Simulando circuitos digitais

• Descrevendo Testbenches

• Módulos parametrizados

• Especificando Portas

• Modelando Circuitos Combinacionais

• Circuitos sequenciais

• Máquinas de estado

– Modelos esquemático e RTLTreinamento em Projeto de

Sistemas Digitais

Page 4: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Tutorial - Simulação

RTL Design

• Sistemas digitais possuem milhões de

portas lógicas e transistores

– Necessidade de ferramentas EDA (Electronic

Design Automation)

– Especificação em linguagem específica (HDL

– Hardware Description Language)

– Nível de abstração – RTL (Register Transfer

Level)

• Circuitos combinacionais

• Registradores

• Máquinas de estado (controle)

Page 5: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Fluxo de Projeto

Tutorial - Simulação

• Nível de abstração –

RTL (Register

Transfer Level)

• Circuitos

combinacionais

• Registradores

• Máquinas de

estado (controle)

Page 6: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Simulador

Tutorial - Simulação

• Programa que prediz o comportamento de

um sistema físico em função do tempo

– Previsão climática: simulador do

comportamento do clima

– Modelagem em função do tempo de um

sistema digital

Page 7: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Simulador

Tutorial - Simulação

• SystemVerilog

– Linguagem que modela um sistema digital

• Por exemplo: portas lógicas conectadas

• Simulador que executa o comportamento

do sistema modelado em SystemVerilog

– Como os valores das saídas variam em

função dos valores das entradas no tempo

– Permite verificar se o modelo do sistema

digital implementa a função desejada

Page 8: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

SystemVerilog

• Permite modelar um sistema digital

considerando:

– Modelo da interconexão

– Modelo de tempo

– Modelo da funcionalidade

• Modelagem em vários

níveis de abstração

Tutorial - Simulação

Page 9: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Nível Portas Lógicas – Gate Level

• Module: bloco básico

– Nome

– Interface

– Estrutura interna: conjunto de portas lógicas conectadas

Tutorial - Simulação

Page 10: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Nível Portas Lógicas – Gate Level

– Portas lógicas: blocos básicos da linguagem

– Conexão por fios• Tipo lógico: 0, 1, X. Z (desconectado)

– Retardo (delay) das portas

Tutorial - Simulação

Delay = 2

unidades de

tempo

Page 11: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Nível Portas Lógicas – Gate Level

– Retardo (delay) das portas• Delay default

• Diferentes unidades podem ser definidas

Page 12: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Simulação do Modelo

• Como simular um modelo?

• Modelo:

– Conexão de componentes (pode ser em qualquer ordem)

– Execução do comportamento de cada componente como função

das entradas

Tutorial - Simulação

Page 13: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Execução do Modelo

• Cada módulo é executável

• Simulador executa os módulos que tiveram

os valores em suas portas de entrada

alterados

• A alteração na saída

é propagada para outros

módulos que estão

interconectados

considerando o

retardo da portaTutorial - Simulação

Page 14: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Execução do Modelo

• Cada módulo é executável

• Simulador executa os módulos que tiveram

os valores em suas portas de entrada

alterados

• A alteração na saída

é propagada para outros

módulos que estão

interconectados

considerando o

retardo da portaTutorial - Simulação

Execução em

qualquer ordem

Page 15: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Como Verificar se o projeto está correto?

• Modelo do circuito digital

– Composto de vários módulos

• Gerador de sinais para as entradas

• Visualizador dos sinais nas saídas

Tutorial - Simulação

Page 16: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Simulando Sistemas Digitais

• Testbench: módulos que vão gerar sinais

de entrada para simular um módulo em

desenvolvimento e monitorar os sinais de

saída do módulo

Tutorial - Simulação

Page 17: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Simulando Sistemas Digitais

• Testbench: módulos que vão gerar sinais

de entrada para simular um módulo em

desenvolvimento e monitora os sinais de

saída do módulo

Tutorial - Simulação

Page 18: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Simulando Sistemas Digitais

• DUT:

Device

Under Test

Tutorial - Simulação

Top

DUT

Testbench

Page 19: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Simulando Sistemas Digitais

Tutorial - Simulação

Top

DUT

Testbench

Page 20: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Especificando Hierarquia

Tutorial - Simulação

Page 21: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Especificando Hierarquia

Tutorial - Simulação

Page 22: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Mapeamento

de Portas

Treinamento em Projeto de

Sistemas Digitais

.....

Page 23: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Mapeamento

de Portas

Treinamento em Projeto de

Sistemas Digitais

.....

Page 24: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Um Testbench para o Mux

• Como gerar estímulos de forma

automática e exaustiva?

Tutorial - Simulação

Gerador

de estímulos

Page 25: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Um Testbench para o Mux

Tutorial - Simulação

Gerador

de estímulos

Page 26: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Um Testbench para o Mux

Tutorial - Simulação

Gerador

de estímulos

Page 27: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Um testbench mais

inteligente

Tutorial - Simulação

Como saber se a

especificação está

correta?

Page 28: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Um testbench mais

inteligente

Tutorial - Simulação

Compara com valor de referência

Page 29: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Resumo• Foram apresentados os principais conceitos de

simulação baseada em eventos

• Tempo e ação concorrente

– Modelagem do tempo de simulação

– Modelagem de componentes que são ativados

concorrentemente

• Módulos, Instanciação e Hierarquia

– Modelos de partes (componentes de hardware)

– Projeto Bottom-Up

• Modelos estruturais e Procedurais

– Estrutura: interconexão de componentes

– Procedural: Comportamento do Testbench

Page 30: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Projetando Circuitos

Combinacionais

Treinamento em Projeto de

Sistemas Digitais

Page 31: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Lógica combinacional:

–Saída: função booleana das

entradas

• F: I -> O

• Retardo de propagação: tempo para o

valor da saída ficar estável em função

de mudança nos valores de entrada.

Treinamento em Projeto de

Sistemas Digitais

Page 32: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Especificação em SystemVerilog

Always_comb Assign

comportamemto

comportamento

Treinamento em Projeto de

Sistemas Digitais

Page 33: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Especificação em SystemVerilog

Assign múltiplas saídas

Treinamento em Projeto de

Sistemas Digitais

Page 34: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Especificação em SystemVerilog

Hierarquia

Treinamento em Projeto de

Sistemas Digitais

Page 35: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Porque o circuito abaixo não é

combinacional?

A saída não está especificada

para todas as entradas

Necessidade

de latchs para

guardar o

valor

Treinamento em Projeto de

Sistemas Digitais

Page 36: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Formalizando....

• always_comb statement

– always_comb sum=b+c

– always_comb begin

sum=b+c;

dif = b-c;

end

• Executa repetidas vezes enquanto valores

mudam

Treinamento em Projeto de

Sistemas Digitais

Page 37: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Formalizando....

• assign statement

– assign sum=b+c

– assign sum=b+c, dif = b-c;

• Cada expressão (lado direito) é avaliada

continuamente

Treinamento em Projeto de

Sistemas Digitais

Page 38: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Construtores de linguagens de programação

• If, if-else, case

• f = (a . b) + (b . c) + (a . c)

• assign f = (a & b) | (b & c) | (a & c)

Treinamento em Projeto de

Sistemas Digitais

Page 39: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Construtores de linguagens de programação

• If, if-else, case

• f = (a . b) + (b . c) + (a . c)

Concatenação

Constante com tam.

Pré definido

Treinamento em Projeto de

Sistemas Digitais

Page 40: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Construtores de linguagens de programação

• If, if-else, case

• f = (a . b) + (b . c) + (a . c)

Valores default

Treinamento em Projeto de

Sistemas Digitais

Page 41: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Construtores de linguagens de programação

• If, if-else, case

• f = (a . b) + (b . c) + (a . c)

Facilitando comparação

Treinamento em Projeto de

Sistemas Digitais

Page 42: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Especificando Testbenches

• Papel do testbench:

– Modelar ambiente

– Depurar o projeto

• Não é sintetizável

• Visualização dos sinais

– $ monitor

– S display

– $ strobe

Treinamento em Projeto de

Sistemas Digitais

Page 43: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Especificando Testbenches

Treinamento em Projeto de

Sistemas Digitais

Page 44: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Especificando Testbenches

Treinamento em Projeto de

Sistemas Digitais

Page 45: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Exemplo Testbench Básico

Instancia do DUV

testbench

Resultado

Treinamento em Projeto de

Sistemas Digitais

Page 46: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Exemplo Testbench Básico

Adicionador 1 bit

Adicionador 4 bits

Treinamento em Projeto de

Sistemas Digitais

Page 47: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Exemplo Testbench Básico

testbenchTreinamento em Projeto de

Sistemas Digitais

Page 48: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Tipos de Dados - Principais

Treinamento em Projeto de

Sistemas Digitais

Page 49: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Tipos de Dados - Principais

Treinamento em Projeto de

Sistemas Digitais

Page 50: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Tipos de Dados - Principais

Treinamento em Projeto de

Sistemas Digitais

Page 51: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

• Para a definição de vetores de bitsprocedemos das formas apresentadasabaixo.

– Vetor unidimensionallogic [msb: lsb] nome_vetor;

– Vetor bidimensionallogic [msb: lsb] nome_vetor [minimo :máximo];

– Vetor tridimensionallogic [msb:lsb] [máximo:mínimo] nome_vetor[mínimo: máximo]

Vetores de Logics

Treinamento em Projeto de

Sistemas Digitais

Page 52: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

• Maneira de usar constantes de forma

controlada

Enumeration

Treinamento em Projeto de

Sistemas Digitais

Page 53: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

• Maneira de usar constantes de forma

controlada

Enumeration

Treinamento em Projeto de

Sistemas Digitais

Page 54: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Resumo

• Especificação RTL e Simulação de

Sistemas Digitais

• Modelando Circuitos Combinacionais

– Assign

– Always_comb

• Construtores procedurais

• Tipos de Dados

Treinamento em Projeto de

Sistemas Digitais

Page 55: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Formalizando....

• always_comb statement

– always_comb sum=b+c

– always_comb begin

sum=b+c;

dif = b-c;

end

• Executa repetidas vezes enquanto valores

mudam

Treinamento em Projeto de

Sistemas Digitais

Page 56: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Formalizando....

• assign statement

– assign sum=b+c

– assign sum=b+c, dif = b-c;

• Cada expressão (lado direito) é avaliada

continuamente

Treinamento em Projeto de

Sistemas Digitais

Page 57: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Construtores de linguagens de programação

• If, if-else, case

• f = (a . b) + (b . c) + (a . c)

• assign f = (a & b) | (b & c) | (a & c)

Treinamento em Projeto de

Sistemas Digitais

Page 58: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Combinacionais

• Construtores de linguagens de programação

• If, if-else, case

• f = (a . b) + (b . c) + (a . c)

Concatenação

Constante com tam.

Pré definido

Treinamento em Projeto de

Sistemas Digitais

Page 59: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Projetando Circuitos

Sequenciais

Page 60: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Sequenciais

• O que é um elemento

sequencial?

–Um flip flop

–Um latch

• São usados para armazenar

informação do Sistema:

–O estado do Sistema

Page 61: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Sequenciais

• Como especificar elementos

sequenciais em uma descrição

RTL?

• Elementos sequenciais não são

especificados Explicitamente

• Eles são inferidos a partir de

como é feita a sua especificação

Page 62: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Circuitos Sequenciais

• Circuitos sequenciais juntamente com

circuitos combinacionais permitem a

implementação de uma máquina de

estados FSM

– Sinais de sincronização

• Clock

• Reset

– Estados

– Entradas e saídas

Page 63: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Flip-Flop tipo D

• Flip-flop tipo D

– Armazenam 1 bit

– Copia a entrada na transição positiva do clock

– Reseta a saída na transição negativa do reset

Page 64: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Especificando um Flip-Flop

• Flip-flops que são edge-triggered

– Informado pelo uso do simbolo @ com a

palavra posedge ou negedge

• Efeito:

– Todas as varíaveis que estão no lado

esquerdo da atribuíção com “<=” serão

implementadas com Flip-flops trigados

na transição do clock ou reset.

– Reset é assíncrono

– <= atribuição

concorrenteModelo Flip-flop:

loop contínuo –

mudanças nos

sinais após @

Page 65: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Especificando um Registrador

• Registrador:

– Concatenação

de vários flip-

flopsEntradas e

saídas de 8

bits

Tamanho

parametriza

do

Instanciação

Page 66: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Máquina de Estados Finitos FSM

• Definidas formalmente como um conjunto de

estados, reset e clock.

• Conjunto de combinações das entradas.

– Não necessariamente todas as 2n são possíveis

devido aos don’t-cares

• Combinações das saídas

– Não necessariamente todas as 2n serão possíveis

• Função do próximo estado (δ) e função da saída

(λ) são combinacionais

• Clock

• Sinal reset

Page 67: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Máquina de Estados Finitos FSM

Modelo de Computação:

iniciando no estado de

reset, uma transição

positiva do clock causa o

Sistema mudar para

outro (ou mesmo)

estado como definido

pela função δ

Page 68: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Máquina de Estados Finitos FSM

Modelo de

ImplementaçãoEstado

Page 69: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

FSM em SystemVerilog

Modelo de

Implementação

Page 70: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

FSM em SystemVerilog

Always_ff

Always_comb ou

assign

Page 71: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

FSM em SystemVerilog

Atribuições

concorrentes

Page 72: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

FSM em SystemVerilog

Comportamento

similar

Page 73: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

FSM em SystemVerilog

Atribuições

concorrentes

Atribuições não

concorrentes

Page 74: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

<= vs. =

bc

Page 75: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Modelando FSM como Diagramas de

EstadoReset state. One state is always

labeled as the reset state using an

"R" and an arrow

pointing to the reset state.

State name. A unique and

meaningful name is given to each

state. The actual state

assignment is normally only shown

in the SystemVerilog model.

Transition expression. An Boolean

expression is shown by an arc that

represents the next state if the

expression is TRUE.

Page 76: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Modelando FSM como Diagramas de

Estado

Saídas dependem do

estado

Saídas dependem do

estado e da entrada

Page 77: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Modelando FSM como Diagramas de

Estado

Estados simbólicos e

entrada e saída como

variáveis

~z

Page 78: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Modelando FSM como Diagramas de

Estado

Mudança do

estado

Mudança da

saída

~z

Page 79: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Mudança do

estado

Mudança da

saída

Calculo do próximo

estado

Modelando FSM como Diagramas de

Estado

~z

Page 80: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Projetando um sistema digital

• Estrutura: controle + processamento

4

2

4

4

Z

NALU

L1

L3

L2

A B

C

F

L1

L2

L3

Page 81: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Projeto: Implementação Multi-ciclo

Shift

left 2

PC

Mux

0

1

RegistersWriteregister

Writedata

Readdata 1

Readdata 2

Readregister 1

Readregister 2

Instruction[15– 11]

Mux

0

1

Mux

0

1

4

Instruction[15– 0]

Sign

extend

3216

Instruction[25– 21]

Instruction[20– 16]

Instruction[15– 0]

Instruction

register

ALU

control

ALUresult

ALU

Zero

Memory

data

register

A

B

IorD

MemRead

MemWrite

MemtoReg

PCWriteCond

PCWrite

IRWrite

ALUOp

ALUSrcB

ALUSrcA

RegDst

PCSource

RegWrite

Control

Outputs

Op[5– 0]

Instruction[31-26]

Instruction [5– 0]

Mux

0

2

Jumpaddress [31-0]Instruction [25– 0] 26 28

Shiftleft 2

PC [31-28]

1

1 Mux

0

3

2

Mux

0

1ALUOut

Memory

MemData

Writedata

Address

Page 82: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Projeto

• Projetar CPU que implementa repertório de uma CPU similar ao MIPS

• Dados módulos em Verilog para cada componente da Unidade de processamento (ALU, Banco de Registradores, PC, Memória, etc...)

• Projetar unidade de processamento pela interligação dos módulos

• Projetar unidade de controle

Page 83: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Compondo a Unidade de

Processamento:

f operação descrição flags afetados

000 S = A Z,N

001 S = A+B Soma Z,N,O

010 S = A-B Subtração Z,N,O

011 S = A and B And lógico Z

100 S = A xor B Ou exclusivo Z

101 S = not A Complemento a 1Z

110 S = inc A Incremento Z, N, O

111 S = A comp B Comparação EQ,GT,LT

A B

S

ZN

OEQLTGT

ALU

32 32

32

ALU: Unidade Lógico-Aritmética

Page 84: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Compondo a Unidade de

Processamento....

• Permitir que a saída da ALU seja deslocada– Registrador de deslocamento

• Load e shift síncronos (descida)

• Clear assíncrono

• Deslocamentos (n vezes):

– Esquerda

» Entrada: 0

– Direita (lógico e aritmético)

» Entrada: 0 ou MSB (Bit mais significativo)

– Rotação (direita ou esquerda):

» Entrada: LSB, MSB

» Saída: MSB, LSB (Bit Menos Significativo)

Page 85: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Unidade de Busca...Mem

Read

Mem

WriteMorD IRWrite

Unidade

Controle

Page 86: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Resumo

• Circuitos sequenciais

– Armazenamento do estado

• Elementos Sequenciais

– dFF

– Clock e reset

– Registrador

Infra-estrutura Hardware

Page 87: Treinamento em Projeto de Sistemas Digitais - cin.ufpe.brcin.ufpe.br/~if674/arquivos/2018.2/Aulas/rtl-fsm-design.pdf · Grupo de Engenharia da Computação Centro de Informática

Resumo

• Conceitos de Máquinas de Estados

• Modelando FSM usando SystemVerilog

• Atribuições concorrentes

• Modelando Diagramas de Estados em

System Verilog

– FSMs explícitas

• Algumas otimizações

Infra-estrutura Hardware