Autores Bruno Holanda {[email protected]}[email protected] Rodrigo Camarotti...

27
Autores Bruno Holanda {[email protected] } Rodrigo Camarotti {[email protected] } Rodrigo Pimentel {[email protected] } Rômulo Bruno {[email protected] } Centro de Informática – UFPE Projeto Héracles

Transcript of Autores Bruno Holanda {[email protected]}[email protected] Rodrigo Camarotti...

Page 1: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

AutoresBruno Holanda {[email protected]}Rodrigo Camarotti {[email protected]}Rodrigo Pimentel {[email protected]}Rômulo Bruno {[email protected]}Centro de Informática – UFPE

Projeto Héracles

Page 2: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

2

O Projeto

• Implementação das funcionalidades básicas de um analisador de sinais e espectro.

– O que é um analisador de sinais e espectro?

• Dispositivo usado para medir, visualizar e analisar sinais elétricos e examinar a composição espectral de formas de ondas elétricas, acústicas ou ópticas.

– Como?» Com algumas funcionalidades de um osciloscópio» Usando a Fast Fourier transform (FFT) para colocar a forma de onda no

domínio da freqüência.

Page 3: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

3

Por que um analisador ?

• Análises Médicas– EEG, ECG, EMG, EOG, ...

– Defeitos na retina

• Análise das vibrações de instrumentos musicais

• Detecção de Aromas– Uso FFT para reconhecer padrões para identificar subtâncias

químicas.

Page 4: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

4

Por que um analisador ?

• Geologia– Medir e armazenar ondas sísmicas

• Processamento de sinal digital• Comunicações• Astronomia• Óptica

Page 5: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

5

O Analisador

Signal

Data [7..0]

Trigger Run/StopLevel[7..0] FFTButtonTrigger Mode[1..0] Sec/Div[2..0] Horizontal Volt/Div[2..0]Position[7..0] Reset

DisplayReady Data[7..0] SentData

Data [7..0]

Data [7..0]

Analogic Circuit

Control

GUI

SentDataDisplayReady

Page 6: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

6

• Recebe sinais analógicos de entrada e dá como saída uma representação digital de 8 bits desse sinal.

Circuito Analógico

Page 7: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

7

• O conversor A/D utilizado foi o ADC0804 que possui algumas restrições– Ocasionaram o adicionamento de alguns dos módulos

mostrados na figura anterior– Converte sinais com amplitude entre 0 e 5 volts. Em

função dessa restrição um circuito de deslocamento(Displacement) foi adicionado na entrada do circuito

– O conversor tem um tempo de conversão de 100µs, ou seja ele possui uma freqüência de 10kHz.

• Passa–baixa com uma freqüência de corte em torno de 3kHz.

Restrições do conversor A/D

Page 8: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

8

• Usado para podermos lidar com sinais de pequena amplitude

– Facilitando assim a conversão desse sinais, já que sinais de baixa amplitude dificultariam a conversão pelo conversor A/D.

– Amplificação de 6 vezes a amplitude do sinal de entrada.

Amplificador

Page 9: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

9

• Funciona no modo free–running– Começa uma conversão e, assim que a termina, inicia

outra sem a necessidade de qualquer comando

• O resultado da conversão é um inteiro de 8 bits, que é passado para o FPGA

Conversor A/D

Page 10: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

10

Dip Switches

• Falta de dip switches no FPGA utilizado– Construído um circuito que possui três switches,

necessários para a entrada do sistema.

Page 11: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

11

O Controle

• Fluxo de projeto

CynthHL

Simulation

Passed?

SystemCBehavioral

SystemCRTL

Simulation

Passed?

Yes

No

No

CynthVLG

Yes

VerilogRTL

Simulation

Passed?

No

Quartus IIYes

BitStream

Page 12: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

12

Modelagem Comportamental

• Descreve as funcionalidades do projeto (algoritmo)

• Independente de tecnologia e arquitetura de implementação

• Não descreve FSM ou recursos, pois isso é feito pela síntese comportamental.

• A síntese comportamental possibilita a automação do processo de síntese de circuitos digitais

• Aumentando a produtividade• Diminuindo erros • Proporcionando a exploração de várias arquiteturas.

Page 13: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

13

O Cynthesizer

• Ferramenta de síntese comportamental • SystemC comportamental Verilog RTL sintetizável

• Voltado para aplicações orientada a algoritmos e que não tenham predominância de entradas e saídas condicionais

• Módulos nos quais dados de entrada são processados por algum algoritmo conhecido (ex.: FFT) e então repassados a um outro circuito

Page 14: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

14

O Cynthesizer

• Mesmo testebench para todos o níveis de abstração – Comportamental, SystemC RTL e Verilog RTL

• Possibilita otimizações de latência e/ou de área, sem mudanças no código fonte

