25.12.2013 Views

Dynamic Voltage Scaling Dissertação para obtenção do Grau de ...

Dynamic Voltage Scaling Dissertação para obtenção do Grau de ...

Dynamic Voltage Scaling Dissertação para obtenção do Grau de ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

4. Demonstra<strong>do</strong>r FPGA<br />

4.3.4 Implementação <strong>do</strong> Sensor Global<br />

A implementação <strong>do</strong> Sensor Global em FPGA teve algumas particularida<strong>de</strong>s <strong>de</strong>vi<strong>do</strong> às<br />

condições oferecidas pelo dispositivo. Quan<strong>do</strong> o sensor PVTA foi implementa<strong>do</strong> pela primeira vez, a<br />

ferramenta <strong>de</strong> síntese eliminou quase to<strong>do</strong>s os flip-flops e portas NOR da ca<strong>de</strong>ia e substitui-os por<br />

lógica equivalente. Por este motivo foi necessário impor uma restrição <strong>de</strong> não optimização nos<br />

barramentos test_data e Therm_Co<strong>de</strong> através <strong>do</strong> atributo “keep”. Com esta modificação foi possível<br />

obter os primeiros resulta<strong>do</strong>s <strong>do</strong> código termómetro, mas verificou-se que eram incoerentes. Esta<br />

incoerência ficou a <strong>de</strong>ver-se ao atraso <strong>do</strong>s sinais aging e clkgen origina<strong>do</strong> pelo eleva<strong>do</strong> fanout. O<br />

problema foi resolvi<strong>do</strong> introduzin<strong>do</strong> buffers presentes na FPGA <strong>para</strong> transporte e distribuição <strong>de</strong><br />

sinais <strong>de</strong> relógio: “BUFG”. Dada a enorme utilida<strong>de</strong> <strong>de</strong>stes buffers, a sua utilização foi também<br />

estendida ao bloco Temporiza<strong>do</strong>r a fim <strong>de</strong> ser utliza<strong>do</strong> no sinal edge, clkdiv e no relógio da máquina<br />

<strong>de</strong> esta<strong>do</strong>s.<br />

Por fim, o sensor foi implementa<strong>do</strong> utilizan<strong>do</strong> uma ca<strong>de</strong>ia <strong>de</strong> atraso com 36 portas NOR, 4 no<br />

início sem flip-flops e 32 com flip-flops consecutivos fornecen<strong>do</strong> um código termómetro também <strong>de</strong><br />

32 bits. Esta solução foi a<strong>do</strong>ptada <strong>para</strong> permitir máxima versatilida<strong>de</strong> durantes a fase <strong>de</strong> teste.<br />

Relativamente ao temporiza<strong>do</strong>r, foram utiliza<strong>do</strong>s 18 registos <strong>para</strong> dividir o sinal <strong>de</strong> relógio cuja saída<br />

po<strong>de</strong> ser configurada manualmente. Por segurança é aconselhável que o perío<strong>do</strong> <strong>do</strong> sinal clkdiv seja<br />

pelo menos maior <strong>do</strong> que a duração da comunicação <strong>de</strong> da<strong>do</strong>s via SPI <strong>para</strong> controlo da tensão <strong>do</strong><br />

DCDC.<br />

4.3.5 Multiplica<strong>do</strong>r Pipeline<br />

O méto<strong>do</strong> usa<strong>do</strong> <strong>para</strong> garantir que o sistema <strong>de</strong> optimização proposto não causa falhas consiste<br />

em efectuar um teste exaustivo e aferir que o resulta<strong>do</strong> é sempre o <strong>de</strong>seja<strong>do</strong>. Este é o motivo pelo<br />

qual foi coloca<strong>do</strong> um multiplica<strong>do</strong>r com autoteste no <strong>de</strong>monstra<strong>do</strong>r FPGA. A saída <strong>do</strong> multiplica<strong>do</strong>r<br />

implementa<strong>do</strong> tem dimensão 32 bits (obtida <strong>de</strong> duas entradas <strong>de</strong> 16 bits) e contem <strong>do</strong>is andares<br />

pipeline. Estas especificações foram escolhidas <strong>de</strong> mo<strong>do</strong> a obter uma taxa <strong>de</strong> ocupação,<br />

multiplica<strong>do</strong>r mais BIST, superior à <strong>do</strong>s restantes elementos, garantin<strong>do</strong> o seu funcionamento em<br />

torno da frequência fornecida pela FPGA. O código VHDL implementa<strong>do</strong> foi o mesmo utiliza<strong>do</strong> por J.<br />

Semião et al. em [6]. Tanto o multiplica<strong>do</strong>r como o algoritmo <strong>de</strong> autoteste são completamente<br />

in<strong>de</strong>pen<strong>de</strong>ntes <strong>do</strong>s restantes blocos implementa<strong>do</strong>s pelo que apenas têm em comum o sinal <strong>de</strong><br />

relógio. O correcto funcionamento da FPGA origina uma assinatura <strong>do</strong> BIST permanente, sen<strong>do</strong> uma<br />

boa referencia <strong>para</strong> a calibração <strong>do</strong> sensor. Com o objectivo <strong>de</strong> aumentar a correlação entre o<br />

<strong>de</strong>sempenho <strong>do</strong> multiplica<strong>do</strong>r e o <strong>de</strong>sempenho <strong>do</strong> sensor, o multiplica<strong>do</strong>r foi implementa<strong>do</strong><br />

recorren<strong>do</strong> às LUT. Deste mo<strong>do</strong> são evita<strong>do</strong>s os multiplica<strong>do</strong>res <strong>de</strong>dica<strong>do</strong>s e extremamente<br />

optimiza<strong>do</strong>s que não reflectem o real <strong>de</strong>sempenho <strong>do</strong>s restantes blocos lógicos da FPGA.<br />

33

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!