Sistemas Digitais Projeto RTL – Unidade de Execução Prof. Wanderley.
Transcript of Sistemas Digitais Projeto RTL – Unidade de Execução Prof. Wanderley.
Sistemas DigitaisProjeto RTL – Unidade de Execução
Prof. Wanderley
Introdução
Unidade de ExecuçãoResponsável pela
manipulação de dados
Unidade de ControleResponsável por gerar os sinais de controle
IntroduçãoCircuito combinacional para somar 4 números Unidade de execução para
somar 1 milhão de números
IntroduçãoUnidades de execução são compostas por:
Unidades funcionais tais como, somadores, deslocamentos, multiplicadores, ALUs e comparadores
Elementos para armazenagem de dados tais como, registradores e memórias
Elementos para transferência de dados tais como, barramentos, multiplexadores e buffers tri-states
Projeto RTL
• Projetos de Unidades de Execução podem também ser referidos como projetos RTL
• Projetos RTL (do inglês, Register-Transfer Level) são a origem do desenvolvimento de sistemas digitais integrados, tais como microcontroladores e microprocessadores
• Embora seja um projeto de hardware, sua descrição é feita através de linguagens de descrição de hardware, ou seja, via software
• Linguagens mais utilizadas são o VHDL e o Verilog
Projeto RTL• Consiste em manipular adequadamente os dados, tendo
o registro como um importante elemento de armazenamento de dados
• Um dado pode sofrer infinitas manipulações, sendo que a cada manipulação ele poderá ser armazenado em um ou outro registrador
xyz
yy
xy
x
12
10
Exemplo de tipos de transferência de dados entre registros
Projeto RTL• As manipulações são feitas por unidades funcionais
Unidades funcionais típicas
+
ALU
Somador: uma unidade básica que permite a realização de operações de soma e subtração
ALU, do inglês Arithmetic Logic Unit: realiza as operações aritméticas e operações lógicas como, negação, OU, E, etc.
Projeto RTL• Dá-se o nome de operação de transferência entre
registros à sequência: Leitura de dado em registro Modificação do dado lido Escrita de dado em registro
• Cada operação da sequência descrita deve ser completada dentro de um ciclo de clock
• Logo, cada operação equivale a um estado de uma máquina de estado finito
• Uma unidade funcional pode ser utilizada somente uma vez a cada clock, mas pode ser utilizada novamente no clock seguinte
Projeto RTL• Processo de Projeto RTL
Que tipos de registradores usar (tamanho e operações possíveis) e quantos usar?
Que tipos de unidades funcionais usar (somador ou ALU) e quantas usar?
Alguma unidade funcional pode ser compartilhada? (otimização de recursos)
Como organizar os registradores e as unidades funcionais?
Projeto RTL• Exemplos: registradores de 8 bits (0 a 255)
3AA CBA
Projeto RTL• MUX para combinar múltiplas operações
3)1( AA
CBA )0(
• Necessidade de um sinal para controle do MUX
Projeto RTL• MUX para compartilhar recursos (unidade funcional)
• Elimina-se um somador
3)1( AA
CBA )0(
Projeto RTL• Compartilhamento de registro: se duas variáreis não são
usadas ao mesmo tempo, então elas podem compartilhar o mesmo registro.
Exemplo:Se (condição) então Reg = InputSenão Reg = A + B
Projeto RTL• Detalhes sobre o reuso de unidades funcionais. Considere as
funções: a = b + c d = e + f
Projeto 1:
Projeto 2: (reuso de somador)
Projeto RTL• Detalhes sobre o reuso de unidades funcionais
Projeto 1: Ambas as operações são
realizadas em 1 ciclo de clock; Mais rápido; Menos complexo; Mais recursos?
Projeto 2: As operações são realizadas
de forma sequencial, ou seja, em 2 ciclos de clock;
Mais lento; Mais complexo (adiciona um
sinal de controle dos MUXs); Menos recursos?
Projeto RTL• Métodos de Transferência de dados:
Fontes múltiplas: Controle do MUX
Projeto RTL• Métodos de Transferência de dados:
Destinos múltiplos: controle do registrador
Projeto RTL• Métodos de Transferência de dados:
Barramento Tri-State (fontes múltiplas e destinos múltiplos)
Apenas uma fonte pode acessar o barramento por vez (evitar conflito de dados)
Controle feito a partir de buffers tri-state
Os destinos estão diretamente conectados ao barramento
Projeto RTL• Sinais de Status
São testes condicionais extremamente úteis à unidade de controle para geração do próximo estado de execução.
Cada teste condicional de um algoritmo representa um sinal de status.
Exemplo 1: Se (A=0) então... Exemplo 2: Se (A é par) então...
Projeto RTL• Exemplo: Soma de n a 1
Projeto RTL• Exemplo: Soma de n a 1
Projeto RTL• Exemplo: Fatorial de n
Projeto RTL• Exemplo: Fatorial de n