Page 15: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

15

As Otimizações

• Duas maneiras para especificar as otimizações:– Diretivas

• Incluir no código SystemC para afetar partes específicas do mesmo

– Linhas de comando• Especificar globalmente para atingir o projeto como um

todo• Especificar para uma específica configuração de síntese

comportamental

Page 16: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

16

As Otimizações

• Dicas de como otimizar o programa mudando algumas partes do código.

Page 17: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

17

As Otimizações

CYN_DEFAULT_INPUT_DELAY •Usada para especificar o delay no qual os dados na entrada estão válidos

CYN_FLATTEN •Faz com que o Cynthesizer implemente um array como registradores ao invés de como memórias

CYN_PROTOCOL •This directive is not a directive for optimization; it is used to indicate to Cynthesizer that a section of code is cycle-accurate. Cycle-accurate protocols are modeled in SystemC to move data into and out of the design. So this protocol ensures that behavioral design and RTL implementation correctly operate in the same testbench.

Page 18: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

18

As Otimizações

--sched_aggressive_2 •Optimize the control logic, creating data path parts out of the control statements and additional processing to reduce the area.

--sched_asap •Creating the shortest possible schedule regardless of the number of functional units needed

--lsb_trimming •Is used to determine which library parts or data path components would be most beneficial

--unroll_loops •Removing unused least significant bits through

--dpopt_auto •Directs Cynthesizer to implement an optimized gate-level part for a specific block of code

Page 19: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

19

As Otimizações

RTL*

Changing the code 1734941,4

--sched_aggressive_2 1733597.7

--dpopt_auto 1671688.8

--lsb_trimming 1666756.9

--unroll_loops 1762547.0

--sched_asap 2851609.1

CYN_FLATTEN 2467605.4

*Unit: m²  

RTL*

1764070.9

*Unit: m²

Behavioral* RTL*

3240.00 9100.00

*Unit: ns  

RTL* 

Changing the code 8680.00  

--unroll_loops 7007.00  

--dpopt_auto 6490.00  

--sched_asap 3970.00  

CYN_FLATTEN 3910.00  

  *Unit: ns

• Latência

• Área

Page 20: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

20

A Prototipação

• Foi usada ferramentas da Altera,o Quartus II 4.1 e o FPGA Altera Stratix II EP2S60F672C5ES

Total ALUTs 8,930 (18%)

Total pins 51

Total memory bits 225, 86

DSP block 9-bit elements 8

Clock 64.9 ns

Frequency 15.4 MHz

• FPGA 50MHz

• Com o uso de um divisor de frequência

• Frequência 12.5MHz

• Clock 80ns

Page 21: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

21

A Paralela

•Pinos utilizados:

•2 – 9 -> para receber dados.

•11 - wait: sent_data.

•14 - data strobe: display_ready.

•18 - 25 –> ground.

• Modo EPP:

Page 22: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

22

Proteção da Paralela

• Restringi o valor da corrente que é passada para a paralela– Utilização do buffer 74HC244N que apenas recebe um

sinal (0 ou 5 volts) e o repassa com um valor de corrente que a paralela aceita.

Page 23: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

23

O Protocolo de Handshake

• Alta freqüência de trabalho do FPGA (~15MHz).

• Leitura da paralela no modo EPP tem taxa de transferência na faixa de 500KB/S a 2MB/S.

• Dispositivos trabalham em freqüências distintas.

• Necessidade de transmissão assíncrona.

• Controle preciso para troca de informações entre a paralela e o FPGA.

Page 24: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

24

O Protocolo de Handshake

• Display_ready: interface pronta para receber dados

• Sent_data: dados enviados pelo FPGA

• Data: byte enviado pelo FPGA.

Page 25: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

25

O Protocolo Funcional

• Define semântica para os dados enviados pelo FPGA.

• Dados possíveis: (0x00) modo trigger, (0x20) sensibilidade vertical, (0x40) base de tempo, (0x60) posição trigger, (0x80) amostras, (0xC0) nível trigger, (0xE0) modo FFT.

Page 26: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

26

A Interface

• Ilustrar os resultados obtidos no processamento do FPGA

• Prover uma maior usabilidade para o usuário

• Melhor visualização do sinal em relação aos displays convencionais

Page 27: Autores Bruno Holanda {bhtcd@cin.ufpe.br}bhtcd@cin.ufpe.br Rodrigo Camarotti {rcfr@cin.ufpe.br}rcfr@cin.ufpe.br Rodrigo Pimentel {rwpa@cin.ufpe.br}rwpa@cin.ufpe.br.

27

A Interface

• Modo automático – onda senoidal

Iniciar Captur

a

Segundos /

Divisão

Volts / Divisã

oModo Trigg

er