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.

<strong>Dynamic</strong> <strong>Voltage</strong> <strong>Scaling</strong><br />

(Optimização da Tensão <strong>de</strong> Alimentação)<br />

Pedro Luís Neves<br />

<strong>Dissertação</strong> <strong>para</strong> <strong>obtenção</strong> <strong>do</strong> <strong>Grau</strong> <strong>de</strong> Mestre em<br />

Engenharia Electrotécnica e <strong>de</strong> Computa<strong>do</strong>res<br />

Júri<br />

Presi<strong>de</strong>nte: Doutor Nuno Cavaco Gomes Horta<br />

Orienta<strong>do</strong>r: Doutor Marcelino Bicho <strong>do</strong>s Santos<br />

Vogais: Doutor Jorge Filipe Leal Costa Semião<br />

Outubro <strong>de</strong> 2012


“The only limits we have are the limits we believe.”<br />

(Os únicos limites que temos são aqueles em que acreditamos.)<br />

Dr. Wayne W. Dyer


Agra<strong>de</strong>cimentos<br />

Estudar no IST tem si<strong>do</strong> uma experiência muito gratificante.<br />

Para além <strong>do</strong> meu reconhecimento a to<strong>do</strong>s os que <strong>de</strong>forma directa ou indirecta contribuíram<br />

<strong>para</strong> o meu percurso académico e <strong>para</strong> a minha felicida<strong>de</strong>, gostaria <strong>de</strong> agra<strong>de</strong>cer em particular:<br />

Aos meus pais por toda a <strong>de</strong>dicação e amor que sempre <strong>de</strong>monstraram, mas também to<strong>do</strong>s os<br />

sacrifícios realiza<strong>do</strong>s <strong>para</strong> que eu pu<strong>de</strong>sse concluir os meus estu<strong>do</strong>s.<br />

Aos restantes elementos da minha família, irmã, padrinhos, tios, primos e avós, os bons<br />

momentos proporciona<strong>do</strong>s, com um especial obriga<strong>do</strong> ao tio Henrique que <strong>de</strong> um mo<strong>do</strong> muito próprio<br />

<strong>de</strong>u o seu contributo <strong>para</strong> a minha formação pessoal.<br />

Ao gran<strong>de</strong> amigo Nuno Órfão por estar sempre presente nos bons e maus momentos.<br />

Aos companheiros e amigos <strong>de</strong> faculda<strong>de</strong> agra<strong>de</strong>ço o companheirismo e entreajuda.<br />

Aos colegas <strong>de</strong> laboratório Tiago Moita e Ruben Cabral, os ensinamentos, a ajuda, a amiza<strong>de</strong> e<br />

a boa disposição <strong>de</strong>monstradas durante o tempo em que trabalhamos juntos.<br />

Ao professor Jorge Semião e ao Bruno Jacinto, a disponibilida<strong>de</strong> <strong>para</strong> discussões sobre os<br />

assuntos aborda<strong>do</strong>s neste trabalho.<br />

Ao professor Marcelino Bicho <strong>do</strong>s Santos, a oportunida<strong>de</strong> e as condições <strong>de</strong> excelência que me<br />

proporcionou <strong>para</strong> a realização <strong>de</strong>ste trabalho.<br />

A toda a equipa da SILICONGATE LDA pelo acolhimento excepcional e em especial ao<br />

Floriberto Lima pelos bons ensinamentos e prontidão <strong>para</strong> fornecer as melhores condições <strong>para</strong> a<br />

realização <strong>de</strong>ste trabalhar.<br />

Por fim um pedi<strong>do</strong> <strong>de</strong> <strong>de</strong>sculpa às pessoas a quem prestei menos atenção <strong>de</strong>vi<strong>do</strong> às obrigações<br />

académicas, em especial ao afilha<strong>do</strong> João Pedro pela impossibilida<strong>de</strong> <strong>de</strong> aproveitar o pouco tempo<br />

disponível <strong>para</strong> estar com ele.<br />

i


Resumo<br />

Nesta dissertação é apresentada uma nova meto<strong>do</strong>logia que permite melhorar a eficiência <strong>do</strong>s<br />

circuitos digitais em microelectrónica, sem comprometer o <strong>de</strong>sempenho e fiabilida<strong>de</strong> <strong>do</strong> sistema.<br />

Actualmente a estratégia da indústria resi<strong>de</strong> em fixar a tensão <strong>de</strong> alimentação num patamar<br />

suficientemente alto que garanta o funcionamento <strong>do</strong> circuito <strong>para</strong> quaisquer variações no processo<br />

<strong>de</strong> fabrico, temperatura e envelhecimento (PVTA – Process+<strong>Voltage</strong>+Temperature+Aging). No<br />

entanto esta abordagem traduz-se num eleva<strong>do</strong> dispêndio <strong>de</strong> energia uma vez que por norma os<br />

circuitos não funcionam nas piores condições. Contu<strong>do</strong>, contornar a abordagem actual não é um<br />

problema trivial. É necessário que o sistema consiga adaptar-se às diferentes condições sem<br />

comprometer o <strong>de</strong>sempenho e a fiabilida<strong>de</strong>. Com o objectivo <strong>de</strong> obter a eficiência máxima, foi<br />

<strong>de</strong>senvolvi<strong>do</strong> um sensor que permite monitorizar a <strong>de</strong>gradação no <strong>de</strong>sempenho <strong>do</strong>s circuitos por<br />

forma a ajustar a tensão <strong>de</strong> alimentação às suas necessida<strong>de</strong>s. Para comprovar o seu<br />

funcionamento foi cria<strong>do</strong> um <strong>de</strong>monstra<strong>do</strong>r em FPGA conten<strong>do</strong> um multiplica<strong>do</strong>r com autoteste (BIST<br />

– Built-In Self-Test), on<strong>de</strong> foi aplica<strong>do</strong> o sensor <strong>de</strong>senvolvi<strong>do</strong> a fim <strong>de</strong> <strong>de</strong>monstrar a sua operação<br />

sem erros e com um consumo <strong>de</strong> energia optimiza<strong>do</strong>.<br />

Palavras Chave<br />

Sensor PVTA, FPGA, Prototipagem, Gestão <strong>de</strong> Energia em Microelectrónica<br />

iii


Abstract<br />

The present work reports a new metho<strong>do</strong>logy to improve the power efficiency of microelectronics<br />

digital cores, without compromising their performance or reliability. Nowadays, the industry most<br />

common strategy to support variations of the circuit fabrication Process, power supply <strong>Voltage</strong>,<br />

Temperature and Aging (PVTA) is based on imposing a custom voltage high enough to ensure the<br />

correct operation of the circuit in a worst case scenario. However, this approach leads to a<br />

consi<strong>de</strong>rable waste of energy since most of the time circuits <strong>do</strong> not operate un<strong>de</strong>r worst case<br />

conditions.<br />

Nevertheless, the solution for this problem is not trivial since it is mandatory to <strong>de</strong>velop a<br />

metho<strong>do</strong>logy were the system is able to adapt itself to different conditions but without compromising<br />

its performance or reliability.<br />

In this context, a new metho<strong>do</strong>logy is here proposed that aims to guarantee maximum efficiency<br />

through the use of a sensor that monitors the performance <strong>de</strong>gradation of circuits in or<strong>de</strong>r to adjust its<br />

power supply voltage, guaranteeing the best power consumption but without compromising its<br />

performance or reliability. To <strong>de</strong>monstrate the sensor operation, a prototype circuit was <strong>de</strong>veloped<br />

and implemented in a FPGA. The <strong>de</strong>veloped prototype inclu<strong>de</strong>s a multiplier, and corresponding self-<br />

-test (BIST), to which the <strong>de</strong>veloped sensor was applied in or<strong>de</strong>r to ensure its operation without<br />

errors, guaranteeing at the same time minimal power consumption.<br />

Keywords<br />

PVTA Sensor, FPGA, Prototyping, Power Management for Microelectronics<br />

v


Conteú<strong>do</strong><br />

Agra<strong>de</strong>cimentos ....................................................................................................................................... i<br />

Resumo .................................................................................................................................................. iii<br />

Abstract ................................................................................................................................................... v<br />

Conteú<strong>do</strong> ............................................................................................................................................... vii<br />

Lista <strong>de</strong> Figuras ...................................................................................................................................... ix<br />

Lista <strong>de</strong> Tabelas ..................................................................................................................................... xi<br />

Lista <strong>de</strong> Acrónimos ................................................................................................................................ xiii<br />

Introdução ....................................................................................................................................... 1<br />

1.1 Motivação ................................................................................................................................ 2<br />

1.2 Principais Contribuições .......................................................................................................... 4<br />

1.3 Objectivos ................................................................................................................................ 5<br />

1.4 Organização da <strong>Dissertação</strong> ................................................................................................... 5<br />

Análise e Previsão <strong>do</strong> Envelhecimento ........................................................................................... 7<br />

2.1 Envelhecimento e Efeito NBTI ................................................................................................ 8<br />

2.2 Ring Oscillator Sensor (IBM ® )................................................................................................. 9<br />

2.3 Sensor <strong>de</strong> envelhecimento da Sun Microsystems ® .............................................................. 10<br />

Sensor Global................................................................................................................................ 11<br />

3.1 Introdução ............................................................................................................................. 12<br />

3.2 Sensor PVTA......................................................................................................................... 13<br />

3.2.1 Mo<strong>do</strong> <strong>de</strong> Envelhecimento .................................................................................................. 14<br />

3.2.2 Mo<strong>do</strong> <strong>de</strong> Teste .................................................................................................................. 15<br />

3.2.3 Detecção ........................................................................................................................... 15<br />

3.2.4 Implementação Prática ..................................................................................................... 17<br />

3.3 Temporiza<strong>do</strong>r ........................................................................................................................ 20<br />

3.3.1 Divisor <strong>de</strong> Relógio ............................................................................................................. 20<br />

3.3.2 Máquina <strong>de</strong> Esta<strong>do</strong>s ......................................................................................................... 22<br />

3.3.3 Diagrama <strong>de</strong> Esta<strong>do</strong>s ........................................................................................................ 24<br />

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

4.1 Introdução ............................................................................................................................. 28<br />

4.2 Arquitectura ........................................................................................................................... 28<br />

vii


Conteú<strong>do</strong><br />

4.3 Meto<strong>do</strong>logia <strong>de</strong> Optimização ................................................................................................. 29<br />

4.3.1 Modificações Efectuadas .................................................................................................. 30<br />

4.3.2 Conversor DCDC .............................................................................................................. 30<br />

4.3.3 Comunicação SPI.............................................................................................................. 31<br />

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

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

4.4 Bloco <strong>de</strong> Controlo e Optimização.......................................................................................... 34<br />

4.4.1 Caminho <strong>de</strong> Da<strong>do</strong>s............................................................................................................ 35<br />

4.4.2 Comportamento................................................................................................................. 36<br />

4.4.3 Multiplexer tri-state (cut_speed)........................................................................................ 37<br />

Resulta<strong>do</strong>s Experimentais ............................................................................................................ 39<br />

5.1 Características <strong>do</strong> Demonstra<strong>do</strong>r ......................................................................................... 40<br />

5.2 Simulações Post-Route ......................................................................................................... 41<br />

5.3 Teste em Temperatura .......................................................................................................... 43<br />

Conclusões e Trabalho Futuro ...................................................................................................... 47<br />

6.1 Conclusões ............................................................................................................................ 48<br />

6.2 Trabalho Futuro ..................................................................................................................... 48<br />

Bibliografia............................................................................................................................................. 49<br />

Anexos .......................................................................................................................................... 51<br />

viii


Lista <strong>de</strong> Figuras<br />

Figura 1.1 – Distribuição da variação <strong>do</strong> <strong>de</strong>sempenho típica no processo <strong>de</strong> fabrico <strong>de</strong><br />

semicondutores ....................................................................................................................................... 3<br />

Figura 1.2 – Meto<strong>do</strong>logia actualmente utilizada nos microprocessa<strong>do</strong>res <strong>para</strong> ajuste <strong>de</strong> tensão ......... 3<br />

Figura 2.1 – Difusão <strong>do</strong> Hidrogénio em direcção à poly durante a fase <strong>de</strong> stress ................................. 8<br />

Figura 2.2 – Degradação no V th <strong>de</strong> um transístor PMOS após 50% <strong>do</strong> tempo na fase <strong>de</strong> stress e<br />

recuperação ............................................................................................................................................ 9<br />

Figura 2.3 – Meto<strong>do</strong>logia <strong>do</strong> sensor PVTA da IBM ® ............................................................................. 10<br />

Figura 2.4 – Sensor <strong>de</strong> Envelhecimento da Sun Microsystems ® ......................................................... 10<br />

Figura 3.1 – Diagrama simplifica<strong>do</strong> <strong>do</strong> Sensor Global ......................................................................... 12<br />

Figura 3.2 – Esquema <strong>de</strong> uma porta lógica NOR utilizada na ca<strong>de</strong>ia <strong>de</strong> atraso .................................. 13<br />

Figura 3.3 – Esta<strong>do</strong> <strong>do</strong>s transístores das portas NOR no Mo<strong>do</strong> <strong>de</strong> Envelhecimento .......................... 14<br />

Figura 3.4 – Esta<strong>do</strong> <strong>do</strong>s transístores das portas NOR no Mo<strong>do</strong> <strong>de</strong> Teste ........................................... 15<br />

Figura 3.5 – Esquema <strong>de</strong>talha<strong>do</strong> <strong>do</strong> Sensor PVTA .............................................................................. 16<br />

Figura 3.6 – Diagrama temporal comportamental <strong>do</strong>s principais sinais <strong>do</strong> Sensor Global .................. 16<br />

Figura 3.7 – Atraso da porta NOR <strong>para</strong> diferentes tensões <strong>de</strong> alimentação ........................................ 18<br />

Figura 3.8 - Atraso da porta NOR <strong>para</strong> diferentes temperaturas.......................................................... 18<br />

Figura 3.9 – Exemplo <strong>de</strong> optimização no Sensor PVTA ....................................................................... 19<br />

Figura 3.10 – Princípio <strong>de</strong> funcionamento <strong>do</strong> conta<strong>do</strong>r assíncrono ..................................................... 20<br />

Figura 3.11 – Esquema lógico e diagrama temporal <strong>de</strong> um Ripple Counter crescente <strong>de</strong> 4 bits ........ 21<br />

Figura 3.12 – Divisor <strong>de</strong> relógio implementa<strong>do</strong> .................................................................................... 22<br />

Figura 3.13 – Módulo assíncrono da máquina <strong>de</strong> esta<strong>do</strong>s ................................................................... 23<br />

Figura 3.14 – Módulo síncrono da máquina <strong>de</strong> esta<strong>do</strong>s ....................................................................... 23<br />

Figura 3.15 – Diagrama <strong>de</strong> esta<strong>do</strong>s <strong>do</strong> Temporiza<strong>do</strong>r ......................................................................... 24<br />

Figura 3.16 – Diagrama temporal comportamental <strong>do</strong>s sinais da máquina <strong>de</strong> esta<strong>do</strong>s ...................... 25<br />

Figura 4.1 – Arquitectura <strong>de</strong> funcionamento <strong>do</strong> <strong>de</strong>monstra<strong>do</strong>r ............................................................ 28<br />

Figura 4.2 – Fluxograma da estratégia Global <strong>de</strong> Controlo .................................................................. 29<br />

Figura 4.3 – Verso da placa <strong>de</strong> circuito impresso da FPGA indican<strong>do</strong> o LDO a remover ................... 30<br />

Figura 4.4 – Conversor DCDC programável por SPI ............................................................................ 31<br />

ix


Lista <strong>de</strong> Figuras<br />

Figura 4.5 – Vista <strong>de</strong> topo da placa <strong>de</strong> circuito impresso da FPGA indican<strong>do</strong> o LDO <strong>do</strong>s 3,3V .......... 31<br />

Figura 4.6 – Exemplo da implementação SPI....................................................................................... 32<br />

Figura 4.7 – Diagrama <strong>de</strong> esta<strong>do</strong>s <strong>do</strong> bloco <strong>de</strong> Controlo e Optimização ............................................. 34<br />

Figura 4.8 – Caminho <strong>de</strong> da<strong>do</strong>s necessário <strong>para</strong> o funcionamento <strong>do</strong> controlo .................................. 35<br />

Figura 4.9 – Multiplexer tri-state <strong>para</strong> geração <strong>do</strong> sinal cut_speed ...................................................... 37<br />

Figura 5.1 – Fotografia <strong>do</strong> protótipo final .............................................................................................. 40<br />

Figura 5.2 – Diagrama temporal <strong>do</strong> bloco Temporiza<strong>do</strong>r ..................................................................... 41<br />

Figura 5.3 – Diagrama temporal <strong>do</strong> bloco SPI ...................................................................................... 41<br />

Figura 5.4 – Diagrama temporal <strong>do</strong> Sensor PVTA ............................................................................... 42<br />

Figura 5.5 – Gráfico da variação da tensão <strong>de</strong> alimentação <strong>do</strong> núcleo digital da FPGA com a<br />

