240 likes | 258 Views
Sistemas Digitais Projeto RTL – Unidade de Execução. Prof. Wanderley. Introdução. Unidade de Controle Responsável por gerar os sinais de controle. Unidade de Execução Responsável pela manipulação de dados. Introdução. Circuito combinacional para somar 4 números.
E N D
Sistemas DigitaisProjeto RTL – Unidade de Execução Prof. Wanderley
Introdução Unidade de Controle Responsável por gerar os sinais de controle Unidade de Execução Responsável pela manipulação de dados
Introdução Circuito combinacional para somar 4 números Unidade de execução para somar 1 milhão de números
Introdução • Unidades 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 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 + 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. ALU
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)
Projeto RTL • MUX para combinar múltiplas operações • Necessidade de um sinal para controle do MUX
Projeto RTL • MUX para compartilhar recursos (unidade funcional) • Elimina-se um somador
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 = Input • Senão • Reg = A + B
Projeto RTL • Detalhes sobre o reuso de unidades funcionais. Considere as funções: a = b + c d = e + f Projeto 2: (reuso de somador) Projeto 1:
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