A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Dicas de Circuitos MO801/MC912. Como modelar? Multiciclo x Pipeline Multiplicador.

Apresentações semelhantes


Apresentação em tema: "Dicas de Circuitos MO801/MC912. Como modelar? Multiciclo x Pipeline Multiplicador."— Transcrição da apresentação:

1 Dicas de Circuitos MO801/MC912

2 Como modelar? Multiciclo x Pipeline Multiplicador

3 Multiciclo Quebrar uma atividade em várias partes Utilizar registradores para armazenar os valores temporários Reaproveitar o hardware durante a execução de partes diferentes –Usar o mesmo multiplicador em ciclos diferentes para fazer multiplicações diferentes Economia de área, pouca variação no desempenho Implementado com uma máquina de estados

4 Pipeline Quebrar uma atividade em várias partes Utilizar registradores para guardar o valor intermediário Processar vários conjuntos de dados simultaneamente Sem reaproveitamento de hardware Freqüência similar à da implementação multiciclo Maior poder de processamento (throughput)

5 Pipeline

6 Pipeline em Duas Partes Registradores –Apenas guardam os valores entre os estágios (processamento) Processamento –Apenas elementos combinacionais –Fazem todo o processamento com base nas entradas, não guardam valores –Geram saídas que serão guardadas no final do ciclo pelos registradores

7 Processamento Cuidado com os ciclos lógicos Não há problema em fazer forwarding de valores Procure balancear as atividades entre os vários estágios Codifique os registradores em entidades separadas –Isso evita que sejam criados registradores (ou latches) por engano

8 Estágios Multiciclo O que fazer quando um estágio precisa de mais de um ciclo para terminar? –Aumentar o tamanho do ciclo? –Quebra-lo em dois estágios? Exemplos: –Interface com memória externa –Multiplicação em mais de um ciclo

9 Registradores library ieee; use ieee.std_logic_1164.all; entity reg is port ( clk : in std_ulogic; clr : in std_ulogic; d : in std_ulogic_vector(21 downto 0); q : out std_ulogic_vector(21 downto 0) ); end entity reg;

10 Comportamento architecture behavioral of reg is begin behavior : process (clk) is begin if rising_edge(clk) then if To_X01(clr) = '1' then q '0'); else q <= d; end if; end process behavior; end architecture behavioral;

11 Outra Alternativa library ieee; use ieee.std_logic_1164.all; entity reg is port ( clk : in std_ulogic; d : in std_ulogic_vector; q : out std_ulogic_vector); end entity reg;

12 Comportamento architecture behavioral of reg is begin behavior : process (clk) is begin if rising_edge(clk) then q <= d; end if; end process behavior; end architecture behavioral;

13 Outra forma Crie registros para os valores de entradas e saídas de cada registrador –A implementação deixa explícitos os nomes dos registradores além dos campos type tempo is record segundos, minutos : integer range 0 to 59; horas : integer range 0 to 23; end record tempo; variable agora : tempo;

14 Multiplicação FPGAs possuem multiplicadores –Restrições quanto à quantidade de bits –Como utiliza-los? Multiplicações por constantes Como fazer seu multiplicador? Como se faz uma multiplicação? Alternativas?

15 Alternativa 1 Seqüência de somas sucessivas –Se o bit do multiplicador estiver ativo, some o multiplicando com o total –Desloque o multiplicando a cada passo Método simples Pró: –Utiliza apenas um somador e shift register Contra: –Lento

16 Alternativa 2 Implementar diretamente em lógica Multiplicador de x bits = lógica de 2x entradas Pró: –Rápido Contra: –Gasta muito recurso

17 Alternativa 3 Utilizar tabelas (tabuada?) Utilizar as entradas como endereços e guardar na tabela o resultado Pró: –Rápido –Temporização previsível Contra: –Área da tabela

18 Alternativa 3 Similar à alternativa 1, trabalhando mais bits por vez –Ex.: Multiplicar de 4 em 4 bits –Como? Utilizando multiplicadores da alternativa 2 ou 3 Meio termo entre velocidade e área Gasta múltiplos ciclos para completar –Multiciclo? Pipeline?

19 Multiplicador Pipeline Quebrar o algoritmo de multiplicação em fases –Quais são as fases? Quantas são? Quantos multiplicadores são necessários? O que são as operações parciais? O que é um número bom de ciclos?


Carregar ppt "Dicas de Circuitos MO801/MC912. Como modelar? Multiciclo x Pipeline Multiplicador."

Apresentações semelhantes


Anúncios Google