temperatura ........................................................................................................................................... 44<br />

Figura 5.6 – Gráfico da variação da corrente consumida pelo núcleo digital da FPGA com a<br />

temperatura ........................................................................................................................................... 45<br />

Figura 5.7 – Gráfico da variação da Potência consumida pelo núcleo digital da FPGA com a<br />

temperatura ........................................................................................................................................... 45<br />

Figura 5.8 – Poupança obtida com a utilização <strong>do</strong> Sensor Global <strong>para</strong> diferentes temperaturas ....... 46<br />

Figura 7.1 – Esquema eléctrico <strong>do</strong>s dispositivos <strong>de</strong> alimentação da placa FGPA utilizada ................ 52<br />

x


Lista <strong>de</strong> Tabelas<br />

Tabela 3.1 – Dimensão <strong>do</strong>s transístores PMOS e NMOS utiliza<strong>do</strong>s <strong>para</strong> simular o atraso da porta<br />

NOR ...................................................................................................................................................... 17<br />

Tabela 4.1 – Tabela com as tensões <strong>de</strong> saída <strong>do</strong> DCDC <strong>para</strong> cada palavra <strong>de</strong> configuração ............ 32<br />

Tabela 5.1 – Atributos da FPGA ........................................................................................................... 40<br />

Tabela 5.2 – Medições em Temperatura .............................................................................................. 43<br />

xi


Lista <strong>de</strong> Tabelas<br />

xii


Lista <strong>de</strong> Acrónimos<br />

ASIC<br />

Application-specific integrated circuit (Circuito integra<strong>do</strong> <strong>de</strong> aplicação especifica)<br />

BIST<br />

Built-in self-test (Autoteste embuti<strong>do</strong>)<br />

BTI<br />

Bias Temperature Instability (Instabilida<strong>de</strong> em temperatura e polarização)<br />

CUT<br />

Circuit Un<strong>de</strong>r Test (Circuito em teste)<br />

DVS<br />

<strong>Dynamic</strong> <strong>Voltage</strong> <strong>Scaling</strong> (Optimização da Tensão <strong>de</strong> Alimentação)<br />

FPGA<br />

Field-programmable gate array (Arranjo <strong>de</strong> Portas Programável em Campo)<br />

I2C<br />

Inter-Integrated Circuit (Circuito Inter-integra<strong>do</strong> - barramento série multi-mestre)<br />

ISM<br />

Internal Supply Module (Modulo <strong>de</strong> fornecimento interno)<br />

JTAG<br />

Joint Test Action Group (Grupo <strong>de</strong> Teste <strong>de</strong> Ação Conjunta)<br />

LDO<br />

Low-dropout voltage regulator (regula<strong>do</strong>r <strong>de</strong> tensão com baixa queda <strong>de</strong> tensão)<br />

LUT<br />

Look-Up Table (Tabela <strong>de</strong> referêcia)<br />

MISO<br />

Master Input, Slave Output (Entrada <strong>do</strong> Mestre, Saída <strong>do</strong> Escravo)<br />

MOSI<br />

Master Output, Slave Input (Saída <strong>do</strong> Mestre, Entrada <strong>do</strong> Escravo)<br />

NBTI<br />

Negative Bias Temperature Instability (Instabilida<strong>de</strong> em temperatura e polarização<br />

negativa)<br />

xiii


Lista <strong>de</strong> Acrónimos<br />

PBTI<br />

Positive Bias Temperature Instability (Instabilida<strong>de</strong> em temperatura e polarização positiva)<br />

PMU<br />

Power Management Unit (Unida<strong>de</strong> <strong>de</strong> Gestão <strong>de</strong> Energia)<br />

PVT<br />

PVTA<br />

SoC<br />

Process, power supply <strong>Voltage</strong> and Temperature (Processo <strong>de</strong> fabrico, tensão <strong>de</strong><br />

alimentação e temperatura)<br />

Process, power supply <strong>Voltage</strong>, Temperature and Aging (Processo <strong>de</strong> fabrico, tensão <strong>de</strong><br />

alimentação, temperatura e envelhecimento)<br />

System-on-Chip (sistema-em-um-chip)<br />

SPI<br />

Serial Peripheral Interface (Interface periférica <strong>de</strong> comunicação série)<br />

VHDL<br />

VHSIC Hardware Description Language (Linguagem <strong>de</strong> <strong>de</strong>scrição <strong>de</strong> hardware VHSIC)<br />

VHSIC<br />

Very High Speed Integrated Circuits (Circuito integra<strong>do</strong> <strong>de</strong> muito alta velocida<strong>de</strong>)<br />

xiv


Introdução<br />

Conteú<strong>do</strong><br />

1.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 .<br />

1.2 Principais Contribuições . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 .<br />

1.3 Objectivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 .<br />

1.4 Organização da <strong>Dissertação</strong> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 .<br />

1


1. Introdução<br />

1.1 Motivação<br />

Num mun<strong>do</strong> em que a mobilida<strong>de</strong> tem ganho cada vez mais importância, to<strong>do</strong> o tipo <strong>de</strong><br />

dispositivos portáteis tem si<strong>do</strong> cria<strong>do</strong> <strong>para</strong> satisfazer as necessida<strong>de</strong>s <strong>de</strong> comunicação e<br />

entretenimento. No entanto, as baterias actualmente utilizadas por esses dispositivos têm si<strong>do</strong> o elo<br />

mais fraco na conjugação entre a autonomia e o volume ocupa<strong>do</strong> pelas mesmas. Por outro la<strong>do</strong>, as<br />

preocupações ambientais têm instiga<strong>do</strong> um maior cuida<strong>do</strong> com a eficiência <strong>do</strong>s equipamentos<br />

electrónicos, com o objectivo <strong>de</strong> reduzir os gastos com a energia.<br />

Em tecnologia CMOS, gran<strong>de</strong> parte da energia é consumida no perío<strong>do</strong> <strong>de</strong> comutação <strong>do</strong>s<br />

transístores. A expressão que traduz a potência dissipada por essas comutações é dada pela<br />

expressão (1.1):<br />

P sw = CfV 2 (1.1)<br />

on<strong>de</strong> C representa a capacida<strong>de</strong> média <strong>do</strong>s nós que mudam <strong>de</strong> esta<strong>do</strong>, f é a frequência <strong>de</strong> relógio<br />

<strong>do</strong> circuito e V é a tensão com que é alimenta<strong>do</strong> o núcleo digital.<br />

Esta expressão não é exacta, na medida em que a activida<strong>de</strong> média <strong>do</strong> circuito não é constante<br />

durante a sua operação, mas <strong>de</strong>ixa antever uma <strong>de</strong>pendência quadrática <strong>do</strong> consumo relativamente<br />

à tensão <strong>de</strong> alimentação. Para além das perdas <strong>de</strong> comutação existe também uma corrente <strong>de</strong> fuga<br />

estática nos transístores (subthreshold leakage) que é agravada com a miniaturização <strong>do</strong>s circuitos.<br />

Esta corrente <strong>de</strong> fuga começa a ser preocupante <strong>para</strong> tecnologias abaixo <strong>do</strong>s 90nm e o acréscimo <strong>de</strong><br />

potência <strong>de</strong> perdas é da<strong>do</strong> pela expressão (1.2):<br />

P leak = VI leak<br />

(1.2)<br />

on<strong>de</strong> V é a tensão <strong>de</strong> alimentação e I leak é o somatório da corrente <strong>de</strong> fuga nos transístores.<br />

Outra causa <strong>para</strong> a reduzida optimização no consumo <strong>do</strong>s semicondutores são as variações no<br />

processo <strong>de</strong> fabrico que, <strong>de</strong>vi<strong>do</strong> à sua natureza incerta, obrigam a que a tensão <strong>de</strong> alimentação<br />

atribuída a um da<strong>do</strong> microprocessa<strong>do</strong>r seja suficientemente alta <strong>para</strong> permitir a correcta operação <strong>de</strong><br />

to<strong>do</strong>s os chips fabrica<strong>do</strong>s. Na Figura 1.1 é apresenta<strong>do</strong> um exemplo típico da relação entre a<br />

quantida<strong>de</strong> <strong>de</strong> chips com <strong>de</strong>sempenhos acima e abaixo da média com<strong>para</strong>tivamente com a tensão<br />

necessária ao seu correcto funcionamento.<br />

2


1. Introdução<br />

Figura 1.1 – Distribuição da variação <strong>do</strong> <strong>de</strong>sempenho típica no processo <strong>de</strong> fabrico <strong>de</strong> semicondutores<br />

Estas condições têm dificulta<strong>do</strong> a tarefa <strong>de</strong> encontrar mecanismos que consigam optimizar o<br />

consumo <strong>do</strong>s dispositivos durante o seu tempo <strong>de</strong> utilização. Não só as incertezas no processo <strong>de</strong><br />

fabrico, mas também a <strong>de</strong>gradação <strong>do</strong> seu <strong>de</strong>sempenho <strong>de</strong>vida ao envelhecimento <strong>do</strong>s transístores,<br />

têm si<strong>do</strong> as principais barreiras na hora <strong>de</strong> optimizar a tensão <strong>de</strong> alimentação <strong>do</strong>s circuitos.<br />

Actualmente, a estratégia mais utilizada em microprocessa<strong>do</strong>res passa por tabelar a tensão <strong>de</strong><br />

alimentação <strong>para</strong> diferentes frequências <strong>de</strong> trabalho, reduzin<strong>do</strong> o consumo quan<strong>do</strong> existe menor<br />

activida<strong>de</strong> computacional (Figura 1.2). No entanto, quan<strong>do</strong> o processa<strong>do</strong>r passa à plena carga, a<br />

tensão <strong>de</strong> alimentação e a frequência passam <strong>para</strong> o valor máximo, <strong>de</strong>ixan<strong>do</strong> <strong>de</strong> haver qualquer<br />

benefício <strong>para</strong> o consumo. Exemplos <strong>de</strong>sta abordagem são as tecnologias SpeedStep ® da Intel ® [1] e<br />

PowerNow! da AMD [2].<br />

Figura 1.2 – Meto<strong>do</strong>logia actualmente utilizada nos microprocessa<strong>do</strong>res <strong>para</strong> ajuste <strong>de</strong> tensão<br />

3


1. Introdução<br />

Apesar <strong>de</strong> não disponível comercialmente, existe ainda o sistema Razor da ARM ® [3] que<br />

permite ajustar a tensão <strong>de</strong> alimentação com base na quantida<strong>de</strong> <strong>de</strong> falhas ocorridas durante a<br />

execução <strong>de</strong> tarefas. A correcta operação <strong>do</strong> circuito é assegurada por um mecanismo <strong>de</strong><br />

autocorrecção <strong>de</strong> erros basea<strong>do</strong> num mo<strong>de</strong>lo <strong>de</strong> amostragem dupla (uma com relógio rápi<strong>do</strong> e outra<br />

com relógio lento). Esta solução permite reduções elevadas no consumo, mas necessita que to<strong>do</strong>s<br />

os caminhos críticos sejam refeitos <strong>de</strong> mo<strong>do</strong> a integrar os dispositivos <strong>de</strong> <strong>de</strong>tecção e resolução <strong>de</strong><br />

falhas. No entanto, como esta abordagem interfere no normal fluxo <strong>de</strong> projecto, a sua a<strong>do</strong>pção por<br />

parte da indústria torna-se difícil.<br />

Depois <strong>de</strong>sta análise é possível concluir que se po<strong>de</strong>m obter gran<strong>de</strong>s ganhos <strong>de</strong> energia caso<br />

sejam reduzidas as margens <strong>de</strong> tensão atribuídas <strong>para</strong> compensar incertezas <strong>de</strong>vi<strong>do</strong> ao processo <strong>de</strong><br />

fabrico, temperatura <strong>de</strong> operação e envelhecimento.<br />

1.2 Principais Contribuições<br />

O sensor aqui apresenta<strong>do</strong> surge na sequência <strong>de</strong> estu<strong>do</strong>s sobre o impacto <strong>do</strong> envelhecimento<br />

nos transístores que mostram um aumento <strong>do</strong> tempo <strong>de</strong> propagação <strong>do</strong>s sinais digitais com o<br />

<strong>de</strong>correr <strong>do</strong> tempo. O fenómeno <strong>de</strong> envelhecimento afecta principalmente os transístores tipo P e o<br />

seu impacto nos circuitos digitais foi analisa<strong>do</strong> em [4].<br />

Com o objectivo <strong>de</strong> prever antecipadamente possíveis falhas nos circuitos digitais causadas por<br />

variações no processo <strong>de</strong> fabrico, temperatura e envelhecimento (PVTA), foi <strong>de</strong>senvolvi<strong>do</strong> um sensor<br />

local [5] que verifica junto <strong>do</strong>s principais caminhos críticos a eminência <strong>de</strong> uma falha ocorrer.<br />

Mais tar<strong>de</strong> foi <strong>de</strong>senvolvi<strong>do</strong> um segun<strong>do</strong> sensor [6] <strong>para</strong> avalizar o <strong>de</strong>sempenho global <strong>do</strong><br />

circuito em complemento com o sensor local.<br />

A principal contribuição <strong>de</strong>ste trabalho consiste no <strong>de</strong>senvolvimento <strong>de</strong> um <strong>de</strong>monstra<strong>do</strong>r em<br />

FPGA que coloca em prática uma parte <strong>do</strong> princípio proposto em [6]. Recorren<strong>do</strong> a um circuito com<br />

autoteste, é validada a solução proposta e são quantifica<strong>do</strong>s os ganhos obti<strong>do</strong>s no consumo<br />

energético quan<strong>do</strong> a tensão <strong>de</strong> alimentação é optimizada <strong>de</strong> forma permanente.<br />

4


1. Introdução<br />

1.3 Objectivos<br />

Esta dissertação tem como objectivo validar um processo que permite optimizar, <strong>de</strong> forma<br />

in<strong>de</strong>pen<strong>de</strong>nte (sem interferir no fluxo <strong>de</strong> projecto) e em tempo real, a tensão <strong>de</strong> alimentação nos<br />

circuitos digitais em microelectrónica. Para efectuar esta validação foi cria<strong>do</strong> um protótipo em FPGA<br />

que permitiu obter resulta<strong>do</strong>s experimentais. O sistema sensor e respectivo controlo não provocam<br />

um acréscimo <strong>de</strong> recursos físicos nem <strong>de</strong> consumo significativos quan<strong>do</strong> com<strong>para</strong><strong>do</strong> com o restante<br />

circuito.<br />

Para emular as condições reais <strong>de</strong> funcionamento foi integra<strong>do</strong> um multiplica<strong>do</strong>r com autoteste<br />

que indica qualquer falha que ocorra se o processamento for <strong>de</strong>masia<strong>do</strong> lento. Habilitan<strong>do</strong> e<br />

<strong>de</strong>sabilitan<strong>do</strong> este multiplica<strong>do</strong>r po<strong>de</strong>m ainda efectuar-se testes à fiabilida<strong>de</strong> <strong>do</strong> sensor durante<br />

transitórios <strong>de</strong> carga com diferentes temperaturas.<br />

1.4 Organização da <strong>Dissertação</strong><br />

<br />

<br />

<br />

<br />

<br />

Capitulo 2: Análise e Previsão <strong>do</strong> Envelhecimento – Neste capítulo é realizada uma<br />

análise ao efeito <strong>do</strong> envelhecimento nos transístores tipo P (NBTI) bem como apresentadas<br />

algumas das actuais estratégias <strong>de</strong> optimização <strong>de</strong> energia.<br />

Capitulo 3: Sensor Global – Neste capítulo é apresenta<strong>do</strong> o princípio <strong>de</strong> funcionamento <strong>do</strong><br />

sensor PVTA utiliza<strong>do</strong> na FPGA.<br />

Capitulo 4: Demonstra<strong>do</strong>r FPGA – Neste capítulo são apresenta<strong>do</strong>s os mecanismos<br />

necessários à realização <strong>do</strong> protótipo em FPGA: algoritmo <strong>de</strong> controlo global, modificações<br />

físicas e dispositivos utiliza<strong>do</strong>s.<br />

Capitulo 5: Resulta<strong>do</strong>s Experimentais – Neste capítulo são apresenta<strong>do</strong>s os resulta<strong>do</strong>s<br />

obti<strong>do</strong>s por simulação em Xilinx ® bem como os resulta<strong>do</strong>s práticos <strong>do</strong> funcionamento <strong>do</strong><br />

sensor <strong>para</strong> diferentes temperaturas.<br />

Capitulo 6: Conclusões e Trabalho Futuro – Neste capítulo são discuti<strong>do</strong>s os resulta<strong>do</strong>s<br />

face aos objectivos iniciais e aponta<strong>do</strong>s os objectivos futuros.<br />

5


1. Introdução<br />

6


Análise e Previsão <strong>do</strong><br />

Envelhecimento<br />

Conteú<strong>do</strong><br />

2.1 Envelhecimento e Efeito NBTI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 .<br />

2.2 Ring Oscillator Sensor (IBM ® ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 .<br />

2.3 Sensor <strong>de</strong> envelhecimento da Sun Microsystems ® . . . . . . . . . . . . 9 .<br />

7


2. Análise e Previsão <strong>do</strong> Envelhecimento<br />

2.1 Envelhecimento e Efeito NBTI<br />

Uma das consequências da operação a longo prazo <strong>do</strong>s circuitos digitais é a <strong>de</strong>gradação no<br />

<strong>de</strong>sempenho das portas lógicas <strong>de</strong>vi<strong>do</strong> ao envelhecimento. Esta diminuição <strong>do</strong> <strong>de</strong>sempenho é<br />

provocada pelo aumento da tensão <strong>de</strong> threshold (V th ) nos transístores, que leva à redução na<br />

corrente <strong>de</strong> dreno. O fenómeno <strong>de</strong> envelhecimento po<strong>de</strong> ocorrer tanto em transístores tipo N (PBTI)<br />

como em tipo P (NBTI), no entanto os seus efeitos têm maior relevância nos transístores tipo P [4].<br />

Neste trabalho não será consi<strong>de</strong>ra<strong>do</strong> o PBTI, mas <strong>para</strong> tecnologias inferiores a 40nm o seu efeito já<br />

<strong>de</strong>ve ser consi<strong>de</strong>ra<strong>do</strong> [6]. Frequentemente chegam a ocorrer erros no processamento digital <strong>de</strong>vi<strong>do</strong> a<br />

incumprimentos temporais causa<strong>do</strong>s pelo envelhecimento a longo prazo, sen<strong>do</strong> um <strong>do</strong>s principais<br />

factores que limitam a vida útil <strong>do</strong>s dispositivos.<br />

O fenómeno <strong>do</strong> NBTI surge <strong>de</strong>vi<strong>do</strong> a processos electroquímicos no seio <strong>do</strong>s transístores com o<br />

dióxi<strong>do</strong> <strong>de</strong> silício puro (SiO 2 ) [7]. Estas reacções ocorrem durante a permanência <strong>do</strong> transístor no<br />

esta<strong>do</strong> <strong>de</strong> condução (fase <strong>de</strong> stress com V GS = –V dd ), on<strong>de</strong> <strong>de</strong>vi<strong>do</strong> ao campo eléctrico e às altas<br />

temperaturas são quebradas as ligações químicas entre o silício (Si) e o hidrogénio (H) na zona <strong>de</strong><br />

junção <strong>do</strong> silício com o oxi<strong>do</strong>. O hidrogénio liberta<strong>do</strong> acaba por se <strong>de</strong>slocar em direcção à porta <strong>de</strong><br />

silício policristalino (poly), chegan<strong>do</strong> por vezes a recombinar-se em H 2 (Figura 2.1). Por outro la<strong>do</strong>, o<br />

silício quebra<strong>do</strong> junto ao óxi<strong>do</strong> (Si-) actua como uma armadilha <strong>para</strong> os porta<strong>do</strong>res <strong>do</strong> canal,<br />

reduzin<strong>do</strong> a mobilida<strong>de</strong> e aumentan<strong>do</strong> a tensão <strong>de</strong> limiar (threshold voltage, V th ) <strong>do</strong> transístor.<br />

Figura 2.1 – Difusão <strong>do</strong> Hidrogénio em direcção à poly durante a fase <strong>de</strong> stress<br />

Por outro la<strong>do</strong>, na passagem <strong>do</strong> transístor ao esta<strong>do</strong> <strong>de</strong> corte (fase <strong>de</strong> recuperação com V GS =<br />

0V), o processo é inverti<strong>do</strong> fazen<strong>do</strong> com que o hidrogénio se recombine <strong>de</strong> novo com o silício,<br />

fazen<strong>do</strong> diminuir a variação na tensão <strong>de</strong> limiar <strong>do</strong> transístor. No entanto, nem todas as ligações<br />

quebradas são restabelecidas. Isto provoca uma <strong>de</strong>gradação acumulada <strong>do</strong> V th no transístor, levan<strong>do</strong><br />

à progressiva <strong>de</strong>gradação <strong>do</strong> <strong>de</strong>sempenho das portas lógicas. A longo prazo, o aumento <strong>do</strong> V th fica<br />

<strong>de</strong>pen<strong>de</strong>nte da taxa <strong>de</strong> ruptura das ligações Si-H e <strong>de</strong> recombinações com Si-. Estas, por sua vez<br />

estão <strong>de</strong>pen<strong>de</strong>ntes da probabilida<strong>de</strong> <strong>do</strong> transístor estar na fase <strong>de</strong> stress ou recuperação e <strong>de</strong> outros<br />

parâmetros como a temperatura [8].<br />

8


2. Análise e Previsão <strong>do</strong> Envelhecimento<br />

Na Figura 2.2 é apresenta<strong>do</strong> um exemplo da variação <strong>de</strong> V th na situação <strong>de</strong> igual perío<strong>do</strong> <strong>de</strong><br />

tempo na fase <strong>de</strong> stress e na fase <strong>de</strong> recuperação. Po<strong>de</strong> ver-se que <strong>para</strong> tentar reaver o V th inicial é<br />

necessário um intervalo <strong>de</strong> tempo muito superior ao que foi necessário <strong>para</strong> a <strong>de</strong>gradação ocorrer.<br />

Figura 2.2 – Degradação no V th <strong>de</strong> um transístor PMOS após 50% <strong>do</strong> tempo na fase <strong>de</strong> stress e recuperação<br />

Mo<strong>de</strong>los <strong>de</strong> previsão, bem como resulta<strong>do</strong>s experimentais apontam <strong>para</strong> que o atraso causa<strong>do</strong><br />

pelo NBTI seja in<strong>de</strong>pen<strong>de</strong>nte da frequência, <strong>para</strong> frequências superiores a 100Hz [9] [10]. O maior<br />

problema surge quan<strong>do</strong> transístores num caminho quase crítico permanecem <strong>de</strong>masia<strong>do</strong> tempo na<br />

fase <strong>de</strong> stress, po<strong>de</strong>n<strong>do</strong> nestas circunstâncias, o envelhecimento transformar este caminho num<br />

caminho crítico.<br />

2.2 Ring Oscillator Sensor (IBM ® )<br />

A técnica utilizada pela IBM ® em [11] tira parti<strong>do</strong> <strong>do</strong> comportamento <strong>de</strong> um ou mais oscila<strong>do</strong>res<br />

em anel (ring oscillators) <strong>para</strong> obter uma frequência <strong>de</strong> relógio proporcional a qualquer variação<br />

PVTA (Figura 2.3). Em seguida o sinal <strong>de</strong> relógio obti<strong>do</strong> passa por um divisor <strong>de</strong> frequência e entra<br />

num conta<strong>do</strong>r. O número <strong>de</strong> oscilações registadas por intervalo <strong>de</strong> tempo é analisa<strong>do</strong> periodicamente<br />

por um bloco <strong>de</strong> controlo que intervirá no caso <strong>de</strong> falha iminente. Esta <strong>de</strong>tecção <strong>de</strong> falhas po<strong>de</strong> ser<br />

obtida <strong>de</strong> duas formas: (1) número <strong>de</strong> oscilações registadas ser inferior ao <strong>de</strong> calibração; (2) uma<br />

discrepância significativa entre leituras.<br />

9


2. Análise e Previsão <strong>do</strong> Envelhecimento<br />

Figura 2.3 – Meto<strong>do</strong>logia <strong>do</strong> sensor PVTA da IBM ®<br />

2.3 Sensor <strong>de</strong> envelhecimento da Sun Microsystems ®<br />

O sistema <strong>de</strong>senvolvi<strong>do</strong> pela antiga Sun Microsystems ® [12], adquirida pela Oracle<br />

Corporation ® , baseia-se na polarização <strong>de</strong> diferentes tensões a transístores tipo N e tipo P que irão<br />

alimentar um regula<strong>do</strong>r <strong>de</strong> tensão que por sua vez liga a um oscila<strong>do</strong>r controla<strong>do</strong> por tensão (VCO).<br />

Em seguida o circuito conta<strong>do</strong>r averigua o número <strong>de</strong> oscilações realizadas por intervalo <strong>de</strong> tempo e<br />

com<strong>para</strong>-as com uma referência. Devi<strong>do</strong> ao envelhecimento <strong>do</strong>s transístores coloca<strong>do</strong>s no sensor, a<br />

corrente fornecida ao regula<strong>do</strong>r <strong>de</strong> tensão <strong>do</strong> VCO é menor e por conseguinte o número <strong>de</strong><br />

oscilações contabilizadas diminui. O diagrama <strong>de</strong> funcionamento <strong>do</strong> sensor é apresenta<strong>do</strong> na Figura<br />

2.4, na qual se po<strong>de</strong> ver a existência <strong>de</strong> um multiplexer <strong>para</strong> escolher qual o sensor a avaliar, bem<br />

como <strong>de</strong> uma memória que guarda informações <strong>de</strong> calibração. Após o varrimento <strong>de</strong> to<strong>do</strong>s os<br />

sensores, a diferença verificada entre a contagem <strong>de</strong> calibração e a obtida na realida<strong>de</strong> é enviada a<br />

um sistema <strong>de</strong> controlo.<br />

Figura 2.4 – Sensor <strong>de</strong> Envelhecimento da Sun Microsystems ®<br />

10


Sensor Global<br />

Conteú<strong>do</strong><br />

3.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 . .<br />

3.2 Sensor PVTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 . .<br />

3.3 Temporiza<strong>do</strong>r . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 . .<br />

11


3. Sensor Global<br />

3.1 Introdução<br />

Nesta secção é apresentada a arquitectura <strong>de</strong> um sensor <strong>para</strong> monitorização da <strong>de</strong>gradação <strong>do</strong><br />

<strong>de</strong>sempenho <strong>do</strong>s circuitos digitais resultante <strong>do</strong> envelhecimento a longo prazo. Esta arquitectura vem<br />

no seguimento <strong>de</strong> uma meto<strong>do</strong>logia recentemente <strong>de</strong>senvolvida pelo grupo <strong>de</strong> investigação <strong>do</strong><br />

INESC-ID no âmbito <strong>do</strong> qual este trabalho foi <strong>de</strong>senvolvi<strong>do</strong> e que foi apresentada em [6].<br />

A introdução <strong>de</strong>sta nova topologia <strong>de</strong> sensor surgiu da necessida<strong>de</strong> <strong>de</strong> contornar <strong>do</strong>is gran<strong>de</strong>s<br />

inconvenientes associa<strong>do</strong>s à utilização <strong>de</strong> sensores locais:<br />

<br />

<br />

A necessida<strong>de</strong> <strong>de</strong> suspen<strong>de</strong>r o funcionamento <strong>do</strong> circuito em monitorização no momento<br />

em que é realizada a medição <strong>do</strong> esta<strong>do</strong> <strong>de</strong> <strong>de</strong>gradação. Esta interrupção é tempo <strong>de</strong><br />

processamento <strong>de</strong>sperdiça<strong>do</strong> e rapidamente se po<strong>de</strong>ria chegar à situação em que o tempo<br />

em processamento seria da mesma or<strong>de</strong>m <strong>de</strong> gran<strong>de</strong>za <strong>do</strong> tempo <strong>de</strong> monitorização.<br />

A necessida<strong>de</strong> <strong>de</strong> substituir os flip-flops <strong>do</strong> caminho crítico por outros com a lógica <strong>de</strong><br />

<strong>de</strong>tecção <strong>de</strong> falhas integrada, o que obriga ao projecto e caracterização <strong>de</strong> células<br />

adicionais <strong>para</strong> cada biblioteca digital e interfere com o normal fluxo <strong>de</strong> projecto.<br />

Por outro la<strong>do</strong>, com a utilização <strong>do</strong> Sensor Global aqui apresenta<strong>do</strong>, é possível avaliar em<br />

tempo real a possibilida<strong>de</strong> <strong>de</strong> uma falha ocorrer, através da verificação periódica <strong>do</strong> <strong>de</strong>sempenho<br />

instantâneo <strong>do</strong> circuito em monitorização. Estas informações <strong>de</strong> <strong>de</strong>sempenho são enviadas <strong>para</strong> um<br />

dispositivo <strong>de</strong> Controlo Digital (apresenta<strong>do</strong> no capítulo 4) que faz subir a tensão <strong>de</strong> alimentação<br />

quan<strong>do</strong> o atraso na propagação das portas lógicas <strong>do</strong> sensor aumenta acima <strong>de</strong> um limiar pré-<br />

-<strong>de</strong>fini<strong>do</strong>, ou faz diminuir a tensão <strong>de</strong> alimentação se o <strong>de</strong>sempenho estiver acima <strong>do</strong> necessário.<br />

A implementação <strong>do</strong> Sensor Global é dividida em 2 blocos distintos (Figura 3.1). Um bloco <strong>de</strong><br />

controlo <strong>para</strong> gerar periodicamente os sinais necessários ao funcionamento <strong>do</strong> sensor e outro<br />

conten<strong>do</strong> os dispositivos que actuam como sensores a variações PVTA.<br />

Figura 3.1 – Diagrama simplifica<strong>do</strong> <strong>do</strong> Sensor Global<br />

12


3. Sensor Global<br />

3.2 Sensor PVTA<br />

Num circuito digital, ocorre uma falha quan<strong>do</strong> um sinal que se propaga no caminho crítico não o<br />

consegue percorrer num tempo inferior ao perío<strong>do</strong> <strong>de</strong> relógio. Sen<strong>do</strong> este o problema que se<br />

preten<strong>de</strong> evitar, o funcionamento <strong>do</strong> sensor foi projecta<strong>do</strong> <strong>para</strong> <strong>de</strong>tectar esta situação. Deste mo<strong>do</strong>, o<br />

sensor me<strong>de</strong> o <strong>de</strong>sempenho <strong>do</strong> circuito, emulan<strong>do</strong> o atraso <strong>do</strong> caminho crítico, recorren<strong>do</strong> a um<br />

circuito composto por uma ca<strong>de</strong>ia <strong>de</strong> atraso construída com portas NOR ligadas sequencialmente<br />

(circuito réplica). O motivo pelo qual são utilizadas portas NOR <strong>de</strong>ve-se ao facto <strong>de</strong> estas<br />

envelhecerem mais rapidamente <strong>do</strong> que as restantes portas lógicas. Esta característica garante que<br />

o tempo <strong>de</strong> propagação no sensor será sempre superior ao <strong>do</strong>s potenciais caminhos críticos que<br />

possam surgir <strong>de</strong>vi<strong>do</strong> ao envelhecimento a longo prazo. Publicações anteriores mostram que pelo<br />

facto <strong>do</strong> NBTI ser mais significativo nos transístores PMOS, a <strong>de</strong>gradação <strong>do</strong> tempo <strong>de</strong> atraso é mais<br />

relevante nas transições <strong>do</strong> ‘0’ <strong>para</strong> o ’1’ lógico e que o efeito cascata verifica<strong>do</strong> nos transístores<br />

PMOS das portas NOR contribui fortemente <strong>para</strong> o aumento <strong>do</strong> tempo <strong>de</strong> atraso da porta lógica com<br />

o seu envelhecimento a longo prazo [13] [14].<br />

No entanto, como foi referi<strong>do</strong> anteriormente, a activida<strong>de</strong> lógica origina regeneração e <strong>para</strong><br />

garantir o pior cenário <strong>de</strong> envelhecimento no circuito réplica foi necessário impor <strong>do</strong>is mo<strong>do</strong>s <strong>de</strong><br />

funcionamento ao sensor. Assim, no intervalo que <strong>de</strong>corre entre as verificações <strong>de</strong> <strong>de</strong>sempenho, o<br />

sensor passa ao Mo<strong>do</strong> <strong>de</strong> Envelhecimento (Aging Mo<strong>de</strong>), e no momento da verificação, o sensor<br />

passa ao Mo<strong>do</strong> <strong>de</strong> Teste (Test Mo<strong>de</strong>).<br />

Na Figura 3.2 po<strong>de</strong> ver-se o esquema <strong>de</strong> ligações <strong>de</strong> uma das portas NOR presentes na ca<strong>de</strong>ia<br />

<strong>de</strong> atraso. O sinal aging é comum a todas as portas NOR e o seu valor lógico <strong>de</strong>fine qual o mo<strong>do</strong> <strong>de</strong><br />

funcionamento em que o sensor se encontra. Por outro la<strong>do</strong>, o barramento test_data assegura a<br />

ligação série entre as portas NOR da ca<strong>de</strong>ia <strong>de</strong> atraso. De referir que na primeira porta NOR da<br />

ca<strong>de</strong>ia o sinal test_data(0) correspon<strong>de</strong> ao sinal edge, um impulso usa<strong>do</strong> <strong>para</strong> avaliar o tempo <strong>de</strong><br />

propagação no sensor.<br />

Figura 3.2 – Esquema <strong>de</strong> uma porta lógica NOR utilizada na ca<strong>de</strong>ia <strong>de</strong> atraso<br />

13


3. Sensor Global<br />

3.2.1 Mo<strong>do</strong> <strong>de</strong> Envelhecimento<br />

A entrada <strong>do</strong> sensor em Mo<strong>do</strong> <strong>de</strong> Envelhecimento ocorre quan<strong>do</strong> o sinal aging é força<strong>do</strong> a ‘1’<br />

pelo bloco Temporiza<strong>do</strong>r. Durante este mo<strong>do</strong> os sinais edge e clkgen permanecem inaltera<strong>do</strong>s no<br />

valor lógico ‘0’. Na Figura 3.3 po<strong>de</strong> ver-se que esta configuração provoca o bloqueio <strong>de</strong> V dd através<br />

<strong>de</strong> P2 ao mesmo tempo que força gnd na saída por meio <strong>de</strong> N2. Deste mo<strong>do</strong>, o sinal test_data<br />

propaga<strong>do</strong> a to<strong>do</strong>s os transístores P1 e N1 é ‘0’, o que força os transístores P1 a envelhecer (fase <strong>de</strong><br />

stress).<br />

Figura 3.3 – Esta<strong>do</strong> <strong>do</strong>s transístores das portas NOR no Mo<strong>do</strong> <strong>de</strong> Envelhecimento<br />

Isto permite concluir que a <strong>de</strong>gradação temporal por envelhecimento observada na ca<strong>de</strong>ia <strong>de</strong><br />

atraso será apenas da responsabilida<strong>de</strong> <strong>do</strong>s transístores P1, uma vez que os transístores P2 estão<br />

em mo<strong>do</strong> <strong>de</strong> recuperação quase to<strong>do</strong> o tempo. Por este motivo, e <strong>para</strong> o correcto funcionamento <strong>do</strong><br />

sensor, é importante que a or<strong>de</strong>m <strong>de</strong> ligação das entradas das portas NOR seja respeitada, uma vez<br />

que durante a fase <strong>de</strong> stress o fenómeno <strong>de</strong> envelhecimento só acontece nos transístores que estão<br />

situa<strong>do</strong>s junto à tensão <strong>de</strong> alimentação.<br />

14


3. Sensor Global<br />

3.2.2 Mo<strong>do</strong> <strong>de</strong> Teste<br />

A mudança <strong>para</strong> o Mo<strong>do</strong> <strong>de</strong> Teste ocorre quan<strong>do</strong> o sinal aging transita <strong>para</strong> ‘0’. Esta alteração<br />

coloca o transístor P2 em condução e o N2 ao corte, fazen<strong>do</strong> com que a saída fique <strong>de</strong>pen<strong>de</strong>nte <strong>do</strong><br />

sinal test_data coloca<strong>do</strong> na entrada. Na Figura 3.4 po<strong>de</strong> ver-se que a nova configuração das portas<br />

NOR reflecte o comportamento lógico <strong>de</strong> um inversor, permitin<strong>do</strong> agora a propagação <strong>de</strong> qualquer<br />

sinal que seja coloca<strong>do</strong> no início da ca<strong>de</strong>ia.<br />

Figura 3.4 – Esta<strong>do</strong> <strong>do</strong>s transístores das portas NOR no Mo<strong>do</strong> <strong>de</strong> Teste<br />

De referir que durante o perío<strong>do</strong> em que ocorre o teste, os transístores P1 passam algum <strong>do</strong><br />

tempo na fase <strong>de</strong> regeneração. No entanto, como o intervalo entre verificações consecutivas andará<br />

sempre acima das centenas <strong>de</strong> ciclos <strong>de</strong> relógio, a duração <strong>do</strong> teste não <strong>de</strong>ve impedir o sensor <strong>de</strong><br />

envelhecer mais <strong>do</strong> que o restante circuito.<br />

3.2.3 Detecção<br />

Uma vez activa a ca<strong>de</strong>ia, é necessário implementar um mecanismo capaz <strong>de</strong> medir<br />

quantitativamente o atraso provoca<strong>do</strong> pelo circuito réplica. A abordagem utilizada baseia-se no<br />

princípio sample-and-hold <strong>para</strong> registar o esta<strong>do</strong> das portas NOR num da<strong>do</strong> instante <strong>do</strong> teste,<br />

utilizan<strong>do</strong> <strong>para</strong> o efeito flip-flops tipo D coloca<strong>do</strong>s à saída das portas NOR. Ten<strong>do</strong> em conta que<br />

durante o teste as portas NOR têm o comportamento <strong>de</strong> inversores, po<strong>de</strong> obter-se uma leitura <strong>do</strong> tipo<br />

código termómetro extrain<strong>do</strong> <strong>de</strong> forma intercalar as saídas ̅ ou <strong>do</strong>s flip-flops. A utilização <strong>de</strong>ste<br />

formato justifica-se com a sua fácil <strong>obtenção</strong> e pelo facto <strong>de</strong> permitir ao projectista usar diferentes<br />

formas <strong>de</strong> manipular a informação <strong>do</strong> sensor com base no algoritmo <strong>de</strong> controlo.<br />

15


3. Sensor Global<br />

A Figura 3.5 mostra o esquema eléctrico final <strong>do</strong> Sensor PVTA. Face a versões anteriores, como<br />

a proposta por J. Semião et al. [6], a versão proposta nesta dissertação apresenta algumas<br />

alterações na forma como são registadas as saídas das portas NOR. On<strong>de</strong> anteriormente existia<br />

uma báscula (latch), um elemento <strong>de</strong> atraso e um <strong>de</strong>tector <strong>de</strong> estabilida<strong>de</strong> (L+DE+SC), existe agora<br />

apenas um flip-flop tipo D. Esta substituição visa tornar o sensor compatível com células digitais<br />

normalizadas ten<strong>do</strong> em conta que a meto<strong>do</strong>logia aqui apresentada não requer a utilização <strong>de</strong><br />

sensores locais.<br />

Figura 3.5 – Esquema <strong>de</strong>talha<strong>do</strong> <strong>do</strong> Sensor PVTA<br />

O mo<strong>do</strong> <strong>de</strong> teste po<strong>de</strong> ainda ser divi<strong>do</strong> em 3 submo<strong>do</strong>s (Figura 3.6):<br />

<br />

<br />

<br />

Inicialização – perío<strong>do</strong> <strong>de</strong> espera <strong>para</strong> permitir que a ca<strong>de</strong>ia <strong>de</strong> portas NOR estabilize após<br />

a transição <strong>para</strong> ‘0’ <strong>do</strong> sinal aging.<br />

Propagação – intervalo <strong>de</strong> tempo em que o sinal edge é propaga<strong>do</strong> na ca<strong>de</strong>ia <strong>de</strong> atraso.<br />

Captura – instante em que é efectuada a captura <strong>do</strong> esta<strong>do</strong> das portas NOR pelos flip-flops.<br />

Figura 3.6 – Diagrama temporal comportamental <strong>do</strong>s principais sinais <strong>do</strong> Sensor Global<br />

16


3. Sensor Global<br />

Os intervalos <strong>de</strong> tempo atribuí<strong>do</strong>s a cada submo<strong>do</strong> são basea<strong>do</strong>s na premissa <strong>de</strong> que após o<br />

perío<strong>do</strong> correspon<strong>de</strong>nte a 1 ciclo <strong>de</strong> relógio toda a lógica num circuito digital <strong>de</strong>verá estar<br />

estabilizada <strong>para</strong> não ocorrerem erros. Por esta razão a captura ocorre 1 ciclo <strong>de</strong> relógio após a<br />

propagação <strong>do</strong> impulso edge e é atribuí<strong>do</strong> 1 ciclo <strong>de</strong> relógio mais uma margem <strong>de</strong> meio perío<strong>do</strong> na<br />

inicialização <strong>de</strong> forma a garantir que a ca<strong>de</strong>ia se encontra estável mesmo quan<strong>do</strong> o circuito tem um<br />

comportamento <strong>de</strong>masia<strong>do</strong> lento.<br />

3.2.4 Implementação Prática<br />

Uma utilização posterior da informação <strong>do</strong> Sensor Global <strong>para</strong> optimização da tensão <strong>de</strong><br />

alimentação requer a calibração prévia <strong>do</strong> sensor. Esta calibração visa <strong>de</strong>terminar quantas portas<br />

NOR são necessárias <strong>para</strong> igualar o atraso <strong>do</strong> caminho crítico a vigiar mais uma margem <strong>de</strong><br />

segurança. Uma vez <strong>de</strong>terminada a calibração, esta <strong>de</strong>verá servir <strong>para</strong> to<strong>do</strong>s os chips <strong>de</strong> um mesmo<br />

circuito. As variações no processo <strong>de</strong> fabrico <strong>de</strong>verão ser compensadas automaticamente <strong>de</strong>vi<strong>do</strong> ao<br />

aumento ou diminuição no <strong>de</strong>sempenho. De forma genérica, o princípio e topologia <strong>do</strong> sensor não<br />

<strong>de</strong>pen<strong>de</strong>m <strong>do</strong> circuito a monitorizar, da frequência <strong>de</strong> relógio, nem da tecnologia em que está<br />

implementa<strong>do</strong>. No entanto a sua implementação vai <strong>de</strong>pen<strong>de</strong>r <strong>de</strong> caso <strong>para</strong> caso. Em particular, o<br />

número <strong>de</strong> portas lógicas utilizadas <strong>para</strong> representar o circuito réplica irá <strong>de</strong>pen<strong>de</strong>r da dimensão <strong>do</strong><br />

caminho crítico, bem como da tecnologia <strong>de</strong> fabrico.<br />

Com o objectivo <strong>de</strong> caracterizar o atraso gera<strong>do</strong> pela porta NOR foram efectuadas simulações<br />

em tecnologia TSMC 65nm. Estas simulações mostram a <strong>de</strong>pendência <strong>do</strong> atraso da porta NOR <strong>para</strong><br />

diferentes tensões <strong>de</strong> alimentação e diferentes temperaturas. Os resulta<strong>do</strong>s obti<strong>do</strong>s dizem respeito a<br />

simulações ao nível <strong>do</strong> esquema eléctrico realizadas com dispositivos cujas dimensões se<br />

apresentam na Tabela 3.1 e correspon<strong>de</strong>m à porta NOR padrão.<br />

Transístor W (nm) L (nm)<br />

P1, P2 460 80<br />

N1, N2 170 80<br />

Tabela 3.1 – Dimensão <strong>do</strong>s transístores PMOS e NMOS utiliza<strong>do</strong>s <strong>para</strong> simular o atraso da porta NOR<br />

Na Figura 3.7 é apresenta<strong>do</strong> o gráfico da variação no atraso da porta NOR com a tensão <strong>de</strong><br />

alimentação <strong>para</strong> três cenários diferentes. O caso típico correspon<strong>de</strong> à operação à temperatura<br />

ambiente (25ºC), no pior caso à temperatura <strong>de</strong> 125ºC e no melhor caso à temperatura <strong>de</strong> -40ºC.<br />

17


Atraso porta NOR (ps)<br />

Atraso porta NOR (ps)<br />

3. Sensor Global<br />

4.50E+01<br />

4.00E+01<br />

3.50E+01<br />

3.00E+01<br />

2.50E+01<br />

2.00E+01<br />

1.50E+01<br />

1.00E+01<br />

typical T = 25ºC<br />

schematic<br />

Worst T = 125ºC Corner<br />

Schematic<br />

Best T = Corner -40ºC<br />

Schematic<br />

5.00E+00<br />

0.00E+00<br />

1.05 1.15 1.25 1.35<br />

Tensão <strong>de</strong> Alimentação (V)<br />

Figura 3.7 – Atraso da porta NOR <strong>para</strong> diferentes tensões <strong>de</strong> alimentação<br />

Na Figura 3.8 é apresenta<strong>do</strong> o gráfico da variação no atraso da porta NOR com a temperatura e<br />

também <strong>para</strong> três cenários diferentes. O caso típico correspon<strong>de</strong> a operar com a tensão <strong>de</strong><br />

alimentação a 1,2V, no pior caso a 1,08V e no melhor caso a 1,32V.<br />

5.00E+01<br />

4.50E+01<br />

4.00E+01<br />

3.50E+01<br />

3.00E+01<br />

2.50E+01<br />

2.00E+01<br />

1.50E+01<br />

1.00E+01<br />

5.00E+00<br />

0.00E+00<br />

-60 -30 0 30 60 90 120 150 180<br />

Temperatura (°C)<br />

typical V dd = 1,2V<br />

schematic<br />

Worst V dd = Corner 1,08V<br />

Schematic<br />

Best V dd<br />

Corner = 1,32V<br />

Schematic<br />

Figura 3.8 - Atraso da porta NOR <strong>para</strong> diferentes temperaturas<br />

Das simulações efectuadas po<strong>de</strong> ver-se que o atraso na porta NOR aumenta significativamente<br />

com a diminuição da tensão <strong>de</strong> alimentação. Por este motivo <strong>de</strong>ve existir especial cuida<strong>do</strong> com as<br />

transições <strong>de</strong> tensão durante o processo <strong>de</strong> optimização. Para que não ocorram falhas, <strong>de</strong>ve<br />

garantir-se que a transição <strong>para</strong> uma tensão inferior não tem <strong>de</strong>masia<strong>do</strong> impacto no <strong>de</strong>sempenho.<br />

Esta margem <strong>de</strong> segurança <strong>de</strong>ve ser consi<strong>de</strong>rada no momento da calibração e é tanto menor quanto<br />

maior for a resolução na programação da tensão na PMU.<br />

18


3. Sensor Global<br />

Por outro la<strong>do</strong>, apenas gran<strong>de</strong>s variações na temperatura <strong>do</strong> circuito fazem aumentar<br />

significativamente o atraso. Assim, apenas é necessário garantir que o intervalo <strong>de</strong> tempo entre as<br />

verificações <strong>de</strong> <strong>de</strong>sempenho não é <strong>de</strong>masia<strong>do</strong> eleva<strong>do</strong> <strong>para</strong> causar erros quan<strong>do</strong> o gradiente <strong>de</strong><br />

temperatura é máximo.<br />

Depen<strong>de</strong>n<strong>do</strong> da tecnologia na qual é projecta<strong>do</strong> o sensor, bem como da arquitectura <strong>do</strong> circuito<br />

em monitorização, a distribuição <strong>do</strong>s flip-flops pelo circuito réplica po<strong>de</strong> ser feita <strong>de</strong> mo<strong>do</strong> a minimizar<br />

os recursos utiliza<strong>do</strong>s. Tipicamente, os microprocessa<strong>do</strong>res estão dividi<strong>do</strong>s em blocos funcionais que<br />

po<strong>de</strong>m ser <strong>de</strong>sliga<strong>do</strong>s consoante o tipo <strong>de</strong> operações a realizar. Diferentes blocos em funcionamento<br />

significam diferentes caminhos críticos a ter em consi<strong>de</strong>ração. Uma melhor optimização <strong>do</strong> consumo<br />

po<strong>de</strong> ser feita ten<strong>do</strong> em conta os caminhos críticos activos num <strong>de</strong>termina<strong>do</strong> instante. Deste mo<strong>do</strong>,<br />

po<strong>de</strong>m colocar-se apenas flip-flops em torno das zonas correspon<strong>de</strong>ntes ao atraso <strong>do</strong>s caminhos<br />

críticos <strong>de</strong> cada bloco. Um exemplo <strong>de</strong>sta abordagem é ilustra<strong>do</strong> na Figura 3.9.<br />

Figura 3.9 – Exemplo <strong>de</strong> optimização no Sensor PVTA<br />

Esta abordagem permite excluir a análise das primeiras NOR uma vez que estão muito distantes<br />

<strong>do</strong> atraso <strong>do</strong> caminho crítico, permitin<strong>do</strong> reduzir a complexida<strong>de</strong> <strong>do</strong> controlo necessária <strong>para</strong><br />

processar a informação. Consoante o nível <strong>de</strong> sensibilida<strong>de</strong> pretendi<strong>do</strong>, o espaçamento entre flip-<br />

-flops consecutivos po<strong>de</strong> ser <strong>de</strong> várias portas NOR. Este aumento <strong>do</strong> atraso entre <strong>do</strong>is flip-flops<br />

consecutivos limita as situações em que o código termómetro oscila entre <strong>do</strong>is valores <strong>de</strong>vi<strong>do</strong> a<br />

diferenças mínimas no atraso da ca<strong>de</strong>ia. É importante frisar que a não introdução <strong>de</strong> flip-flops em<br />

todas as portas NOR leva a que o tempo <strong>de</strong> atraso no circuito réplica <strong>de</strong>ixe <strong>de</strong> ser uniforme, sen<strong>do</strong><br />

maior nas portas NOR que têm a capacida<strong>de</strong> no nó <strong>de</strong> saída aumentada pela ligação <strong>do</strong> flip-flop. Por<br />

esse motivo po<strong>de</strong>m ser coloca<strong>do</strong>s inversores com impedância <strong>de</strong> entrada semelhante à <strong>do</strong>s flip-flops<br />

nas portas NOR excluídas.<br />

19


3. Sensor Global<br />

3.3 Temporiza<strong>do</strong>r<br />

Devi<strong>do</strong> ao funcionamento periódico <strong>do</strong> Sensor Global, <strong>para</strong> implementar o bloco Temporiza<strong>do</strong>r<br />

são necessários <strong>do</strong>is subsistemas. O primeiro é um divisor <strong>de</strong> relógio <strong>para</strong> gerar a base <strong>de</strong> tempo<br />

<strong>para</strong> o accionamento <strong>do</strong> sensor. O segun<strong>do</strong> dispositivo é uma máquina <strong>de</strong> esta<strong>do</strong>s que é accionada<br />

pelo divisor <strong>de</strong> relógio e cujo objectivo é gerar os sinais <strong>de</strong> controlo necessários aos três submo<strong>do</strong>s<br />

presentes no Mo<strong>do</strong> <strong>de</strong> Teste <strong>do</strong> Sensor PVTA.<br />

3.3.1 Divisor <strong>de</strong> Relógio<br />

Existem alguns méto<strong>do</strong>s <strong>para</strong> implementar divisores <strong>do</strong> sinal <strong>de</strong> relógio. No caso específico<br />

<strong>de</strong>ste trabalho interessa uma solução simples e <strong>de</strong> consumo reduzi<strong>do</strong>, mas que permita alguma<br />

flexibilida<strong>de</strong> na alteração da base <strong>de</strong> tempo. A solução que mais se aproxima <strong>do</strong>s objectivos<br />

pretendi<strong>do</strong>s é o conta<strong>do</strong>r assíncrono. Esta topologia <strong>de</strong> conta<strong>do</strong>r tem a vantagem <strong>de</strong> usar apenas<br />

flip-flops na sua implementação, com o benefício <strong>de</strong> consumir menos energia <strong>do</strong> que o conta<strong>do</strong>r<br />

síncrono.<br />

O funcionamento <strong>de</strong>ste conta<strong>do</strong>r baseia-se na realimentação negativa <strong>para</strong> forçar a alternância<br />

<strong>de</strong> esta<strong>do</strong>s em ciclos <strong>de</strong> relógio consecutivos. No exemplo da Figura 3.10 po<strong>de</strong> ver-se que a cada<br />

novo ciclo <strong>de</strong> relógio o flip-flop coloca na saída o esta<strong>do</strong> oposto ao esta<strong>do</strong> anterior. O sinal obti<strong>do</strong> tem<br />

assim um perío<strong>do</strong> que é o <strong>do</strong>bro <strong>do</strong> sinal <strong>de</strong> entrada.<br />

Figura 3.10 – Princípio <strong>de</strong> funcionamento <strong>do</strong> conta<strong>do</strong>r assíncrono<br />

Deste mo<strong>do</strong>, ten<strong>do</strong> em conta que cada flip-flop implementa uma divisão por <strong>do</strong>is relativamente<br />

ao seu sinal <strong>de</strong> relógio, po<strong>de</strong>m obter-se sucessivas divisões colocan<strong>do</strong> vários flip-flops enca<strong>de</strong>a<strong>do</strong>s<br />

ligan<strong>do</strong> apenas as entradas <strong>de</strong> relógio à saída <strong>do</strong> flip-flop anterior. Esta meto<strong>do</strong>logia tem o nome <strong>de</strong><br />

ripple counter e a frequência que é obtida na saída <strong>de</strong> cada flip-flop é dada pela expressão (3.1):<br />

f = f lk<br />

(3.1)<br />

on<strong>de</strong><br />

é o numero <strong>de</strong> flip-flops a montante na ca<strong>de</strong>ia.<br />

20


3. Sensor Global<br />

Na Figura 3.11 po<strong>de</strong>r ver-se um exemplo da implementação <strong>do</strong> ripple counter. Neste caso<br />

preten<strong>de</strong>-se obter um conta<strong>do</strong>r crescente e por esse motivo é necessário que as entradas <strong>de</strong> relógio<br />

<strong>do</strong>s flip-flops seguintes tenham origem na saída Q negada <strong>do</strong> flip-flop anterior. Caso contrário o<br />

conta<strong>do</strong>r seria <strong>de</strong>crescente.<br />

Figura 3.11 – Esquema lógico e diagrama temporal <strong>de</strong> um Ripple Counter crescente <strong>de</strong> 4 bits<br />

Na figura anterior as transições <strong>de</strong> esta<strong>do</strong> a partir <strong>do</strong> segun<strong>do</strong> flip-flop surgem no flanco<br />

negativo. Isto <strong>de</strong>ve-se ao facto <strong>do</strong> diagrama temporal mostrar apenas as saídas Q e não as saídas<br />

que servem <strong>de</strong> relógio ao flip-flop seguinte. Neste conta<strong>do</strong>r to<strong>do</strong>s os flip-flops são <strong>do</strong> tipo edge trigger<br />

positivo.<br />

De referir que este conta<strong>do</strong>r tem o inconveniente das saídas não serem totalmente síncronas<br />

entre si. Isto acontece porque os flip-flops têm entradas <strong>de</strong> relógios in<strong>de</strong>pen<strong>de</strong>ntes cujos atrasos<br />

<strong>de</strong>pen<strong>de</strong>m <strong>do</strong>s flip-flops anteriores. Por este motivo, ao usar o relógio dividi<strong>do</strong> <strong>para</strong> actuar a máquina<br />

<strong>de</strong> esta<strong>do</strong>s <strong>do</strong> sensor <strong>de</strong>ve colocar-se um registo sincroniza<strong>do</strong> com o relógio <strong>para</strong> prevenir violações<br />

temporais. Deste mo<strong>do</strong>, <strong>de</strong>ixa <strong>de</strong> existir qualquer limitação na utilização <strong>de</strong>ste conta<strong>do</strong>r, po<strong>de</strong>n<strong>do</strong><br />

assim tirar-se parti<strong>do</strong> da menor área e <strong>do</strong> menor consumo utiliza<strong>do</strong>s.<br />

21


3. Sensor Global<br />

O número <strong>de</strong> flip-flops a utilizar <strong>de</strong>pen<strong>de</strong> da frequência <strong>de</strong> relógio e <strong>do</strong> tempo que o controlo<br />

externo <strong>de</strong>mora a executar as operações <strong>de</strong> subida e <strong>de</strong>scida da tensão <strong>do</strong> circuito. O intervalo entre<br />

verificações po<strong>de</strong> ser estático ou dinâmico <strong>de</strong>pen<strong>de</strong>n<strong>do</strong> das necessida<strong>de</strong>s. Caso se pretenda usar<br />

intervalos dinâmicos apenas é necessário adicionar um multiplexer liga<strong>do</strong> às saídas <strong>de</strong>sejadas <strong>para</strong><br />

que externamente possa ser seleccionada qual a saída <strong>do</strong> conta<strong>do</strong>r a utilizar como base <strong>de</strong> tempo.<br />

O esquema final <strong>do</strong> divisor <strong>de</strong> relógio implementa<strong>do</strong> é apresenta<strong>do</strong> na Figura 3.12. Tmonit são<br />

os bits <strong>de</strong> selecção externa <strong>do</strong> factor <strong>de</strong> divisão e clkdiv o sinal resultante da divisão <strong>do</strong> relógio. Com<br />

o objectivo <strong>de</strong> minimizar o atraso na lógica assíncrona e <strong>de</strong>sse mo<strong>do</strong> evitar a utilização <strong>de</strong><br />

dispositivos extra <strong>de</strong> sincronização na máquina <strong>de</strong> esta<strong>do</strong>s, o relógio <strong>do</strong> registo <strong>de</strong> saída foi<br />

sincroniza<strong>do</strong> com o flanco <strong>de</strong>scen<strong>de</strong>nte <strong>para</strong> <strong>de</strong>sse mo<strong>do</strong> garantir que os interruptores <strong>de</strong> relógio<br />

existentes se encontram activos imediatamente antes <strong>do</strong> flanco <strong>de</strong> relógio. Caso contrário, o primeiro<br />

ciclo <strong>de</strong> relógio à saída <strong>do</strong> interruptor teria um perío<strong>do</strong> inferior ao <strong>do</strong> relógio global e po<strong>de</strong>ria causar<br />

problemas <strong>de</strong> estabilida<strong>de</strong>.<br />

Figura 3.12 – Divisor <strong>de</strong> relógio implementa<strong>do</strong><br />

3.3.2 Máquina <strong>de</strong> Esta<strong>do</strong>s<br />

Como o Sensor Global é sensível à temporização <strong>do</strong>s sinais e é relevante o seu consumo <strong>de</strong><br />

recursos, a máquina <strong>de</strong> esta<strong>do</strong>s utilizada foi <strong>de</strong>senvolvida ao nível da porta lógica <strong>para</strong> assegurar a<br />

sua optimização. A sua implementação é feita através <strong>de</strong> um módulo assíncrono, que ao entrar em<br />

funcionamento activa um segun<strong>do</strong> módulo síncrono. Este mecanismo foi cria<strong>do</strong> <strong>para</strong> permitir que a<br />

sequência <strong>de</strong> teste seja executada apenas uma vez durante o flanco positivo <strong>do</strong> sinal clkdiv. O<br />

princípio <strong>de</strong> funcionamento baseia-se na utilização <strong>de</strong> um elemento <strong>de</strong> memória, neste caso uma<br />

báscula (latch), que regista o fim da sequência <strong>de</strong> teste e evita <strong>de</strong>sse mo<strong>do</strong> a sua repetição. Na<br />

22


3. Sensor Global<br />

Figura 3.13 po<strong>de</strong> ver-se que durante o flanco negativo <strong>do</strong> sinal clkdiv a latch é inicializa<strong>do</strong> a ‘1’ (set<br />

efectua<strong>do</strong> através <strong>do</strong> sinal clr). Deste mo<strong>do</strong>, quan<strong>do</strong> o sinal clkdiv regressa a ‘1’ o sinal start activa o<br />

segun<strong>do</strong> módulo <strong>de</strong> controlo, ao mesmo tempo que o sinal aging retira o sensor <strong>do</strong> mo<strong>do</strong> <strong>de</strong><br />

envelhecimento, dan<strong>do</strong> assim início à sequência <strong>de</strong> teste. Com este mecanismo, a sequência <strong>de</strong><br />

teste termina no instante em que o segun<strong>do</strong> módulo fornece o sinal<br />

à latch.<br />

Figura 3.13 – Módulo assíncrono da máquina <strong>de</strong> esta<strong>do</strong>s<br />

Na composição <strong>do</strong> segun<strong>do</strong> módulo está um conta<strong>do</strong>r síncrono e restante lógica combinatória<br />

necessária à geração <strong>do</strong>s sinais <strong>de</strong> controlo <strong>do</strong> sensor. O objectivo <strong>de</strong>ste conta<strong>do</strong>r é fornecer os<br />

instantes <strong>de</strong> tempo nos quais irão ser realiza<strong>do</strong>s os três submo<strong>do</strong>s inerentes ao Mo<strong>do</strong> <strong>de</strong> Teste. Para<br />

o fazer, é apenas necessário um conta<strong>do</strong>r <strong>de</strong> 2 bits. Esta solução permite implementar os três<br />

submo<strong>do</strong>s mais um esta<strong>do</strong> <strong>de</strong> espera. O esquema lógico <strong>do</strong> segun<strong>do</strong> módulo é apresenta<strong>do</strong> na<br />

Figura 3.14, no qual se po<strong>de</strong>m ver <strong>do</strong>is registos e a porta XOR que compõem o conta<strong>do</strong>r crescente,<br />

bem como a restante lógica combinatória <strong>de</strong> controlo.<br />

Figura 3.14 – Módulo síncrono da máquina <strong>de</strong> esta<strong>do</strong>s<br />

23


3. Sensor Global<br />

No dimensionamento <strong>de</strong>ste módulo existiu uma especial atenção <strong>para</strong> que os sinais edge e<br />

clkgen distassem exactamente um perío<strong>do</strong> <strong>de</strong> relógio. Para conseguir esse objectivo é importante<br />

que a lógica após os registos seja o mais semelhante possível no que toca ao número <strong>de</strong> portas<br />

lógicas e respectiva <strong>de</strong>pendência. Só <strong>de</strong>ste mo<strong>do</strong> é possível garantir que tempos <strong>de</strong> atraso em<br />

ambos os sinais são semelhantes. Como o sinal edge é inicia<strong>do</strong> primeiro, a <strong>de</strong>pendência sobre o<br />

sinal clkgen não existe porque nesse instante o sinal é estático. Desse mo<strong>do</strong> o sinal edge apenas<br />

está <strong>de</strong>pen<strong>de</strong>nte <strong>do</strong> atraso da porta XOR, e o sinal clkgen <strong>de</strong> uma porta AND. A lógica implementada<br />

garante não só um tempo <strong>de</strong> atraso semelhante na ascensão, como garante também que o sinal<br />

edge apenas é força<strong>do</strong> a ’0’ <strong>de</strong>pois <strong>do</strong> sinal clkgen ser inicia<strong>do</strong>. Desta forma, assegura-se que a<br />

captura efectuada pelos flip-flops da ca<strong>de</strong>ia <strong>de</strong> atraso não sofre qualquer perturbação pelo facto <strong>do</strong><br />

sinal edge transitar <strong>para</strong> ‘0’ no instante <strong>de</strong> captura.<br />

É importante sublinhar que pelo facto <strong>do</strong> sinal <strong>de</strong> relógio forneci<strong>do</strong> aos registos estar bloquea<strong>do</strong><br />

durante o processo <strong>de</strong> envelhecimento por um interruptor <strong>de</strong> relógio (porta AND à esquerda), os<br />

registos têm <strong>de</strong> permitir a inicialização assíncrona (clear ou clr).<br />

3.3.3 Diagrama <strong>de</strong> Esta<strong>do</strong>s<br />

O diagrama <strong>de</strong> esta<strong>do</strong>s correspon<strong>de</strong>nte ao funcionamento <strong>do</strong> Temporiza<strong>do</strong>r é exibi<strong>do</strong> na Figura<br />

3.15. Entre aspas encontra-se o código actual <strong>do</strong> conta<strong>do</strong>r <strong>de</strong> 2 bits. Uma vez que a entrada no<br />

esta<strong>do</strong> <strong>de</strong> Inicialização 1 ocorre meio perío<strong>do</strong> antes <strong>do</strong> relógio chegar ao conta<strong>do</strong>r, no diagrama final<br />

surgem <strong>do</strong>is esta<strong>do</strong>s <strong>para</strong> o submo<strong>do</strong> <strong>de</strong> inicialização. O motivo pelo qual isto acontece é <strong>para</strong> dar<br />

uma margem <strong>de</strong> 50% ao sensor <strong>para</strong> estabilizar a ca<strong>de</strong>ia <strong>de</strong> atraso após a alteração no sinal aging.<br />

Figura 3.15 – Diagrama <strong>de</strong> esta<strong>do</strong>s <strong>do</strong> Temporiza<strong>do</strong>r<br />

24


3. Sensor Global<br />

No diagrama temporal da Figura 3.16 po<strong>de</strong> ver-se que no instante em que o clkdiv vem a ‘1’, o<br />

sensor entra no Mo<strong>do</strong> <strong>de</strong> Teste assincronamente (Inicialização 1). Meio perío<strong>do</strong> <strong>de</strong>pois é activa<strong>do</strong> o<br />

segun<strong>do</strong> módulo <strong>de</strong> controlo no flanco ascen<strong>de</strong>nte <strong>de</strong> relógio, fazen<strong>do</strong> avançar <strong>de</strong> forma síncrona a<br />

máquina <strong>de</strong> esta<strong>do</strong>s <strong>para</strong> o esta<strong>do</strong> Inicialização 2. No flanco <strong>de</strong> relógio seguinte é forneci<strong>do</strong> o sinal<br />

edge à ca<strong>de</strong>ia <strong>de</strong> atraso (Propagação) e no perío<strong>do</strong> seguinte o sinal clkgen (Captura). Mais tar<strong>de</strong>, no<br />

flanco <strong>de</strong>scen<strong>de</strong>nte <strong>do</strong> sinal clkdiv, é efectuada a inicialização <strong>do</strong> segun<strong>do</strong> módulo, repon<strong>do</strong> o sinal<br />

clkgen e colocan<strong>do</strong> a máquina <strong>de</strong> esta<strong>do</strong>s em espera.<br />

Figura 3.16 – Diagrama temporal comportamental <strong>do</strong>s sinais da máquina <strong>de</strong> esta<strong>do</strong>s<br />

25


3. Sensor Global<br />

26


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

Conteú<strong>do</strong><br />

4.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 . .<br />

4.2 Arquitectura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 . .<br />

4.3 Meto<strong>do</strong>logia <strong>de</strong> Optimização . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 . .<br />

4.4 Bloco <strong>de</strong> Controlo e Optimização . . . . . . . . . . . . . . . . . . . . . . . . . 34 . .<br />

27


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

4.1 Introdução<br />

Com o objectivo <strong>de</strong> <strong>de</strong>monstrar o potencial <strong>do</strong> Sensor Global apresenta<strong>do</strong> nesta dissertação, foi<br />

<strong>de</strong>senvolvida uma plataforma <strong>de</strong> <strong>de</strong>monstração utilizan<strong>do</strong> uma FPGA <strong>para</strong> implementação <strong>do</strong> sensor<br />

e <strong>de</strong> um circuito digital complexo <strong>para</strong> simular a carga correspon<strong>de</strong>nte a um processa<strong>do</strong>r comum. A<br />

opção <strong>de</strong> utilizar uma FPGA pren<strong>de</strong>-se com o facto <strong>de</strong> ser um meio <strong>de</strong> <strong>de</strong>senvolvimento<br />

extremamente rápi<strong>do</strong> <strong>para</strong> obter resulta<strong>do</strong>s experimentais e ser um meio frequentemente usa<strong>do</strong> na<br />

emulação <strong>de</strong> soluções que se preten<strong>de</strong>m implementar em ASICs. Apesar <strong>do</strong> teste ao sensor ser feito<br />

recorren<strong>do</strong> a um FPGA, o objectivo é po<strong>de</strong>r <strong>de</strong>monstrar o seu funcionamento em SoC. Por esta<br />

razão, gran<strong>de</strong> parte <strong>do</strong> código VHDL implementa<strong>do</strong> foi <strong>de</strong>scrito ao nível da porta lógica ao invés <strong>do</strong><br />

respectivo comportamento. Este nível <strong>de</strong> <strong>de</strong>talhe permite realizar optimizações importantes <strong>para</strong> o<br />

<strong>de</strong>sempenho <strong>do</strong> sensor, aproximan<strong>do</strong> esta implementação em FPGA da implementação em silício no<br />

SoC.<br />

4.2 Arquitectura<br />

Para po<strong>de</strong>r implementar um sistema <strong>de</strong> ajuste automático que consiga <strong>de</strong> forma in<strong>de</strong>pen<strong>de</strong>nte<br />

controlar a sua própria tensão <strong>de</strong> alimentação, é necessário recorrer a mais alguns dispositivos extra<br />

que suportem as instruções <strong>de</strong> controlo geradas na FPGA. Esta situação implica fazer algumas<br />

alterações físicas na placa <strong>de</strong> circuito impresso da FPGA original [15] <strong>de</strong> mo<strong>do</strong> a permitir a utilização<br />

<strong>de</strong> uma fonte <strong>de</strong> tensão externa na alimentação <strong>do</strong>s 1,2V fornecida ao chip da Xilinx ® . O objectivo é<br />

criar uma arquitectura fechada on<strong>de</strong> o controla<strong>do</strong>r <strong>do</strong> sensor consegue configurar a tensão <strong>de</strong><br />

alimentação <strong>de</strong>sejada (Figura 4.1).<br />

Figura 4.1 – Arquitectura <strong>de</strong> funcionamento <strong>do</strong> <strong>de</strong>monstra<strong>do</strong>r<br />

Neste caso, o módulo que disponibiliza a alimentação externa é um conversor DCDC com<br />

tensão <strong>de</strong> saída programável através <strong>de</strong> protocolo SPI. Para implementar o circuito digital cuja<br />

alimentação é optimizada, foi usa<strong>do</strong> um multiplica<strong>do</strong>r <strong>de</strong> 16 bits com autoteste, ten<strong>do</strong> em vista uma<br />

avaliação periódica da eventual ocorrência <strong>de</strong> falhas no processamento. Após uma calibração inicial,<br />

o mecanismo Sensor Global mais algoritmo <strong>de</strong> controlo <strong>de</strong>verá ser capaz <strong>de</strong> operar dinamicamente,<br />

ajustan<strong>do</strong>-se às condições <strong>de</strong> temperatura ou envelhecimento sem qualquer interferência <strong>do</strong><br />

utiliza<strong>do</strong>r e sem interferir com a funcionalida<strong>de</strong> implementada no circuito.<br />

28


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

4.3 Meto<strong>do</strong>logia <strong>de</strong> Optimização<br />

A meto<strong>do</strong>logia <strong>de</strong> optimização implementada neste trabalho é composta por quatro etapas mais<br />

um estágio <strong>de</strong> inicialização (Figura 4.2). No momento em que o sistema arranca e surge o sinal <strong>de</strong><br />

reset, o mecanismo <strong>de</strong> controlo força o valor máximo <strong>de</strong> tensão no circuito <strong>de</strong> forma conserva<strong>do</strong>ra.<br />

Este valor <strong>de</strong> tensão máxima é programável em tempo real e po<strong>de</strong> ser ajusta<strong>do</strong> <strong>para</strong> diferentes<br />

frequências à semelhança da estratégia utilizada nos actuais microprocessa<strong>do</strong>res. Nesta situação, o<br />

microprocessa<strong>do</strong>r <strong>de</strong>ve fornecer a nova palavra <strong>de</strong> tensão e <strong>de</strong> seguida <strong>de</strong>verá activar o sinal<br />

setvmax. Só <strong>de</strong>pois <strong>de</strong>sta operação <strong>de</strong>verá ser efectuada a alteração da frequência <strong>de</strong> relógio. Nas<br />

etapas seguintes, e periodicamente, são efectuadas a leitura ao sensor, calculada a nova palavra <strong>de</strong><br />

tensão e por fim comunica<strong>do</strong> o novo valor à fonte <strong>de</strong> alimentação.<br />

Figura 4.2 – Fluxograma da estratégia Global <strong>de</strong> Controlo<br />

29


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

4.3.1 Modificações Efectuadas<br />

Neste trabalho foi utilizada uma FPGA Spartan 3 XC3S400-FT256 da Digilent ® . Após uma<br />

análise ao esquema eléctrico forneci<strong>do</strong> pelo fabricante foi i<strong>de</strong>ntifica<strong>do</strong> o processo <strong>de</strong> distribuição <strong>de</strong><br />

energia na FPGA. O dispositivo é alimenta<strong>do</strong> externamente com 5V que irão alimentar o LDO<br />

principal, reduzin<strong>do</strong> a tensão <strong>para</strong> 3,3V. Este LDO alimenta as interfaces <strong>de</strong> entrada e saída <strong>de</strong><br />

da<strong>do</strong>s bem como a maioria <strong>do</strong>s dispositivos na FPGA. Incluí<strong>do</strong>s nestes dispositivos encontra-se um<br />

LDO <strong>para</strong> gerar 2,5V e outro <strong>para</strong> gerar 1,2V. Os 2,5V alimentam os controla<strong>do</strong>res <strong>do</strong> sinal <strong>de</strong> relógio<br />

(DCM) e os periféricos <strong>de</strong> programação como o JTAG. Por fim, os 1,2V alimentam o núcleo digital da<br />

FPGA sen<strong>do</strong>, portanto, este o dispositivo a substituir pelo DCDC com tensão programável. Na Figura<br />

4.3 é indica<strong>do</strong> o local, no verso da placa <strong>de</strong> circuito impresso da FPGA, <strong>de</strong> on<strong>de</strong> foi removi<strong>do</strong> o LDO<br />

<strong>do</strong>s 1,2V <strong>para</strong> substituir pela alimentação <strong>do</strong> DCDC.<br />

Figura 4.3 – Verso da placa <strong>de</strong> circuito impresso da FPGA indican<strong>do</strong> o LDO a remover<br />

4.3.2 Conversor DCDC<br />

O conversor DCDC utiliza<strong>do</strong> é apresenta<strong>do</strong> na Figura 4.4 e foi projecta<strong>do</strong> numa parceria entre o<br />

INESC-ID e a SILICONGATE LDA. Para funcionar, este conversor requer o fornecimento <strong>de</strong> três<br />

alimentações externas. À semelhança da FPGA, o DCDC utiliza 1,2V <strong>para</strong> o núcleo digital, 3,3V <strong>para</strong><br />

entradas e saídas <strong>de</strong> da<strong>do</strong>s e uma tensão em torno <strong>de</strong> 2,4V como entrada <strong>de</strong> potência. Para tornar o<br />

protótipo in<strong>de</strong>pen<strong>de</strong>nte <strong>de</strong> fontes <strong>de</strong> alimentação externas foram utliza<strong>do</strong>s os três LDO existentes na<br />

FPGA <strong>para</strong> alimentar <strong>para</strong>lelamente o DCDC. O LDO <strong>de</strong> 1,2V que foi retira<strong>do</strong> da placa da FPGA foi<br />

solda<strong>do</strong> a um dissipa<strong>do</strong>r externo e usa<strong>do</strong> <strong>para</strong> alimentar o núcleo digital <strong>do</strong> DCDC. Para tal foi<br />

necessário criar um cabo a ligar o LDO <strong>de</strong> 3,3V da FPGA (Figura 4.5) ao LDO <strong>de</strong> 1,2V e outro como<br />

um conector <strong>para</strong> levar os 1,2V ao DCDC. Um outro cabo foi cria<strong>do</strong> <strong>para</strong> levar os 2,5V da FPGA <strong>para</strong><br />

a entrada <strong>de</strong> potência <strong>do</strong> DCDC. Por fim, os 3,3V são forneci<strong>do</strong>s juntamente com as linhas <strong>de</strong> da<strong>do</strong>s.<br />

30


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

Figura 4.4 – Conversor DCDC programável por SPI<br />

Figura 4.5 – Vista <strong>de</strong> topo da placa <strong>de</strong> circuito impresso da FPGA indican<strong>do</strong> o LDO <strong>do</strong>s 3,3V<br />

4.3.3 Comunicação SPI<br />

O protocolo SPI ou interface periférica <strong>de</strong> comunicação série permite a comunicação <strong>de</strong> um<br />

microcontrola<strong>do</strong>r (mestre) com diversos outros componentes (escravos) <strong>de</strong> uma forma compacta.<br />

Neste protocolo o dispositivo mestre faz a gestão das comunicações através <strong>de</strong> uma linha <strong>de</strong><br />

selecção, <strong>para</strong> cada dispositivo, activa a ‘0’ ( ). A sincronização <strong>de</strong> da<strong>do</strong>s é assegurada pelo sinal<br />

<strong>de</strong> relógio SCLK gera<strong>do</strong> pelo dispositivo mestre. Por fim, os dispositivos escravos comunicam pela<br />

linha <strong>de</strong> da<strong>do</strong>s MISO (master input, slave output ou entrada <strong>do</strong> mestre, saída <strong>do</strong> escravo), e mestre<br />

pela linha MOSI (master output, slave input ou saída <strong>do</strong> mestre, entrada <strong>do</strong> escravo). Um exemplo da<br />

implementação <strong>de</strong>ste protocolo po<strong>de</strong> ser visto na Figura 4.6.<br />

31


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

Figura 4.6 – Exemplo da implementação SPI<br />

Como seria <strong>de</strong> esperar, no <strong>de</strong>monstra<strong>do</strong>r apresenta<strong>do</strong>, o dispositivo mestre encontra-se <strong>do</strong> la<strong>do</strong><br />

da FPGA e o dispositivo escravo é o conversor DCDC. No caso particular <strong>de</strong>sta implementação o<br />

sinal MISO foi dispensa<strong>do</strong> uma vez que a rotina <strong>para</strong> alteração da tensão V dd não necessita <strong>de</strong><br />

qualquer tipo <strong>de</strong> resposta por parte <strong>do</strong> DCDC. No entanto existe uma linha <strong>de</strong> que <strong>de</strong>verá estar<br />

sempre no valor lógico ’1’. Relativamente ao mo<strong>do</strong> <strong>de</strong> transição, os da<strong>do</strong>s <strong>de</strong>vem ser recolhi<strong>do</strong>s no<br />

flanco ascen<strong>de</strong>nte <strong>de</strong> relógio e envia<strong>do</strong>s com os bits menos significativos primeiro.<br />

A comunicação com o DCDC é feita utilizan<strong>do</strong> 5 bits <strong>de</strong> en<strong>de</strong>reçamento e 8 bits <strong>para</strong> da<strong>do</strong>s. Na<br />

Tabela 4.1 são apresentadas as tensões realizadas pelo conversor, consoante a palavra <strong>de</strong> tensão<br />

Vprog, bem como a palavra <strong>de</strong> da<strong>do</strong>s a enviara ao DCDC. Apesar da palavra <strong>de</strong> da<strong>do</strong>s conter 8 bits,<br />

apenas os 4 bits mais significativos servem <strong>para</strong> alterar a tensão <strong>de</strong> saída <strong>do</strong> DCDC (b4 a b7). Os<br />

restantes 4 bits envia<strong>do</strong>s <strong>de</strong>verão ter o valor lógico ‘0’.<br />

Vprog b7 b6 b5 b4 V out [V]<br />

0 0 0 0 0 0.600<br />

1 0 0 0 1 0.650<br />

2 0 0 1 0 0.700<br />

3 0 0 1 1 0.750<br />

4 0 1 0 0 0.800<br />

5 0 1 0 1 0.850<br />

6 0 1 1 0 0.900<br />

7 0 1 1 1 0.950<br />

8 1 0 0 0 1.000<br />

9 1 0 0 1 1.050<br />

10 1 0 1 0 1.100<br />

11 1 0 1 1 1.150<br />

12 1 1 0 0 1.200<br />

13 1 1 0 1 1.250<br />

14 1 1 1 0 1.300<br />

15 1 1 1 1 1.350<br />

Tabela 4.1 – Tabela com as tensões <strong>de</strong> saída <strong>do</strong> DCDC <strong>para</strong> cada palavra <strong>de</strong> configuração<br />

32


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


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

4.4 Bloco <strong>de</strong> Controlo e Optimização<br />

O algoritmo <strong>de</strong> optimização implementa<strong>do</strong>, e apresenta<strong>do</strong> na Figura 4.7, baseia-se na<br />

classificação <strong>do</strong> <strong>de</strong>sempenho regista<strong>do</strong> pelo sensor em três categorias. Lento, estável e rápi<strong>do</strong> são<br />

os códigos que a máquina <strong>de</strong> esta<strong>do</strong>s interpreta <strong>para</strong> <strong>de</strong>cidir se aumenta, mantém ou diminui a<br />

tensão <strong>de</strong> alimentação. Estas três combinações são dadas pelo sinal cut_speed que é gera<strong>do</strong> a partir<br />

<strong>do</strong> código termómetro forneci<strong>do</strong> pelo Sensor Global.<br />

Figura 4.7 – Diagrama <strong>de</strong> esta<strong>do</strong>s <strong>do</strong> bloco <strong>de</strong> Controlo e Optimização<br />

Por uma questão <strong>de</strong> segurança e <strong>para</strong> prevenir erros na comunicação externa, to<strong>do</strong>s os esta<strong>do</strong>s<br />

a partir da verificação convergem <strong>para</strong> o esta<strong>do</strong> <strong>de</strong> escrita no SPI, mesmo que a palavra <strong>de</strong> tensão<br />

permaneça igual à anterior.<br />

34


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

4.4.1 Caminho <strong>de</strong> Da<strong>do</strong>s<br />

Para enten<strong>de</strong>r melhor o processo <strong>de</strong> optimização realiza<strong>do</strong> pelo no bloco <strong>de</strong> controlo, é<br />

apresentada abaixo uma lista com a <strong>de</strong>scrição <strong>do</strong>s principais sinais <strong>de</strong> coman<strong>do</strong>.<br />

Entrada:<br />

<br />

<br />

<br />

<br />

<br />

<br />

Vmax – palavra <strong>de</strong> tensão máxima a fornecer ao circuito num da<strong>do</strong> instante.<br />

Vmin – palavra <strong>de</strong> tensão mínima admissível pelo circuito num da<strong>do</strong> instante.<br />

setvmax – sinal exterior que or<strong>de</strong>na a imposição da palavra <strong>de</strong> tensão Vmax ao circuito.<br />

cut_speed – sinal com 2 bits que indica o <strong>de</strong>sempenho <strong>do</strong> circuito. “00” <strong>para</strong> lento, “10” <strong>para</strong><br />

estável e “11” <strong>para</strong> rápi<strong>do</strong>. A combinação “01” não <strong>de</strong>verá surgir mas <strong>para</strong> to<strong>do</strong>s os efeitos é<br />

interpretada como rápi<strong>do</strong>.<br />

ready – cria<strong>do</strong> a partir <strong>do</strong> sinal clkgen atrasa<strong>do</strong> <strong>de</strong> um ciclo <strong>de</strong> relógio, indica ao controlo que os<br />

da<strong>do</strong>s <strong>de</strong> uma nova verificação <strong>de</strong> <strong>de</strong>sempenho estão disponíveis.<br />

busy – sinal envia<strong>do</strong> pelo bloco <strong>de</strong> comunicação SPI durante o processo <strong>de</strong> comunicação.<br />

Saída:<br />

<br />

<br />

<br />

<br />

<br />

Vprog – palavra com a tensão a fornecer ao circuito or<strong>de</strong>nada por comunicação SPI.<br />

SPI_EN – sinal <strong>para</strong> or<strong>de</strong>nar ao bloco SPI o envio da nova palavra <strong>de</strong> tensão (Vprog).<br />

subtract – sinal envia<strong>do</strong> ao Soma<strong>do</strong>r/Subtractor or<strong>de</strong>nan<strong>do</strong> um subtracção.<br />

muxout – sinal <strong>para</strong> escolher a origem da próxima palavra <strong>de</strong> tensão.<br />

vprog_EN – sinal <strong>para</strong> activar a escrita no registo que guarda a palavra <strong>de</strong> tensão Vprog.<br />

Figura 4.8 – Caminho <strong>de</strong> da<strong>do</strong>s necessário <strong>para</strong> o funcionamento <strong>do</strong> controlo<br />

35


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

A lógica aritmética utilizada no cálculo da palavra tensão é apresentada Figura 4.8. É utiliza<strong>do</strong><br />

um registo <strong>para</strong> guardar a palavra <strong>de</strong> tensão Vprog a enviar ao DCDC através bloco SPI e um<br />

multiplexer <strong>para</strong> inicializar o DCDC com a palavra <strong>de</strong> tensão Vmax. Durante o processo <strong>de</strong><br />

optimização é utiliza<strong>do</strong> um Soma<strong>do</strong>r/Subtractor <strong>para</strong> incrementar ou <strong>de</strong>crementar uma unida<strong>de</strong> à<br />

palavra <strong>de</strong> tensão Vprog. Por fim são utiliza<strong>do</strong>s <strong>do</strong>is com<strong>para</strong><strong>do</strong>res <strong>para</strong> interromper a optimização<br />

caso sejam alcança<strong>do</strong>s os limites Vmax ou Vmin.<br />

4.4.2 Comportamento<br />

Neste subcapítulo será <strong>de</strong>talhada a função <strong>de</strong> cada esta<strong>do</strong> apresenta<strong>do</strong> na Figura 4.7.<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

INIT – esta<strong>do</strong> inicial no qual é transferida a palavra <strong>de</strong> tenção Vmax <strong>para</strong> o registo conten<strong>do</strong><br />

Vprog. O processo é realiza<strong>do</strong> seleccionan<strong>do</strong> a entrada Vmax no multiplexer e activan<strong>do</strong> a<br />

escrita no registo.<br />

Verify – esta<strong>do</strong> no qual é avalia<strong>do</strong> o <strong>de</strong>sempenho <strong>do</strong> circuito através <strong>do</strong> sinal cut_speed.<br />

Comp_add – esta<strong>do</strong> no qual é com<strong>para</strong>da a actual palavra <strong>de</strong> tensão Vprog com Vmax a fim <strong>de</strong><br />

verificar se foi atingi<strong>do</strong> o limite superior <strong>de</strong> tensão.<br />

Comp_sub – esta<strong>do</strong> no qual é com<strong>para</strong>da a actual palavra <strong>de</strong> tensão Vprog com Vmin a fim <strong>de</strong><br />

verificar se foi atingi<strong>do</strong> o limite inferior <strong>de</strong> tensão.<br />

Increase – esta<strong>do</strong> no qual é efectua<strong>do</strong> o incremento <strong>de</strong> uma unida<strong>de</strong> à palavra <strong>de</strong> tensão<br />

Vprog. O processo é realiza<strong>do</strong> seleccionan<strong>do</strong> no multiplexer a entrada vinda <strong>do</strong><br />

Soma<strong>do</strong>r/Subtractor, activan<strong>do</strong> a escrita no registo e or<strong>de</strong>nan<strong>do</strong> a operação <strong>de</strong> soma ao<br />

Soma<strong>do</strong>r/Subtractor.<br />

Decrease – esta<strong>do</strong> no qual é efectua<strong>do</strong> o <strong>de</strong>cremento <strong>de</strong> uma unida<strong>de</strong> à palavra <strong>de</strong> tensão<br />

Vprog. O processo é realiza<strong>do</strong> seleccionan<strong>do</strong> no multiplexer a entrada vinda <strong>do</strong><br />

Soma<strong>do</strong>r/Subtractor, activan<strong>do</strong> a escrita no registo e or<strong>de</strong>nan<strong>do</strong> a operação <strong>de</strong> subtracção ao<br />

Soma<strong>do</strong>r/Subtractor.<br />

SPI_Write – esta<strong>do</strong> no qual é dada or<strong>de</strong>m ao bloco SPI <strong>para</strong> comunicar a nova palavra <strong>de</strong><br />

tensão Vprog ao DCDC.<br />

Wait_1 – esta<strong>do</strong> no qual se aguarda que o sinal ready venha a ‘0’. Este esta<strong>do</strong> é essencial uma<br />

vez que a transição <strong>para</strong> ‘1’ <strong>do</strong> sinal ready indica a presença <strong>de</strong> novos da<strong>do</strong>s <strong>de</strong> <strong>de</strong>sempenho<br />

vin<strong>do</strong>s <strong>do</strong> Sensor Global. Por teste motivo é necessário esperar a sua vinda a ‘0’ uma vez que o<br />

perío<strong>do</strong> <strong>do</strong> sinal ready é muito superior ao tempo que a máquina <strong>de</strong> esta<strong>do</strong>s <strong>de</strong>mora <strong>para</strong><br />

realizar as operações até este esta<strong>do</strong>.<br />

Wait_2 – esta<strong>do</strong> no qual se aguarda pela conclusão da transmissão <strong>de</strong> da<strong>do</strong>s SPI (sinal busy)<br />

bem como a chegada <strong>de</strong> novos da<strong>do</strong>s por parte <strong>do</strong> Sensor Global (sinal ready).<br />

36


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

4.4.3 Multiplexer tri-state (cut_speed)<br />

O sinal cut_speed foi cria<strong>do</strong> <strong>para</strong> facilitar o tratamento da informação gerada pelo Sensor<br />

Global. Inicialmente foi implementa<strong>do</strong> um codifica<strong>do</strong>r <strong>para</strong> converter o código termómetro numa<br />

palavra digital que posteriormente seria com<strong>para</strong>da com a palavra <strong>de</strong> calibração <strong>para</strong> <strong>de</strong>finir qual a<br />

categoria <strong>de</strong> velocida<strong>de</strong> a atribuir. No entanto, após alguns testes percebeu-se que esta abordagem<br />

tem eleva<strong>do</strong>s custos no caso <strong>de</strong> ser implementada com portas lógicas, quer na quantida<strong>de</strong> <strong>de</strong> portas<br />

necessárias mas principalmente no tempo <strong>de</strong> atraso. Isto porque na FPGA utilizada apenas é<br />

possível implementar codifica<strong>do</strong>res lógicos em que os bits mais significativos <strong>de</strong>pen<strong>de</strong>m <strong>de</strong> to<strong>do</strong>s os<br />

anteriores. Esta situação é particularmente gravosa uma vez que requer esperar pela propagação <strong>do</strong><br />

código termómetro no codifica<strong>do</strong>r a cada verificação efectuada pelo sensor.<br />

Como solução final, implementou-se este conceito mas no senti<strong>do</strong> inverso. Deste mo<strong>do</strong>,<br />

preten<strong>de</strong> usar-se um <strong>de</strong>scodifica<strong>do</strong>r <strong>para</strong> converter a palavra <strong>de</strong> calibração e <strong>de</strong>sse mo<strong>do</strong> atacar um<br />

conjunto <strong>de</strong> buffers tri-state liga<strong>do</strong>s ao código termómetro. O objectivo é multiplexar os <strong>do</strong>is bits<br />

consecutivos <strong>do</strong> código termómetro correspon<strong>de</strong>ntes à calibração <strong>do</strong> caminho crítico a simular. Na<br />

Figura 4.9 po<strong>de</strong> ver-se que são utiliza<strong>do</strong>s <strong>do</strong>is multiplexers, um <strong>para</strong> cada bit <strong>do</strong> sinal cut_speed,<br />

correspon<strong>de</strong>ntes à selecção <strong>do</strong>s <strong>do</strong>is bits consecutivos <strong>do</strong> código termómetro. Os <strong>do</strong>is mutiplexers<br />

têm a vantagem <strong>de</strong> ser realiza<strong>do</strong>s usan<strong>do</strong> apenas um <strong>de</strong>scodifica<strong>do</strong>r. Isto é feito <strong>de</strong>sfasan<strong>do</strong> a<br />

sequência com que os bits <strong>do</strong> <strong>de</strong>scodifica<strong>do</strong>r entram no segun<strong>do</strong> conjunto <strong>de</strong> buffers tri-state. A<br />

utilização <strong>de</strong>stes buffers tem também a vantagem <strong>de</strong> po<strong>de</strong>r criar gran<strong>de</strong>s multiplexers <strong>de</strong> atraso<br />

reduzi<strong>do</strong>, uma vez que evita toda a lógica sequencial e tira proveito <strong>do</strong> facto <strong>do</strong> <strong>de</strong>scodifica<strong>do</strong>r ficar<br />

estático após a calibração.<br />

Figura 4.9 – Multiplexer tri-state <strong>para</strong> geração <strong>do</strong> sinal cut_speed<br />

37


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

38


Resulta<strong>do</strong>s Experimentais<br />

Conteú<strong>do</strong><br />

5.1 Características <strong>do</strong> Demonstra<strong>do</strong>r . . . . . . . . . . . . . . . . . . . . . . . . . 40 . .<br />

5.2 Simulações Post-Route . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 . .<br />

5.3 Teste em Temperatura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 . .<br />

39


5. Resulta<strong>do</strong>s Experimentais<br />

5.1 Características <strong>do</strong> Demonstra<strong>do</strong>r<br />

FPGA – Digilent ® Xilinx ® Spartan3 XC3S400-4FT256 [15] (Tabela 5.1)<br />

<br />

DCDC – Buck com tensão <strong>de</strong> saída programável por comunicação SPI, V IN = [2,3 ; 3,6]V,<br />

V OUT = [0,6 ; 3,6]V com avanços <strong>de</strong> 50mV, I OUT (max)=1,5A<br />

CLB Array<br />

Device<br />

System<br />

Gates<br />

Equivalent<br />

Logic<br />

Cells<br />

(One CLB = Four Slices)<br />

Total<br />

Rows Columns CLBs<br />

Distributed<br />

RAM Bits<br />

(K=1024)<br />

Block RAM<br />

Bits<br />

(K=1024)<br />

Dedicated<br />

Multipliers<br />

DCMs<br />

Maximum<br />

User I/O<br />

Maximum<br />

Differential<br />

I/O Pairs<br />

XC3S400 400K 8,064 32 28 896 56K 288K 16 4 265 116<br />

Tabela 5.1 – Atributos da FPGA<br />

Na Figura 5.1 encontra-se a fotografia <strong>do</strong> protótipo <strong>de</strong> teste cria<strong>do</strong> e que foi utiliza<strong>do</strong> <strong>para</strong> obter<br />

os resulta<strong>do</strong>s experimentais. A frequência <strong>de</strong> operação utilizada foi a máxima fornecida pela FPGA<br />

(50MHz). Já a velocida<strong>de</strong> da comunicação SPI utilizada foi <strong>de</strong> 396,83KHz e obteve-se mediante<br />

alguns testes <strong>de</strong> estabilida<strong>de</strong>. Para facilitar o processo <strong>de</strong> correcção <strong>de</strong> erros mas também <strong>para</strong><br />

acompanhar o comportamento <strong>do</strong>s vários dipositivos <strong>de</strong>ntro da FPGA, foram utiliza<strong>do</strong>s os displays <strong>de</strong><br />

sete segmentos <strong>para</strong> mostrar a palavra <strong>de</strong> tensão Vprog, o valor <strong>do</strong> sinal cut_speed, o código<br />

termómetro em hexa<strong>de</strong>cimal e o código <strong>de</strong> autoteste ou BIST. A calibração manual <strong>do</strong> sensor é<br />

efectuada através <strong>do</strong>s 5 interruptores mais à direita, <strong>de</strong>ixan<strong>do</strong> três interruptores disponíveis <strong>para</strong><br />

seleccionar a informação a apresentar nos displays. Após vários testes o <strong>de</strong>monstra<strong>do</strong>r foi calibra<strong>do</strong><br />

<strong>de</strong> forma a obter a palavra <strong>de</strong> tensão 06 H (0110 b ) correspon<strong>de</strong>nte a 0,9V. No entanto, <strong>de</strong>vi<strong>do</strong> a uma<br />

questão <strong>de</strong> calibração <strong>do</strong> DCDC a saída encontra-se 30mV acima <strong>do</strong> valor tabela<strong>do</strong>, posicionan<strong>do</strong> a<br />

tensão <strong>de</strong> alimentação nos 0,93V.<br />

Figura 5.1 – Fotografia <strong>do</strong> protótipo final<br />

40


5. Resulta<strong>do</strong>s Experimentais<br />

5.2 Simulações Post-Route<br />

Para mostrar o comportamento <strong>de</strong> alguns sinais internos e verificar o cumprimento <strong>do</strong>s<br />

objectivos propostos, foram realizadas algumas simulações post-route a alguns <strong>do</strong>s módulos<br />

implementa<strong>do</strong>s na FPGA. As simulações são efectuadas individualmente <strong>para</strong> cada bloco, por esse<br />

motivo os sinais <strong>de</strong> entrada em cada bloco são forneci<strong>do</strong>s manualmente no ficheiro <strong>de</strong> simulação.<br />

Figura 5.2 – Diagrama temporal <strong>do</strong> bloco Temporiza<strong>do</strong>r<br />

A Figura 5.2 apresenta o diagrama temporal <strong>do</strong> bloco Temporiza<strong>do</strong>r. Po<strong>de</strong> ver-se que foram<br />

cumpri<strong>do</strong>s os objectivos especifica<strong>do</strong>s <strong>para</strong> este bloco: o sinal edge termina <strong>de</strong>pois <strong>do</strong> clkgen e o<br />

sinal aging é o último a vir a ‘1’. Através <strong>de</strong>sta simulação foi medi<strong>do</strong> o perío<strong>do</strong> entre o início <strong>do</strong> sinal<br />

edge e o sinal clkgen. No Capitulo 3.3.2 tinha si<strong>do</strong> referi<strong>do</strong> que este intervalo <strong>de</strong>veria estar o mais<br />

próximo possível <strong>do</strong> perío<strong>do</strong> <strong>de</strong> relógio. O resulta<strong>do</strong> obti<strong>do</strong> foi então 19,952ns, o que é bastante<br />

próximo <strong>do</strong>s 20ns <strong>do</strong> perío<strong>do</strong> <strong>de</strong> relógio. Ten<strong>do</strong> em conta que se está num ambiente FPGA, este<br />

resulta<strong>do</strong> foi consi<strong>de</strong>ra<strong>do</strong> bastante bom. Com<strong>para</strong>n<strong>do</strong> estes resulta<strong>do</strong>s com os da simulação<br />

comportamental po<strong>de</strong> ver-se um forte atraso nas saídas Q0 e Q1 <strong>do</strong> conta<strong>do</strong>r da máquina <strong>de</strong><br />

esta<strong>do</strong>s. No entanto este atraso não tem qualquer influência no comportamento <strong>do</strong> sensor uma vez<br />

que os sinais aging, edge e clkgen estão sincroniza<strong>do</strong>s entre si.<br />

Figura 5.3 – Diagrama temporal <strong>do</strong> bloco SPI<br />

No caso da simulação <strong>do</strong> bloco SPI apresentada na Figura 5.3, como a frequência <strong>de</strong> transição<br />

suportada pelo protocolo é muito inferior aos 50Mhz utiliza<strong>do</strong>s pela FPGA, não são visíveis quaisquer<br />

<strong>de</strong>sfasamentos nos sinais <strong>de</strong> comunicação.<br />

41


5. Resulta<strong>do</strong>s Experimentais<br />

Figura 5.4 – Diagrama temporal <strong>do</strong> Sensor PVTA<br />

Na simulação apresentada na Figura 5.4, referente ao Sensor PVTA, po<strong>de</strong> ver-se que após o<br />

sinal clkgen vir a ‘1’, a captura não acontece instantaneamente em to<strong>do</strong>s os flip-flops (região a<br />

vermelho em torno <strong>do</strong>s 200ns). No entanto como a margem <strong>de</strong> captura é muito reduzida não é<br />

<strong>de</strong>tectada qualquer irregularida<strong>de</strong> no código termómetro final. Como seria <strong>de</strong> esperar, quan<strong>do</strong> a<br />

captura se faz na fronteira <strong>de</strong> propagação, o simula<strong>do</strong>r não consegue prever se o bit é ‘0’ ou ‘1’ e<br />

mostra uma in<strong>de</strong>terminação.<br />

42


5. Resulta<strong>do</strong>s Experimentais<br />

5.3 Teste em Temperatura<br />

Para <strong>de</strong>monstrar o correcto funcionamento <strong>do</strong> Sensor Global e respectivo Controlo Digital, foi<br />

efectua<strong>do</strong> o teste a diferentes temperaturas <strong>para</strong> comprovar a sua estabilida<strong>de</strong>. A realização <strong>do</strong> teste<br />

obrigou à implementação <strong>de</strong> uma estratégia <strong>de</strong> comunicação com o exterior da câmara <strong>de</strong><br />

temperatura <strong>de</strong> mo<strong>do</strong> a obter a informação sobre a conclusão <strong>do</strong> autoteste e sobre a valida<strong>de</strong> <strong>do</strong><br />

respectivo resulta<strong>do</strong>. A comunicação com a placa da FPGA, além <strong>de</strong> incluir a recepção da<br />

informação mencionada, também requer o envio <strong>do</strong> sinal <strong>de</strong> reset <strong>do</strong> autoteste e um sinal adicional<br />

<strong>para</strong> forçar o mo<strong>do</strong> <strong>de</strong> operação não optimiza<strong>do</strong> que aplica a tensão <strong>de</strong> 1,2V ao núcleo da FPGA.<br />

Para tal foi utilizada a interface <strong>de</strong> entrada e saída da FPGA juntamente com um cabo usb <strong>de</strong><br />

aquisição <strong>de</strong> sinais digitais.<br />

Equipamentos:<br />

Voltímetro – HP 34401A<br />

<br />

Amperímetro – HP 34401A<br />

Termómetro – Keithley 2001<br />

<br />

Câmara <strong>de</strong> Temperatura – TestEquity Half Cube<br />

Mo<strong>do</strong> em Teste Temp. [°C] Tensão [V] Corrente [mA] Vprog Potência [mW] Poupança [%]<br />

Standby<br />

1.233 7.64 C 9.42<br />

1.2<br />

x<br />

Run 1.226 17.89 C 21.93<br />

0<br />

Standby 0.927 3.72 6 3.45 63.38<br />

DVS<br />

Run 0.927 10.97 6 10.17 53.63<br />

Standby<br />

1.233 7.98 C 9.84<br />

1.2<br />

x<br />

Run 1.226 18.24 C 22.36<br />

10<br />

Standby 0.926 3.90 6 3.61 63.31<br />

DVS<br />

Run 0.922 11.15 6 10.28 54.03<br />

Standby<br />

1.232 8.91 C 10.98<br />

1.2<br />

x<br />

Run 1.226 19.22 C 23.56<br />

25<br />

Standby 0.926 4.39 6 4.07 62.93<br />

DVS<br />

Run 0.921 11.68 6 10.76 54.33<br />

Standby<br />

1.230 9.72 C 11.96<br />

1.2<br />

x<br />

Run 1.223 20.03 C 24.50<br />

35<br />

Standby 0.926 4.86 6 4.50 62.37<br />

DVS<br />

Run 0.920 12.16 6 11.19 54.33<br />

Standby<br />

1.229 10.87 C 13.36<br />

1.2<br />

x<br />

Run 1.223 21.18 C 25.90<br />

45<br />

Standby 0.925 5.53 6 5.12 61.68<br />

DVS<br />

Run 0.920 12.81 6 11.79 54.48<br />

Standby<br />

1.228 12.38 C 15.2<br />

1.2<br />

x<br />

Run 1.221 22.67 C 27.68<br />

55<br />

Standby 0.924 6.44 6 5.95 60.86<br />

DVS<br />

Run 0.919 13.72 6 12.61 54.44<br />

Standby<br />

1.227 14.40 C 17.67<br />

1.2<br />

x<br />

Run 1.219 24.76 C 30.18<br />

65<br />

Standby 0.923 7.66 6 7.07 59.99<br />

DVS<br />

Run 0.918 14.97 6 13.74 54.47<br />

Standby<br />

1.224 16.96 C 20.76<br />

1.2<br />

x<br />

Run 1.216 27.30 C 33.20<br />

75<br />

Standby 0.921 9.26 6 8.53 58.91<br />

DVS<br />

Run 0.916 16.56 6 15.17 54.31<br />

Tabela 5.2 – Medições em Temperatura<br />

43


Tensão [V]<br />

5. Resulta<strong>do</strong>s Experimentais<br />

Os limites <strong>do</strong> teste em temperatura foram impostos pelas especificações da FPGA [15], sen<strong>do</strong> a<br />

temperatura mínima <strong>de</strong> 0ºC e a máxima <strong>de</strong> 80ºC. Na Tabela 5.2 são apresenta<strong>do</strong>s os resulta<strong>do</strong>s<br />

obti<strong>do</strong>s com as tensões e correntes correspon<strong>de</strong>ntes ao mo<strong>do</strong> <strong>de</strong> funcionamento não optimiza<strong>do</strong> da<br />

FPGA (1,2V) e <strong>para</strong> o mo<strong>do</strong> com a tensão <strong>de</strong> alimentação optimizada (DVS). Foram ainda<br />

efectuadas medidas com o multiplica<strong>do</strong>r activo (Run) e em repouso (Standby). Através da tensão e<br />

da corrente foi calculada a potência dissipada na FPGA <strong>para</strong> os casos 1,2V e DVS. Da<strong>do</strong> que a<br />

frequência <strong>de</strong> relógio se mantém <strong>para</strong> ambas as situações, o tempo <strong>de</strong> processamento é idêntico e<br />

por isso a proporção entre a potência e a energia é a mesma <strong>para</strong> os casos 1.2V e DVS. Assim, os<br />

valores da potência po<strong>de</strong>m ser usa<strong>do</strong>s <strong>para</strong> quantificar a poupança <strong>de</strong> energia recorren<strong>do</strong> à<br />

expressão (5.1). Por fim, na Tabela 5.2, a coluna Vprog mostra o valor da palavra <strong>de</strong> tensão<br />

fornecida ao DCDC em formato hexa<strong>de</strong>cimal.<br />

P = (<br />

P<br />

P 2<br />

) (5.1)<br />

Com os resulta<strong>do</strong>s da Tabela 5.2 foram elabora<strong>do</strong>s quatro gráficos. Nas legendas apresentadas<br />

juntamente com os gráficos a <strong>de</strong>signação Sb significa Standby e a <strong>de</strong>signação Rn significa Run.<br />

1.25<br />

1.2<br />

1.15<br />

1.1<br />

1,2V Sb<br />

1.05<br />

1<br />

1,2V Rn<br />

DVS Sb<br />

DVS Rn<br />

0.95<br />

0.9<br />

0 15 30 45 60 75<br />

Temperatura [ºC]<br />

Figura 5.5 – Gráfico da variação da tensão <strong>de</strong> alimentação <strong>do</strong> núcleo digital da FPGA com a temperatura<br />

Na Figura 5.5 é apresenta<strong>do</strong> o gráfico da variação da tensão <strong>de</strong> alimentação <strong>do</strong> núcleo digital da<br />

FPGA <strong>para</strong> as várias temperaturas. É registada uma ligeira queda na tensão quan<strong>do</strong> o circuito está<br />

em carga no mo<strong>do</strong> Run, mas <strong>de</strong>ve-se apenas à resistência interna <strong>do</strong> amperímetro e fios <strong>de</strong> ligação<br />

entre o DCDC e a FPGA, já que o DCDC regula eficazmente a sua tensão <strong>de</strong> saída.<br />

44


Potência [mW]<br />

Currente [mA]<br />

5. Resulta<strong>do</strong>s Experimentais<br />

30<br />

25<br />

20<br />

15<br />

10<br />

1,2V Sb<br />

1,2V Rn<br />

DVS Sb<br />

DVS Rn<br />

5<br />

0<br />

0 15 30 45 60 75<br />

Temperatura [ºC]<br />

Figura 5.6 – Gráfico da variação da corrente consumida pelo núcleo digital da FPGA com a temperatura<br />

Na Figura 5.6 é apresenta<strong>do</strong> o gráfico da variação da corrente consumida pelo núcleo digital da<br />

FPGA com a temperatura. Po<strong>de</strong> ver-se que em carga e nos mo<strong>do</strong>s 1,2V (Standby e Run) a corrente<br />

cresce mais rapidamente que no caso <strong>do</strong> DVS, aumentan<strong>do</strong> <strong>de</strong> forma significativa o <strong>de</strong>sperdício <strong>de</strong><br />

energia em temperaturas altas.<br />

35<br />

30<br />

25<br />

20<br />

15<br />

10<br />

1,2V Sb<br />

1,2V Rn<br />

DVS Sb<br />

DVS Rn<br />

5<br />

0<br />

0 15 30 45 60 75<br />

Temperatura [ºC]<br />

Figura 5.7 – Gráfico da variação da Potência consumida pelo núcleo digital da FPGA com a temperatura<br />

45


Poupança [%]<br />

5. Resulta<strong>do</strong>s Experimentais<br />

Na Figura 5.7 po<strong>de</strong> ver-se o gráfico com a variação da Potência consumida pelo núcleo digital<br />

da FPGA com a temperatura. Como a variação da tensão em ambos os mo<strong>do</strong>s ronda as <strong>de</strong>zenas <strong>de</strong><br />

milivolts, o andamento da potência é muito semelhante ao observa<strong>do</strong> na corrente.<br />

64<br />

62<br />

60<br />

58<br />

56<br />

DVS Sb<br />

DVS Rn<br />

54<br />

52<br />

0 15 30 45 60 75<br />

Temperatura [ºC]<br />

Figura 5.8 – Poupança obtida com a utilização <strong>do</strong> Sensor Global <strong>para</strong> diferentes temperaturas<br />

Analisan<strong>do</strong> os resulta<strong>do</strong>s na perspectiva da poupança <strong>de</strong> energia, Figura 5.8, po<strong>de</strong> ver-se que<br />

nas temperaturas mais elevadas existe uma diminuição da poupança em Standby (Sb). Contu<strong>do</strong>,<br />

esta continua ainda a acima <strong>do</strong>s 58%. Mais importante é o facto <strong>de</strong> a poupança manter-se<br />

praticamente constante quan<strong>do</strong> a FPGA está em carga (Rn). Esta situação mostra que é possível<br />

manter uma elevada redução no consumo <strong>de</strong> energia, mesmo em altas temperaturas.<br />

46


Conclusões e Trabalho Futuro<br />

Conteú<strong>do</strong><br />

6.1 Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 . .<br />

6.2 Trabalho Futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 .<br />

47


6. Conclusões e Trabalho Futuro<br />

6.1 Conclusões<br />

Uma análise ao trabalho realiza<strong>do</strong> permite concluir que to<strong>do</strong>s os objectivos foram cumpri<strong>do</strong>s. O<br />

protótipo <strong>de</strong>senvolvi<strong>do</strong> funcionou correctamente, permitin<strong>do</strong> efectuar a validação <strong>do</strong> sensor e<br />

quantificar os ganhos possíveis com a optimização implementada, mesmo nas altas temperaturas.<br />

Foi possível integrar o sensor na FPGA, monitorizan<strong>do</strong> o <strong>de</strong>sempenho da lógica <strong>de</strong>sta, e incluir o<br />

módulo <strong>de</strong> controlo que através <strong>do</strong> SPI comunica com o DCDC externo e optimiza a tensão <strong>de</strong><br />

alimentação da FPGA. O multiplica<strong>do</strong>r com autoteste implementa<strong>do</strong> na FPGA permitiu verificar que a<br />

solução <strong>de</strong> optimização implementada não compromete o correcto processamento e proporciona<br />

ganhos entre os 53% e os 63% <strong>de</strong>pen<strong>de</strong>n<strong>do</strong> das condições <strong>de</strong> temperatura e <strong>de</strong> carga.<br />

A implementação efectuada, além <strong>de</strong> permitir validar a meto<strong>do</strong>logia <strong>de</strong> optimização, comprova<br />

que a sua implementação não interfere com o fluxo <strong>de</strong> projecto <strong>do</strong>s circuitos cuja tensão <strong>de</strong><br />

alimentação é optimizada.<br />

6.2 Trabalho Futuro<br />

Como trabalho futuro seria interessante po<strong>de</strong>r realizar algumas das seguintes tarefas:<br />

Utilização <strong>de</strong> múltiplos sensores posiciona<strong>do</strong>s em diferentes regiões <strong>do</strong> chip <strong>para</strong> efectuar a<br />

optimização com base na temperatura e tensão <strong>de</strong> alimentação local.<br />

Testar o funcionamento <strong>para</strong> diferentes frequências <strong>de</strong> relógio (o actual algoritmo <strong>de</strong> controlo<br />

já está pre<strong>para</strong><strong>do</strong> <strong>para</strong> esta situação)<br />

Prototipagem em silício integra<strong>do</strong> uma PMU interna com maior sensibilida<strong>de</strong> no ajuste da<br />

tensão e com um protocolo <strong>de</strong> comunicação mais rápi<strong>do</strong>.<br />

48


Bibliografia<br />

[1] S. Gochman, R. Ronen, I. Anati, A. Berkovits, T. Kurts, A. Naveh, A. Saeed, Z. Sperber and R. C.<br />

Valentine, "The Intel® Pentium® M Processor: Microarchitecture and Performance," Intel®<br />

Technology Journal, vol. 7, no. 2, Mai. 2003.<br />

[2] “AMD PowerNow! Technology <strong>Dynamic</strong>ally Manages Power and Performance,” Nov. 2000.<br />

[Online]. Available: http://support.amd.com/us/Embed<strong>de</strong>d_TechDocs/24404a.pdf.<br />

[3] D. Ernst, N. S. Kim, S. Das, S. Pant, R. Rao, T. Pham, C. Ziesler, D. Blaauw, T. Austin, K.<br />

Flautner and T. Mudge, "Razor: A Low-Power Pipeline Based on Circuit-Level Timing<br />

Speculation," in Microarchitecture, 2003. MICRO-36. Proceedings. 36th Annual IEEE/ACM<br />

International Symposium on, Dez. 2003.<br />

[4] V. Reddy, A. Krishnan, A. Marshall, J. Rodriguez, S. Natarajan, T. Rost and S. Krishnan, "Impact<br />

of Negative Bias Temperature Instability on Digital Circuit Reliability," in Reliability Physics<br />

Symposium Proceedings, 2002.<br />

[5] J. Vazquez, V. Champac, A. iesemer, . eis, . emião, . Tei eira, M. antos and . Tei eira,<br />

"Predictive Error Detection by On-line Aging Monitoring," in On-Line Testing Symposium (IOLTS),<br />

2010.<br />

[6] J. Semiao, J. Pachito, C. Martins, B. Jacinto, J. Vazquez, V. Champac, M. Santos, I. Teixeira and<br />

J. Teixeira, "Aging-aware Power or Frequency Tuning with Predictive Fault Detection," in Design<br />

& Test of Computers, 99 ed., vol. PP, IEEE, 2012.<br />

[7] M. Khan, S. Hamdioui and F. Catthoor, "Com<strong>para</strong>tive BTI Analysis in Nano-scale Circuits<br />

Lifetime," in 4th Workshop on Design for Reliability, Paris, France, 2012.<br />

[8] D. K. Schro<strong>de</strong>r, "Negative bias temperature instability: What <strong>do</strong> we un<strong>de</strong>rstand?,"<br />

Microelectronics Reliability, vol. 47, no. 6, 2007.<br />

[9] W. Wang, S. Yang, S. Bhardwaj, S. Vrudhula, F. Liu and Y. Cao, "The Impact of NBTI Effect on<br />

Combinational Circuit: Mo<strong>de</strong>ling, Simulation, and Analysis," in IEEE Transactions on Very Large<br />

Scale Integration Systems, vol. 18, Feb. 2010, pp. 173-183.<br />

[10] S. Bhardwaj, W. Wang, R. Vattikonda, Y. Cao and a. S. Vrudhula, "Predictive Mo<strong>de</strong>ling of the<br />

NBTI Effect for Reliable Design," Custom Integrated Circuits Conference, 2006. CICC '06. IEEE,<br />

Sept. 2006.<br />

[11] D. I. Kim, J. Kim, M. J. Kim, J. R. Moulic and H. H. Song, "System and Method for Monitoring<br />

Reliability of a Digital System". Patent 7495519, 24 Fev 2009.<br />

[12] C. R. Gauthier, P. R. Trivedi and G. S. Yee, "Embed<strong>de</strong>d Integrated Circuit Aging Sensor<br />

System". Patent 7054787, 30 Maio 2006.<br />

[13] K. Kang, S. Gangwal, S. P. Park and K. Roy, "NBTI induced performance <strong>de</strong>gradation in logic<br />

and memory circuits: how effectively can we approach a reliability solution?," in Design<br />

Automation Conference, 2008.<br />

[14] K.-C. Wu and D. Marculescu, "Joint Logic Restructuring and Pin Reor<strong>de</strong>ring against NBTI-<br />

Induced Performance Degradation," in Design, Automation & Test in Europe Conference &<br />

Exhibition, 2009.<br />

[15] "Digilent® Xilinx® Spartan3 XC3S400-4FT256," Digilent, Inc., [Online]. Available:<br />

http://www.digilentinc.com/Products/Detail.cfm?Prod=S3BOARD.<br />

49


Bibliografia<br />

50


Anexos<br />

51


7. Anexos<br />

Figura 7.1 – Esquema eléctrico <strong>do</strong>s dispositivos <strong>de</strong> alimentação da placa FGPA utilizada<br />

52

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

Saved successfully!

Ooh no, something went wrong!