Upload
others
View
24
Download
0
Embed Size (px)
Citation preview
Conversor Analógico Digital Cíclico, Programável com
Variação da Corrente de Polarização
Miguel Filipe da Branca Martins
Dissertação para obtenção do Grau de Mestre em
Engenharia Electrotécnica e de Computadores
Júri
Presidente: Prof. Beltran Gerald
Orientador: Prof. João Vital
Vogais: Prof. Marcelino Santos
Junho 2008
Agradecimentos
Muitos foram os contributos que recebi e que tornaram possível a realização deste trabalho, desde já
quero agradecer ao Professor João Vital a oportunidade que me deu. Aos meus colegas que, comigo
fizeram as suas dissertações na Chipidea, em particular ao João Pinheiro, uma palavra de apreço. A
todos os colaboradores de Chipidea pela boa recepção e pelo apoio sempre pronto, os meus
agradecimentos. Também não posso deixar de destacar a importância das orientações dadas pelo
Engenheiro Carlos Fachada, sem as quais este trabalho não existiria.
Aos meus pais, porque ainda me aturam ☺ .
Miguel Martins
i
Resumo
Os conversores de dados são peças fundamentais para o funcionamento de muitos dos aparelhos
electrónicos de uso corrente. Com a crescente procura de maior portabilidade e autonomia torna-se
essencial procurar formas de diminuir os dispêndios de potência ao mesmo tempo que se tenta
minimizar a área ocupada de forma a minorar os custos. Neste trabalho uma arquitectura de
conversores que procura dar resposta a estes problemas é apresentada e implementada. Os
conversores analógico digitais do tipo cíclico algorítmico caracterizam-se pela sua pequena área,
visto só possuírem um andar funcional, sendo neste relatório descrita a diferenciação entre ciclos
(com diferentes necessidades de precisão), por meio da regulação da corrente fornecida. O conversor
tem uma resolução programável de 8, 10 ou 12 bits e é projectado para uma tecnologia de 90nm da
TSMC1.
Palavras-chave
cíclico, algorítmico, conversor analógico digital, programável, adaptação de corrente
1 Taiwan Semiconductor Manufacturing Company Limited
ii
Abstract
Data conversion is fundamental to many electronic devices seen today. With the ever growing
demand for portability and autonomy, it becomes essential to find ways to reduce power consumption
and area, in order to decrease costs. Autonomy and cost are vital for the consumer electronics
market. For this work an analog to digital converter (ADC) architecture, which tries to embrace this
issues is presented and implemented. Cyclic/algorithmic ADCs have a relatively small area due to the
existence of only one functional stage. The different cycles of operation are characterized by different
bias current, since the precision required changes with the bit on analyses. The ADC has a
programmable resolution of 8, 10 or 12 bits and is projected for a 90nm technology from TSMC.
Key Words
cyclic, algorithmic, analog to digital converter, programmable, current adaptation
iii
Índice 1. Introdução _______________________________________________________________ 1 1.1. Motivação __________________________________________________________________ 1 1.2 Descrição Genérica da Adaptação de Corrente _____________________________________ 2 1.3 Estado da Arte _______________________________________________________________ 3 1.4 Organização do Relatório _______________________________________________________ 4
2. Arquitectura _____________________________________________________________ 5 2.1 MDAC & S&H ________________________________________________________________ 7 2.1.1 S&H _____________________________________________________________________________ 9
2.1.2 MDAC _________________________________________________________________________ 11
2.2 FLASH 1.5 bits _______________________________________________________________ 12 2.3 FLASH de 2 bits ______________________________________________________________ 14 2.4 Correcção Digital ____________________________________________________________ 16
3. Modo de Funcionamento __________________________________________________ 19 3.1 Descrição Funcional __________________________________________________________ 19 3.2 Máquina de Estados __________________________________________________________ 21
3.2.1 Sinais de Entrada _______________________________________________________________ 23
3.2.2 Sinais de Saída _________________________________________________________________ 24
4. Escalonamento de Corrente ________________________________________________ 27 4.1 Relação Precisão Corrente _____________________________________________________ 28 4.2 Simulação e Resultados _______________________________________________________ 31 4.3 Implementação ______________________________________________________________ 36
5. Dimensionamento e Esquemáticos __________________________________________ 39 5.1 Amplificador ________________________________________________________________ 40 5.2 Comparadores ______________________________________________________________ 41 5.3 Circuito de Amplificação de Referências __________________________________________ 42 5.3.1 Dimensionamento de Topo __________________________________________________________ 43
5.3.2 Topologia e Dimensionamento ____________________________________________________ 45
5.3.3 Simulação ______________________________________________________________________ 47
6. Resultados ______________________________________________________________ 51 6.1 Simulações Finais ____________________________________________________________ 51 6.2 Poupanças com Variação de Corrente ___________________________________________ 53
7. Conclusões ______________________________________________________________ 55
Referências _______________________________________________________________ 57 ANEXOS:
I ‐ Esquemas Eléctricos II ‐ Esquemas de Simulação III ‐ Resultados IV ‐ Código do Programa de Correcção Digital
V ‐ Outros
iv
Lista de Figuras
Figura 1 – representação do papel dos conversores de dados .............................................................. 1
Figura 2 - Esquema Funcional de um Conversor Cíclico ........................................................................ 5
Figura 3 - Esquema de Blocos do ADC Cíclico....................................................................................... 6
Figura 4 - Exemplo do Processo de Geração de Resíduo ...................................................................... 8
Figura 5 - Amplificador e malhas envolventes ........................................................................................ 9
Figura 6 - Malha de Samplig&Hold a) fase 1 (sampling) b) fase 2 (holding) ........................................ 10
Figura 7 - Malha MDAC a) fase 1 (sampling) b) fase 2 (multiplication) ................................................ 11
Figura 8 - Estrutura do sub-conversor FLASH ADC de 1.5bitas ........................................................... 13
Figura 9 - Descrição Funcional do FLASH de 2bits .............................................................................. 14
Figura 10 - Esquema dos shift-registers em uso................................................................................... 15
Figura 11 - Bloco de Correcção Digital ................................................................................................. 16
Figura 12 - Malhas do MDAC ................................................................................................................ 19
Figura 13 - Operação do Conversor ...................................................................................................... 21
Figura 14 - Diagrama de Estados ......................................................................................................... 22
Figura 15 - Sinais de Entrada e de Saída da Máquina de Estados ...................................................... 23
Figura 16 - Organização do vector en_imirror ....................................................................................... 24
Figura 17- Malhas em utilização no caso Pipeline e no caso Cíclico ................................................... 27
Figura 18 - Fluxo e Estrutura do Capítulo ............................................................................................. 28
Figura 19 - Simulação de ganho DC do amplificador ........................................................................... 30
Figura 20 - INL & DNL obtidas para 12 bits com polarização máxima ................................................. 31
Figura 21 - Escalonamento de Corrente ............................................................................................... 32
Figura 22 - Interface do Script com os dados da simulação final ......................................................... 33
Figura 23 - Distribuição prevista para SNR e THD ............................................................................... 34
Figura 24 - Distribuição prevista para SINAD e ENOB ......................................................................... 34
Figura 25 - Distribuição prevista para SFDR ......................................................................................... 35
Figura 26 - Distribuição prevista para a DNL e para INL ...................................................................... 35
Figura 27 - Resultado da Análise de Fourier......................................................................................... 36
Figura 28 - Esquema Funcional Do Espelho de Corrente Controlável ................................................. 36
Figura 29 - Esquema eléctrico do espelho de corrente ........................................................................ 38
Figura 30 - Corrente Longo de Uma Conversão ................................................................................... 38
Figura 31 - Tensões de Referência ....................................................................................................... 39
Figura 32 - Comparador Dinâmico ........................................................................................................ 42
Figura 33 - Esquema Simplificado de amplificação .............................................................................. 42
Figura 34 - Amplificador ligado como Buffer ......................................................................................... 43
Figura 35 - Amplificador e Capacidades Associadas ............................................................................ 43
Figura 36 - Topologia Utilizada ............................................................................................................. 45
Figura 37 - Resultados de Simulação dos Amplificadores de Referências .......................................... 48
Figura 38 - Esquema de Fases ............................................................................................................. 50
v
Figura 39 - Resposta do Conversor a Entrada Sinusoidal .................................................................... 51
Figura 40 - Resposta do Conversor a uma Rampa .............................................................................. 52
vi
Lista de Tabelas
Tabela 1 - Saídas do FLASH de 1.5 bits para cada intervalo ............................................................... 13
Tabela 2 – Codificação da Resolução ................................................................................................... 23
Tabela 3 - Precisão e Erro das Diferentes Operações Desempenhadas Pelo S&H/MDAC ................. 29
Tabela 4 - Correntes testadas (em micro Ampere) ............................................................................... 30
Tabela 5 - Codificação de Controlo do Espelho de Corrente ................................................................ 37
Tabela 6 - Tensões de Referência ........................................................................................................ 39
Tabela 7 - Dimensões ........................................................................................................................... 47
vii
Lista de Siglas e Abreviações
ADC – “analog-to-digital converter”
DAC – “digital- to-analog converter”
MDAC – “multiplying digital-to-analog converter”
MOS – o mesmo que MOSFET
MOSFET – “metal-oxide semiconductor field effect transistor “
NMOS – transístor MOS do tipo N
PMOS – transístor MOS do tipo P
S&H – “sample and hold”
TSMC – Taiwan Semiconductor Manufacturing Company Limited
VCO – “voltage controlled oscillator”
INL – “integral non linearity”
DNL – “differential non linearity”
ENOB – “effective number of bits”
SINAD – “signal to noise and distortion”
SFDR – “spurious free dynamic range”
SNR – “signal to noise ratio”
THD – “total harmonic distortion”
LSB – “least significant bit”
viii
ix
1. Introdução
1.1. Motivação
Ao longo das últimas décadas tem-se verificado uma explosão na quantidade e diversidade
de aparelhos, que tendo por base a electrónica, expandem a facilidade de comunicação, permitem
um aumento produtividade ou, simplesmente, tenham carácter lúdico. Exemplos disto são telemóveis
e PDAs, consolas e leitores multimédia. Estes aparelhos têm em comum a necessidade de fazerem a
conversão de sinais do mundo analógico para o digital e vice-versa. Estas conversões são feitas por
intermédio de ADCs e DACs, sendo os primeiros fundamentalmente responsáveis pela leitura de
valores de entrada, como sejam ecrãs tácteis ou leitura de “carga” em baterias, de modo a que
processamento digital possa ter lugar. Já os DACs permitem que o resultado do processamento
digital, como é o caso da descodificação de um ficheiro de música, se torne disponível no ambiente,
por meio de uma coluna, a título de exemplo. A Figura 1 exprime a função descrita.
Figura 1 – representação do papel dos conversores de dados (1)
Para aplicações em que a produção em massa é uma realidade, como é o caso da
electrónica de consumo, onde qualquer factor de diferenciação pode levar ao sucesso ou insucesso
de um produto, é compensatório investir na redução de custos de produção e na melhoria das
características de funcionamento do equipamento, mesmo que tal requeira maior dispêndio de
recursos na fase de projecto (custos não recorrentes). No caso do trabalho a que este relatório
1
concerne irá ser descrita uma arquitectura de ADCs que pretende minorar os custos associados e
reduzir a potência necessária ao funcionamento do conversor. O tipo de ADC em causa é o
Cíclico/Algorítmico (por simplificação será, daqui em diante, designado apenas por cíclico).
Os conversores Cíclicos dispõem de um conjunto reduzido de amplificadores o que lhes
confere as vantagens descritas, para além destas características a arquitectura permite a utilização
de correcção digital (requisitos de precisão menos exigentes nos comparadores).
Uma área menor confere vantagens em custo, pois permite um maior número de dies2 por
wafer3 o que se traduz na necessidade de menos bolachas de silício e num yeld (rendimento) mais
alto. Também em virtude do número de amplificadores um baixo consumo é espectável. Como forma
de acentuar as poupanças de energia a corrente de polarização fornecida não é estática. Esta
adaptação de corrente é parte importante do presente trabalho, pois permite melhorar um dos pontos
fortes da arquitectura e aproximar o desempenho de conversão do obtido numa estrutura pipeline.
1.2 Descrição Genérica da Adaptação de Corrente
Numa arquitectura de conversor do tipo cíclico o valor de entrada é considerado apenas
durante parte do processo que leva à obtenção do número digital correspondente, embora o
amplificador responsável pela amostragem e retenção continue a operar com outras funções e ligado
a malhas capacitivas diferentes. Esta diferenciação nas ligações requerer que se tenha sempre
presente em que fase do processo de conversão se encontra o conversor. Tal é possível por meio de
uma máquina de estados que controla as ligações a fazer em cada momento (ciclo). Como função
suplementar os diferentes estados também podem ser usados para controlar o nível de corrente a
fornecer ao amplificador. Esta diferenciação da corrente é útil, visto ao contrário de outras
arquitecturas, nomeadamente a pipeline, a estrutura responsável pela obtenção dos bits mais
significativos é a mesma que possibilita a obtenção dos restantes. Para cada bit extraído é gerado um
resíduo que será processado de modo a obter os seguintes, logo a precisão necessária para os
primeiros ciclos será maior do que para os finais, uma vez que qualquer erro introduzido inicialmente
será multiplicado, indo comprometer os resultados seguintes pondo em causa a linearidade do
circuito.
Os factores controláveis que determinam o valor de precisão que um dado circuito activo é
capaz de atingir são o ganho DC e a sua largura de banda, sendo que o ganho influência o erro após
o transitório e a largura de banda condiciona o tempo de estabelecimento. No caso presente devido à
natureza comutada do circuito e à frequência de trabalho em uso o regime permanente nunca é
2 designação dada ao silício onde cada circuito individual é “impresso” 3 bolacha (de silício), é a unidade base do fabrico em semicondutores
2
plenamente atingido.
O parâmetro de dimensionamento de mais fácil variação sem recorrer a alterações nos
componentes físicos é a corrente de polarização. Tanto o ganho como a transcondutância do
amplificador são condicionados pelas dimensões atribuídas aos transístores que o compõem, já no
caso da corrente tal não sucede.
1.3 Estado da Arte
Existem duas formas de minorar a precisão, e com ela a potência dispendida, em
consonância com os requisitos de cada ciclo. Ambas procuram baixar a corrente fornecida ao
conversor à medida que os ciclos vão avançando.
Uma forma de o fazer é agir directamente na corrente fornecida por meio de uma fonte de
polarização controlada que envie diferentes valores de corrente para o amplificador. Embora seja
simples fornecer um valor diferente de corrente em cada ciclo é necessário ter em atenção que o
amplificador não irá ter um dimensionamento específico. Este factor limita a gama de variação da
corrente a fornecer, pois existe o risco de dar origem a uma alteração no estado de funcionamento
dos transístores.
Em alternativa pode-se recorrer a fonte de corrente constante e actuar na potência dispendida
por alteração do duty-cycle4. Para cada ciclo um tempo cada vez menor é dado para a convergência,
ao fim deste tempo os bits são extraídos e a componente analógica do conversor desligada. Este
método requer uma complexidade maior com a utilização de componentes (amplificadores e
comparadores) com capacidade de se desligarem e retornarem ao funcionamento regular num
intervalo de tempo equivalente a pequena parcela do período. Outra complicação adicional prende-se
com a necessidade de utilizar um VCO (ou fonte de múltiplas fases implementada com linhas de
atraso, por exemplo) e o respectivo circuito de controlo de modo a obter as múltiplas fases
correspondentes a cada duty-cycle. Tem por vantagem não expor os amplificadores a diferentes
níveis de polarização.
Em (2) é proposta uma solução híbrida em que a limitação do tempo de convergência é
utilizada em conjunção com escalonamento da corrente de polarização, tal permite atacar um
problema que embora apresente semelhanças ao abordado neste trabalho não é similar. Trata-se de
uma situação em que o objectivo não é escalar a precisão mas sim a frequência, ou seja, pretende-se
um funcionamento para o conversor que abranja um vasto leque de frequências, não sendo possível
manter os transístores saturados com simples recurso a variação da corrente.
4 factor de ciclo
3
Para este trabalho uma solução baseada, apenas na variação da corrente foi escolhida.
Ficando-se esta escolha a dever à maior simplicidade, com mais fácil aproximação a estruturas já
existentes. Verifica-se que esta solução é suficiente para o conversor sobre o qual se debruça este
trabalho.
1.4 Organização do Relatório
No capítulo 2 - Arquitectura - o modo de operação de um conversor cíclico é explicado e os
blocos de maior relevância são descritos. No capítulo 3 – Modo de Funcionamento – a sequência de
acções necessárias à conversão é descrita, com particular enfoque no comportamento da máquina
de estados. No capítulo 4 – Escalonamento de Corrente – é dada maior atenção aos blocos mais
directamente envolvidos com o escalonamento e é exposto o método usado para a escolha das
correntes a fornecer. No capítulo 5 – Dimensionamento e Esquemáticos – a implementação real dos
diferentes blocos pode ser observada, bem como a descrição de alguns dos aspectos a ter em conta
para a realização de cada um deles. Os resultados obtidos encontram-se expostos em 6 –
Resultados – e as reflexões finais em 7 – Conclusões – podem ser lidas.
4
2. Arquitectura
Input Signal
If High
If Unknown
If Low
+
Digital
-Vref/2
+Vref/2
0
2x
If 1st cycle input throught, else residue
throught
residue
Figura 2 - Esquema Funcional de um Conversor Cíclico
A Figura 2 é um esquema simplificado do funcionamento de um conversor analógico digital
cíclico com redundância. A redundância está patente na presença de um terceiro patamar de decisão,
se não fosse usada redundância apenas os patamares “high” e “low” existiriam. A redundância
introduz um terceiro patamar ”unknown” correspondente a uma zona em torno do valor zero
(diferencial), para a qual não é assumida decisão quanto ao valor de sinal. Tal permite relaxar as
especificações dos comparadores empregues, nomeadamente no que ao offset5 diz respeito. Existe
no entanto um valor máximo para o patamar “unknown”, este é de módulo 4refV , caso seja
ultrapassado ocorre saturação do circuito. A redundância utilizada é de 1.5 bit e é extraída
digitalmente de forma a obter a palavra digital final.
5 valor em torno do qual o comparador comuta
5
No primeiro ciclo a entrada é amostrada, sendo a amostra analisada por dois comparadores
que dão origem a três patamares e levam à determinação da soma a fazer para a obtenção do
resíduo. Os bits resultantes da comparação são guardados, por meio de flip-flops. Todos os bits
guardados serão utilizados para a eliminação da redundância e obtenção do resultado final.
Os dois comparadores referidos acima são parte integrante de um ADC do tipo flash de 1.5
bits (sub-conversor). O restante ADC tem por elemento a lógica de codificação que irá dar origem aos
sinais digitais que controlam a geração do resíduo e os bits a serem guardados.
Na Figura 3 encontram-se as estruturas de maior relevo para o funcionamento do conversor.
Figura 3 - Esquema de Blocos do ADC Cíclico
Em seguida é feita a descrição do funcionamento do conversor e do papel desempenhado por
cada bloco. Os doze bits indicados para a saída correspondem ao número de pinos existentes. Como
existe a capacidade de alterar a resolução por meio da alteração externa de registos a que a máquina
de estados tem acesso, os bits menos significativos poderão não ser de interesse para o valor da
saída.
6
2.1 MDAC & S&H
Este bloco tem por missão amostrar o valor de entrada e proceder às operações necessárias
à geração dos consecutivos resíduos que possibilitam, através do flash de 1.5bits, a obtenção dos
bits que irão, após manipulação no bloco de correcção digital, dar origem ao número digital que se
espera correspondente ao valor analógico amostrado.
O que se designa por “resíduo” não é mais que o resultado de uma operação efectuada sobre
a entrada ou sobre um resíduo gerado em ciclo anterior. Esta operação depende da gama de valores
(patamar) a que pertence a entrada (ou resíduo anteriormente gerado) e tem por objectivo eliminar a
influência que o valor analógico correspondente ao bit extraído previamente tem sobre o valor inicial,
passando os bits menos significativos a terem toda a responsabilidade sobre o valor de tensão visto
pelo conversor. Com os bits mais significativos já extraídos, parte da informação encontra-se em
formato digital (bits mais significativos) e outra ainda no estado analógico. O processo faz com que
não haja em cada instante redundância no valor de sinais presentes, o que já está em digital não tem
contributo para o valor analógico e este ainda não tem representação digital.
O bloco encarregue da determinação da referida gama/patamar é o flash de 1.5 bits que
actua no MDAC por meio de três bits, correspondendo cada um a um patamar de decisão
(“high”/”unknown”/”low”). Por cada ciclo um bit é analisado, tendo a sua contribuição de ser extraída
do sinal analógico em análise de modo a permitir a obtenção do bit seguinte. A contribuição de cada
bit para o sinal depende do seu valor. Se os comparadores do flash determinarem que o sinal
apresenta valor positivo (“high”) um valor analógico correspondente ao valor do bit mais significativo
(no ciclo em questão), ou seja, valor equivalente a metade da escala de valores em uso tem que ser
removido. Caso se trate de um valor negativo (“low”) o mesmo valor terá de ser, não removido mas
sim adicionado. Para casos em que o sinal apresente valor perto de zero, não tomando o flash uma
decisão clara (patamar “unknown”), ao sinal de entrada não é somado nem subtraído qualquer valor.
Independentemente do valor que irá dar origem a um novo resíduo o valor inicial é sempre
multiplicado por 2 , sendo n o número de bits extraídos por ciclo. Esta operação permite que ao ser
extraída a contribuição do bit anterior a escala permaneça inalterada, não havendo lugar a
modificações dos valores de referência em uso. No caso do trabalho presente é utilizado
n
1n =
(redundância não contabilizada) este é o valor mínimo e tem por desvantagem a necessidade de um
número de ciclos de funcionamento igual à resolução pretendida (o flash de 2 bits obtêm os bits
finais). No entanto este valor leva a que a multiplicação analógica seja mínima (2 o que é menos
exigente para o amplificador a usar (montagem com ganho menor).
)×
Na Figura 4 encontra-se exemplificado o processo descrito para a obtenção de três bits, sem
redundância. As bolas de cor vermelhas representam o valor do resíduo, os valores representados
nos eixos a tracejado nunca ocorrem na realidade, sendo que a multiplicação e a soma/subtracção
7
são parte integrante de uma única operação analógica. Os casos que apresentem valores de módulo
baixo em que apenas multiplicação ocorra (zona de indecisão não presente na figura) nunca irão
ultrapassar as tensões limite ,2 2ref refV V
+ − , não sendo motivo de preocupação. Os valores referidos
são de natureza diferencial.
2r e fV
+
2r e fV
−
0
2 ×
2refV−
2 ×
2refV+
Figura 4 - Exemplo do Processo de Geração de Resíduo
O circuito que realiza as funções acima descritas faz uso de condensadores comutados,
havendo três malhas distintas de condensadores que partilham um único amplificador operacional.
Uma das malhas corresponde à função de sampling-and-hold e duas correspondem ao MDAC. A
utilização de duas malhas permite duplicar a frequência de funcionamento, por cada ciclo de relógio
dois ciclos de operação ocorrem. Todas as malhas presentes podem fazer amostragem, tendo-se
optado pelo uso de uma malha dedicada para o efeito de modo a tornar mais fácil uma adaptação do
circuito para diferentes níveis de alimentação do sinal de entrada. A configuração deste bloco está
patente na Figura 5.
Em seguida a estrutura e funcionamento de cada malha é descrita.
8
Amplificador
C
C C
inpV
innV
cmV
cmV
outpVamp
inpVamp
innVamp
outnVamp
1φ
1φ
1φ
1φ
1φ
2φ
2φ
2φ
2φ
2φ
S&H
C
C C
C C
outpVamp
inpVamp
innVamp
outnVamp
1 1
1
1 1
2
2
2
2
MDACoutpVamp
outnVamp
innVamp
inpVamp outpVamp
outnVamp
/ /ref ref cmV V V+ −
/ /ref ref cmV V V− +
C C
C C
outpVamp
inpVamp
innVamp
outnVamp
1 1
1
1 1
2
2
2
2
MDACoutpVamp
outnVamp
/ /ref ref cmV V V+ −
/ /ref ref cmV V V− +
outpVamp
outnVamp
Figura 5 - Amplificador e malhas envolventes
2.1.1 S&H
Os circuitos correspondentes às malhas descritas funcionam com comutação/redistribuição
na carga dos condensadores presentes e operam em duas fases distintas. No caso da malha de
sampling-and-hold as fases existentes equivalem à amostragem (fase um, 1φ ) e à retenção (fase
dois, 2φ ). Na fase de amostragem o sinal de entrada é guardado por meio de um agregado de
condensadores, sem actuação por parte do amplificador. Na fase dois (retenção) a carga guardada
durante a amostragem é redistribuída pelo segundo agregado que constitui a malha de feedback6. O
valor da tensão de saída é definido pela relação entre as capacidades dos dois agregados (2.5), que
se obtém através da lei de conservação de carga. Na Figura 6 encontra-se a morfologia do circuito
em cada uma das fases. Tanto a figura como a análise efectuada tem por base um modelo não
diferencial, tal ocorre apenas por simplificação, o circuito real é completamente diferencial.
6 malha de realimentação
9
inV
outV
sCsC
fC
Figura 6 - Malha de Samplig&Hold a) fase 1 (sampling) b) fase 2 (holding)
A análise da função da malha faz-se com recurso à lei de conservação de carga. A lei indica
que não ocorre geração espontânea de carga, pelo que a carga presente na malha numa fase é
idêntica à que está presente na seguinte (2.2). Esta correspondência permite obter a relação
existente entre no final da fase 2 e o valor de tensão amostrado na fase inicial. Com a equação outV
(2.1) extrai-se o valor da carga guardada em cada condensador (ou agregado).
Q VC= (2.1)
'Q Q ''= (2.2)
Toda a carga existente na fase um deve-se ao condensador de amostragem sC , fC em
curto-circuito. Na fase dois o oposto sucede, sC fica curto circuitado entre a massa e a massa virtual
do amplificador. Em (2.3) e (2.4) encontram-se as cargas correspondentes a cada uma das fases de
funcionamento da malha de S&H.
(2.3) 'in sQ V C= −
(2.4) ''out fQ V C= −
Recorrendo a (2.2), a relação patente em (2.5) surge.
sout in
f
CVC
= V (2.5)
A relação encontrada (2.5) confirma que a malha faz amostragem e retenção se as
capacidades sC e fC forem idênticas. A existência de uma malha separada para a função descrita
deve-se à possibilidade das tensões de entrada não se encontrarem na gama dinâmica usada
internamente pelo conversor. Caso esta disparidade se dê a manipulação do quociente das
10
capacidades da malha permite fazer a conversão, sendo o funcionamento interno do conversor
similar em ambos os casos. No presente trabalho considera-se que o circuito será utilizado com
tensões de sinal de entrada de natureza semelhante à de alimentação do conversor, estado sC e fC
igualados.
2.1.2 MDAC
As malhas de MDAC funcionam segundo os mesmos princípios que a malha única de
sampling-and-hold operando também em duas fases. A primeira fase de operação corresponde à
amostragem de uma tensão de entrada que, no caso das malhas MDAC, corresponde ao sinal de
saída da malha S&H (fase dois, retenção) ou à saída da outra malha MDAC (fase dois, multiplicação).
A segunda fase de operação corresponde à multiplicação e dá origem ao resíduo. Na Figura 7 a
configuração que a malha apresenta em cada fase está representada.
inV C f
outVx
CsV
)
CC fs
Figura 7 - Malha MDAC a) fase 1 (sampling) b) fase 2 (multiplication)
Seguindo um procedimento em tudo semelhante ao utilizado em 2.1.1 as expressões da
carga em cada fase estão indicadas em (2.6) e em (2.7).
(2.6) ' (in s fQ V C C= − × +
''x s out fQ V C V C= − − (2.7)
Das equações (2.6) e (2.7) obtém-se a relação (2.8).
( )s f in s x
outf
C C V C VV
C+ −
= (2.8)
Como descrito em secção anterior a tensão final da saída deve corresponde ao dobro da
11
tensão de entrada, a solução escolhida para que tal ocorra passa por utilizar uma capacidade igual
em cada agregado ( sC e fC ). A equação obtida e que corresponde à desejada para a obtenção do
resíduo é a (2.9).
2out in xV V V= − (2.9)
O valor da tensão xV é determinado pelo nível a que a entrada pertence sendo controlado
pelo flash de 1.5 bits e pode ter os seguintes valores 2refV+ , ou 0
2refV− .
2.2 FLASH 1.5 bits
O sub-conversor analógico-digital de 1.5 bits tem por função determinar a partir do valor de
resíduo passado, ou do sinal de entrada amostrado, qual a operação a ser efectuada pelo MDAC e
extrair informação que permita após correcção digital obter a palavra digital que é o objectivo final do
conversor. Os conversores FLASH são constituídos por comparadores e lógica digital. Os
comparadores determinam qual o patamar de tensão ao qual o sinal em análise pertence por
comparação com tensões de referência, a parte digital faz a codificação desejada aos bits resultantes
das comparações efectuadas e permite com recurso a células de memória (no caso latchs SR)
manter os resultados fixos pelo tempo necessário à fase de multiplicação do MDAC. Este tipo de
conversor tem como principal vantagem a rapidez de conversão, infelizmente caracteriza-se também
por elevada área e consumo para resoluções mais elevadas devido ao grande número de
comparadores que requer.
As tensões de referência dos comparadores têm correspondência directa com as fronteiras
dos níveis de decisão abordados em 2.1 pelo que o seu valor exacto não é de relevância fundamental
num entanto o valor escolhido tem que garantir a não ocorrência de saturação ( _ 4ref
REF COMP
VV ≤ )
e assegurar que o valor seja suficientemente elevado para que erros de offset (3) não possam levar a
que um estado “low” ou “high” possa ser determinado de forma errónea.
Na Tabela 1 encontra-se a configuração das saídas que o sub-conversor tem para cada uma
das situações que a entrada pode assumir. e são os bits a guardar e que dão origem ao
resultado digital quando combinados com os restantes bits extraídos nos demais ciclos de conversão.
Os sinais ,Y e
1b 0b
X Z correspondem a cada um dos estados descritos em 2.1 e dão origem aos sinais
que irão controlar o funcionamento do MDAC. Estes sinais são negados por motivos que se prendem
com utilização de duas malhas MDAC, os sinais provenientes do sub-conversor têm necessidade de
12
ser combinados com sinais de fase antes de influenciarem o funcionamento das malhas, esta
combinação é facilitada se os sinais ,Y e X Z forem negados.
Tabela 1 - Saídas do FLASH de 1.5 bits para cada intervalo
inV 0 1b b X Y Z Resíduo
in HV V> 1 0 0 1 1 22REF
inVV −
L in HV V V< 2 inV< 0 1 1 1 0
in LV V< 0 0 1 0 1 22REF
inVV +
A estrutura funcional do sub-conversor é apresentada na Figura 8.
1b0b
XZY
inpV
innV
inpV
innV
refpV
refnV
crefV +
crefV −
crefV +
crefV −
crefV −
crefV +
Figura 8 - Estrutura do sub-conversor FLASH ADC de 1.5bitas
O momento em que cada comparação é efectuada é controlado por um sinal de latch que é
sincronizado de modo a que ocorra entre as duas fases de operação das malhas capacitivas
associadas ao amplificador.
13
2.3 FLASH de 2 bits
O método de eliminação de redundância empregue (descrito em 2.4) requer que os bits
menos significativos sejam extraídos sem redundância. Devido a esta necessidade a forma de
funcionamento do conversor no que concerne às últimas extracções não pode ser semelhante à
forma utilizada para os bits mais significativos. Durante o último ciclo de extracção (fase dois do
último ciclo de relógio) o FLASH de 1.5 bits (secção 2.2) associado ao MDAC não tem contributo para
a conversão, sendo este contributo assegurado por um FLASH de dois bits que apenas nesta fase de
operação é activado. Este FLASH não dispõe de lógica combinatória, a saída provem directamente
das decisões dos comparadores guardadas por latchs em tudo semelhantes aos utilizados pelo sub-
conversor de 1.5 bits. A saída corresponde ao código termómetro proveniente dos comparadores e à
sua negação.
Uma representação pictográfica de funcionamento encontra-se na Figura 9.
4refV
0
4refV−
inV [ ]3q [ ]3qz
1
11
0
00
000
111
1
00
110
0
00
1
11
Figura 9 - Descrição Funcional do FLASH de 2bits
14
2.3 Shift Register
A natureza do funcionamento cíclico faz com que a fase final de obtenção da palavra digital
necessite de dados obtidos ao longo de toda a conversão. A forma encontrada para proceder à
retenção dos dados provenientes dos sucessivos ciclos de conversão é a utilização de quatro
conjuntos de células básicas de memória (flip-flops) ligadas em série (shift-registers). A necessidade
de utilização de quatro conjuntos fica de dever-se à utilização de duas malhas MDAC e ao resultado
das comparações ser expresso numa palavra digital de dois bits. As malhas funcionam em fases
opostas, sendo necessário obter os bits, provenientes do FLASH de 1.5 bits, associados a cada uma
também de forma desfasada, ou seja com recurso a dois sinais de relógio. Cada cadeia recebe um
dos dois bits produzidos e é activada por um sinal de relógio correspondente à fase de multiplicação
da malha MDAC cujo valor amostrada está na origem dos valores produzidos pelo sub-conversor.
Uma vez que o comportamento das malhas de MDAC e do sub-conversor de 1.5 bits não
apresenta qualquer disparidade durante a última fase de conversão, o resultado obtido pelo
comparador deve ser descartado, para tal é colocado em cada cadeia de flip-flops um elemento
suplementar que absorve estes últimos bits e cuja saída é descartada para efeitos de obtenção do
resultado da conversão. Esta adição é necessária devido ao momento em que se faz a actualização
da saída do conversor e dos próprios registos. O funcionamento não é alterado de modo a permitir o
aproveitamento do nó de saída do amplificador para a entrada do FLASH de 2 bits que procede à
obtenção dos bits menos significativos.
Um esquema simplificado dos shift-registers afectos ao bit menos significativo proveniente do
conversor flash é conteúdo da Figura 10. Há a salientar que no caso dos bits afectos ao bit mais
significativo há interesse na utilização do valor negado, pelo que se faz uso das saídas inversoras
dos flip-flops ao contrário do que se passa no caso apresentado na ( )qz Figura 10.
1φ
2φ
0ind0 1d 0 3d 0 9d
0 0d 0 2d 0 8d
Figura 10 - Esquema dos shift-registers em uso
15
2.4 Correcção Digital
0Y1Y
ic1Za 0a
0Y1Y
3:1a 3:1az
0Y1Y
ic1Za 0a
0Y1Y
ic1Za 0a
0c
0c
0Y1Y
ic1Za 0a
0c
0Y1Y
ic1Za 0a
0Y1Y
ic1Za 0a
0Y1Y
ic1Za 0a
10
selconv8
selconv
_ 0pre q
0q1q
_ 2pre q_ 4pre q
_ 0pre q
2q3q
_ 0pre q
4q
10
selconv8
5q6q10q11q
selconv
Figura 11 - Bloco de Correcção Digital (anexo V-I)
A obtenção e retenção do valor digital que é resultante da conversão são as funções do bloco
de correcção digital que está representado na Figura 11. A correcção digital requer os bits
acumulados ao longo da conversão nos shift-registers e os provenientes do flash de 2 bits que actua
na última fase de conversão. Os bits com origem no conversor de 2 bits não contêm redundância pelo
que o bit menos significativo é determinado directamente, no entanto a codificação recebida é do tipo
termómetro tendo a lógica presente no bloco de correcção de fazer a conversão para binário. O
segundo bit que resulta da conversão é utilizado para eliminar redundância quando combinado com
bits resultantes da acção do sub-conversor de 1.5 bits.
Com excepção da lógica de conversão que actua sobre o resultado do flash de 2 bits, as
restantes unidades de lógica combinatória são half-adders 7 sendo o bit menos significativo
proveniente do sub-conversor ( )0A somado com o bit de carry gerado pelo somador anterior (ou
pelo bit mais significativo gerado pelo flash de 2 bits, após descodificação). O bit mais significativo
vindo do sub-conversor ( )1A controla o valor do bit de carry que é gerado, Se este for um, o carry
também o será, caso contrário o half-adder apresenta funcionamento normal.
O funcionamento descrito deve-se a que cada conjunto 1, 0A A é proveniente de uma
conversão que corresponde ao bit de saída actuado pelo bit de carry gerado pelo somador que tem
1, 0A A por entrada. O bit de carry é ‘1’ caso um estado “high” ( 1 1A = ) ocorra ou se esteja perante
um caso “unknown” em que a contribuição do somador anterior leva à conclusão de que se trata de
7 somadores sem carry in
16
um valor positivo ( ). 1 0, 2 1," _ " 1A A carry in= = =
Também presente no bloco de correcção digital está um sinal de reset controlado
externamente e que permite colocar a zero todos os bits de saída. Este sinal actua combinando-se
com o sinal proveniente dos blocos de lógica acima descritos por meio de uma porta and.
Por fim os bits são guardados em flip-flops activados por um sinal de relógio com origem na
máquina de estados.
O conversor tem resolução variável, podendo funcionar com resoluções de 12, de 10 ou de 8
bits. Tal variabilidade na resolução tem implicações na saída como seja a não validade de 4 ou 2 bits
caso a resolução máxima não seja a seleccionada. O bloco de correcção responde a alterações na
resolução por meio de interruptores que colocam os bits gerados pela lógica associada ao tratamento
dos resultados do conversor flash de 2 bits no local da cadeia apropriado, saltando os blocos
associados a entradas que não tem dados de relevo para resoluções mais baixas. O mesmo sistema
assegura que, independentemente do modo em que o conversor se encontra a funcionar, a saída
válida corresponde sempre aos bits mais significativos.
17
18
3. Modo de Funcionamento
Neste capítulo é descrita a sucessão de eventos que levam a uma conversão bem sucedida.
Para que este desígnio se cumpra, uma referência ao bloco de controlo não pode deixar de ser feita.
Este bloco de controlo é a máquina de estados e a sua análise funcional é feita em 3.2. No imediato o
funcionamento ao longo dos ciclos é descrito.
3.1 Descrição Funcional
Os elementos de maior relevância para o funcionamento do conversor são o MDAC, as suas
malhas e a fase de operação em que cada uma se encontra. Na Figura 12 é feita referência às três
malhas em questão. As malhas operam em duas fases que no seu conjunto perfazem um ciclo de
relógio, estas fases e a existência de duas malhas MDAC semelhantes permitem, operando as duas
malhas de forma desfasada, duplicar a velocidade de conversão, visto que por cada ciclo iremos ter
duas fases multiplicação e consequentemente dois ciclos de funcionamento por parte do sub-
conversor de 1.5 bits que trabalha em associação com o MDAC.
Figura 12 - Malhas do MDAC
Como já referido, o conversor possuí a capacidade de operar a diferentes resoluções tendo
para tal apenas de recorrer a variações no número de ciclos que são utilizados para cada conversão,
tal facilidade deve-se à semelhança de funcionamento entre os ciclos de operação. Esta igualdade
mantém-se para todos os ciclos que não o primeiro e o último. O primeiro ciclo tem como
particularidades proceder-se à actualização da saída, haver actuação da malha de S&H e de durante
a primeira fase ser feito um reset ao amplificador. O último ciclo requer a ligação do flash de 2 bits. O
“reset” referido ocorre na primeira fase do primeiro ciclo dado que a única operação que se realiza é a
amostragem da entrada não havendo malhas em operação que requeiram a utilização do
amplificador. Este procedimento consiste na criação de um curto-circuito dos nós de saída do
amplificador e permite ao circuito recuperar de uma situação de erro, em que por algum motivo, a
tensão diferencial na saída esteja fora da gama normal de funcionamento, apresentando o circuito
19
uma situação próxima da saturação.
Durante o primeiro ciclo as malhas em operação são a de S&H e a MDAC2, assim designada
devido à sua fase de amostragem corresponder à fase dois ( )2φ . Na fase um ( )1φ apenas a malha
de S&H se encontra a operar, estando na sua fase de amostragem. Este é o único momento em que
o sinal de entrada a converter é utilizado pelo conversor durante a totalidade da conversão. Na
fronteira entre as fases 1φ e 2φ uma nova comparação é realizada e as saídas do sub-conversor de
1.5 bits são actualizadas, como neste ciclo ainda nenhuma malha MDAC está em operação regular
estes resultados não irão contribuir para a conversão e são descartados por meio da própria
dimensão dos shift-registers responsáveis pela salvaguarda dos bits que irão possibilitar o
funcionamento do bloco de correcção digital e consequentemente a obtenção do valor digital final. Há
a referir que para além desta comparação não gerar resultados válidos também logo no inicio do
ciclo, com a comutação de 1φ os shift-registers irão obter bits sem significado, razão pela qual as
cadeias de registos que respondem a 1φ têm que conter um registo extra cuja saída não é
contabilizada para a geração do resultado mas que permitem a colocação dos bits de resultado da
conversão anterior nos registos de saída sem influência de bits inválidos. A saída é actualizada por
um sinal de relógio associado ao primeiro ciclo de operação.
Na fase dois do primeiro ciclo a malha de S&H encontra-se em retenção e simultaneamente a
malha MDAC2 faz a amostragem da saída do amplificador, ou seja está a fazer o seguimento do
valor produzido pela malha de amostragem e retenção. No fim desta fase, com a amostragem
realizada por parte de MDAC2 a utilidade da malha de S&H expira, apenas retornado à actividade
numa nova conversão. O valor amostrado é sujeito a escrutínio por parte do sub-conversor que nos
momentos finais do ciclo inicial gera os primeiros bits de relevo para a conversão e que possibilitam
um normal funcionamento da fase de multiplicação de MDAC2 durante o segundo ciclo.
Para os ciclos intermédios contribuem as malhas MDAC1 e MDAC2. Durante 1φ MDAC2
encontra-se na sua fase de multiplicação, para o funcionamento da qual recorre aos valores das
saídas do sub-conversor de 1.5 bits que foram actualizados no final do ciclo anterior. Enquanto
MDAC2 faz uso do amplificador para proceder à geração do resíduo, a malha MDAC1 está na sua
fase de amostragem e faz o seguimento da saída. A fase 2φ tem funcionamento similar à fase 1φ
apenas sendo diferente nos protagonistas. Em 2φ é MDAC1 que gera o resíduo e é MDAC2 a
amostrar a saída. Em cada ciclo dois bits são extraídos (não contabilizando redundância, na
totalidade são quatro).
O derradeiro ciclo conta com a operação de ambas as malhas MDAC e com o contributo do
flash de 2 bits responsável pela obtenção dos derradeiros bits. O funcionamento no que diz respeito
ao MDAC é em tudo semelhante, estando a diferença na entrada em funcionamento do conversor de
dois bits, este actua de forma síncrona com o sub-conversor de 1.5 bits mas apenas durante o ciclo
20
final. Os resultados obtidos pelo flash irão permanecer estáticos até ao último ciclo da conversão
seguinte.
A saída é actualizada no inicio do primeiro ciclo de conversão relativo à amostra seguinte à
quela cuja saída refere.
1φ2φ
1C 2C 3C 4C 5C
Figura 13 - Operação do Conversor
Na Figura 13 o funcionamento descrito encontra-se representado para uma resolução
escolhida de 10 bits. Cada C representa um ciclo de relógio que se encontra dividido nas fases 1φ e
2φ . As operações que decorrem no MDAC em cada fase também se encontram indicadas.
O esquemático das malhas encontra-se em I-XII.
3.2 Máquina de Estados
De forma a possibilitar o funcionamento descrito em 3.1 é necessário controlar o ciclo de
conversão em que o processamento se encontra e quando é que este corresponde a um ciclo final ou
inicial. A máquina de estados desenhada para cumprir estas funções é do tipo Moore e possui
21
codificação “one-hot”8. Esta codificação torna mais simples o controlo a fazer, nomeadamente no que
diz respeito ao controlo de corrente que é feito ciclo a ciclo, tendo a máquina um estado por ciclo.
O diagrama de estados encontra-se na Figura 14. e correspondem aos
estados e dão origem, após alguma lógica combinatória aos sinais que controlam o conversor. Existe
um outro sinal de relevo ( ), na saída da máquina de estados, indica qual dos estados
( ou ) corresponde ao primeiro ciclo de conversão. Este sinal resulta da combinação dos
referidos estados com os sinais exteriores que indicam qual a resolução a usar.
1 2, ,...St St Final
_en fcyc
1,St St2 3St
1St 2St 3St 4St 5St Final
1stCycleLast Cycle
Figura 14 - Diagrama de Estados
Como a resolução é variável não existe um estado específico atribuído ao primeiro ciclo, três
estados podem assumir essas funções. No caso da resolução máxima ser a seleccionada o
conversor vai passar por todos os seis estados, operando e de forma similar a um qualquer
estado intermédio, nesta situação o sinal que indica o primeiro ciclo encontra-se associado a . A
existência de dois sinais representativos do primeiro ciclo é útil pois permite diferenciar entre os
diferentes tipos de ciclos iniciais consoante a resolução. Para o funcionamento do MDAC esta
característica é supérflua, no entanto para o escalonamento da corrente não o é. O primeiro ciclo
para funcionamento com resolução máxima é mais exigente do que o primeiro ciclo de operação com
resolução mínima.
2St 3St
1St
Caso a resolução escolhida não seja a máxima o efeito na máquina é equivalente a extrair os
estados correspondentes aos iniciais para as resoluções superiores ( / e ). O valor dos
sinais associados aos estados “excluídos” é garantidamente zero.
1St 1St 2St
Para além dos estados referenciados na Figura 14 existe um estado suplementar que
8 a cada estado corresponde um dado bit, não podendo haver mais de um bit activo em simultâneo
22
corresponde à colocação do conversor num estado de dormência (“standby”) que leva ao corte da
corrente de polarização, ao não envio de sinais de activação (“latch”) para os comparadores e a saída
do conversor é colocada a zero. Este estado é designado por “off”.
Nos anexos X-IX a X-XI, encontram-se esquemáticos relativos à máquina de estados.
Figura 15 - Sinais de Entrada e de Saída da Máquina de Estados
Na Figura 15 estão listados os sinais que condicionam a máquina de estados e aqueles por
ela gerados. Em seguida o papel que cada um dos sinais desempenha é descrito.
3.2.1 Sinais de Entrada
Os sinais en_stdby e en_adc para a máquina de estados têm a mesma função, levam a
máquina para o estado “off”. O sinal reset leva a máquina para o estado inicial e limpa as saídas. clk permite que os estados comutem, depois de sofrer algum condicionamento analógico com o intuito de
o sincronizar com as fases que actuam no MDAC este sinal actua como relógio da máquina de
estados.
Os dois bits que compõem res <1:0> indicam a resolução de conversão e são codificados em
conformidade com a Tabela 2.
Tabela 2 – Codificação da Resolução
Resolução res <1:0>8 bits ‘01’
10 bits ‘10’
12 bits ‘00’
23
Os bits que constituem en_imirror <12:0> contêm informação quanto à quantidade de
corrente de polarização a fornecer em cada ciclo. Um dos bits do vector é um sinal de controlo que
força fornecimento máximo de corrente, os restantes são subdivididos em três grupos de quatro bits,
cada grupo é responsável pela quantidade de corrente que é fornecida durante um dado
agrupamento de ciclos. A Figura 16 mostra a organização de en_imirror <12:0>.
Figura 16 - Organização do vector en_imirror
A codificação de cada parte do vector e o porquê da atribuição de controlo de estado que
cada uma tem é explicada no capítulo 4.
3.2.2 Sinais de Saída
O conjunto dos sinais, descritos nesta secção é a forma que a máquina de estados tem de
influenciar o funcionamento do conversor, sendo portanto estes os sinais que levam a uma correcta
conversão.
A resolução da conversão é particularmente relevante à máquina de estados pois a sua
influência primeira recaí sobre o número de ciclos de operação, no entanto é necessário que a
informação passe também para o bloco de correcção digital pois este tem uma arquitectura estática,
estando pronto a receber o maior número de bits correspondentes à resolução máxima. Os bits
en_8b e en_10b são activos a ‘1’ caso a resolução designada seja de oito ou de dez bits
respectivamente. Estes sinais chegam ao bloco de correcção digital onde tem por efeito que as
entradas afectas a registos que apenas têm conteúdo válido para resoluções superiores à escolhida
sejam ignoradas.
Em 3.2 os efeitos do estado “off” são descritos. Este estado resulta da activação do sinal de
entrada en_stdby e/ou da desactivação de en_adc. Os sinais que na saída da máquina de estados
que propagam e dão origem aos efeitos desejados são en_adcstg e rst. O sinal rst pode também ter
origem no sinal reset que é responsável pela colocação da saída a zeros, apenas actua no bloco de
correcção digital. Outro sinal que apenas tem acção no bloco de correcção é upd_exit que funciona
como relógio para os registos de saída e é igual, pequeno atraso à parte, ao sinal en_fcyc. en_fcyc
24
trata-se do sinal que ao ser recebido pelo bloco S&H/MDAC leva a todas as características que
diferenciam o primeiro ciclo dos restantes.
O sinal en_2bf faz com que o conversor de 2 bits seja activado embora não actue sobre o
conversor directamente. O sinal é encaminhado para o bloco associado ao MDAC onde para além
deste se encontra o flash de 1.5 bits e todo o circuito analógico responsável pelo sincronismo dos
sinais que controlam as diferentes fases de funcionamento (detalhes no capitulo 5), entre estes sinais
encontra-se o sinal de latch dos comparadores afectos ao sub-conversor de 1.5 bits. Como este sinal
tem características semelhantes ao que se pretende que actue no conversor de 2 bits, uma “cópia” do
sinal de latch é enviada para o conversor durante o último ciclo de conversão, o sinal en_2bf dá
autorização para que este “envio” se faça.
O último sinal em apreço é ibias_ctr <3:0>, estes quatro bits controlam a corrente que o
espelho de corrente fornece ao amplificador. Estes bits têm origem no sinal de en_imirror <12:0> (secção 3.2.1), podendo se tratar de uma das subdivisões referidas em 3.2.1 ou caso estejamos com
activo ou com en_imirror <0> a ‘1’, com a codificação correspondente à corrente máxima. 1St
25
26
4. Escalonamento de Corrente
Em conformidade com o exposto no primeiro capítulo do presente relatório o conversor
dispõe de corrente variável ao longo dos diferentes ciclos de conversão, tal permite conciliar as
vantagens de uma arquitectura cíclica no que à área diz respeito, com a adaptação do circuito às
necessidades que cada bit extraído apresenta. Esta adaptação não poderá exceder a optimização
que hardware dedicado possibilita, mas garante um melhor desempenho em termos de consumo de
potência comparativamente com a manutenção das condições de polarização ao longo da totalidade
da conversão.
A adaptação da corrente de polarização fornecida tem de dar resposta a dois critérios
contraditórios. O objectivo principal da adaptação é permitir um dispêndio menor de potência, no
entanto tal poupança pode pôr em causa o desempenho do circuito, nomeadamente quanto à
precisão do bloco S&H/MDAC e por consequência o erro máximo introduzido por cada operação.
O primeiro passo a seguir para a determinação do escalonamento de corrente a fazer é a
obtenção da relação entre a corrente de polarização e a precisão que o amplificador permite. Em
seguida os dados obtidos são introduzidos num script de MATLAB concebido para o
dimensionamento de ADCs de tipo pipeline, como o funcionamento deste tipo de conversores é
semelhante ao de um conversor cíclico, as alterações necessárias para uso no contexto deste
trabalho resumem-se a impedir que os parâmetros gerados no contexto de uma análise de Monte
Carlo (em particular as capacidades dos diferentes agregados) variem de andar para andar, uma vez
que no caso cíclico trata-se da mesma malha. A destrinça entre as malhas empregues no caso
pipeline e no caso cíclico é a razão de ser da Figura 17.
Figura 17- Malhas em utilização no caso Pipeline e no caso Cíclico
O funcionamento do script referido requer a introdução dos erros e a precisão que cada fase
de conversão introduz, para além das características do amplificador usado e das dimensões dos
agregados capacitivos utilizados. Através de uma análise de Monte Carlo na qual os diferentes
27
parâmetros do conversor sofrem pequenas alterações em torno do valor nominal, emula-se a
variabilidade introduzida pelo processo de fabrico possibilitando a obtenção de uma ideia quanto ao
rendimento que se poderá obter nos dies a produzir. As características de desempenho do conversor
que são obtidas por simulação são as seguintes: INL, DNL, SNR, SINAD, SFDR e THD. Após a
análise dos resultados de simulação um espelho de corrente e a codificação é escolhida e
implementada.
O fluxo de trabalho descrito e a organização do presente capítulo são tema da Figura 18.
Figura 18 - Fluxo e Estrutura do Capítulo
4.1 Relação Precisão Corrente
A forma utilizada para obter os valores de precisão que o circuito é capaz de atingir foi a
realização de simulações correspondentes às operações que o S&H/MDAC pode desempenhar. As
operações em causa são a amostragem efectuada pela malha S&H e os dois tipos de multiplicação a
cargo do MDAC (multiplicação simples ou multiplicação com soma/subtracção). Para além das
referidas operações mais duas simulações são realizadas de modo a que a influência do conversor
de dois bits na precisão seja determinada. No total são cinco as situações a verificar (S&H; 2*MDAC;
2*MDAC+2 bits). Os blocos de hardware envolvidos são o S&H/MDAC onde se inclui o amplificador, o
flash de 1.5 bits e o bloco responsável pelo sincronismo dos sinais de controlo. Para este bloco a
designação Stg1_dual (I-I) é utilizada. A destrinça entre os diversos casos de funcionamento fica a
cargo dos sinais de controlo que são fornecidos externamente, como se provenientes da máquina de
estados.
28
A simulação utiliza variados valores de entrada de modo a obter o nível de desempenho que
o circuito permite nas diferentes situações com que se irá deparar durante funcionamento regular.
Como o objectivo principal é conhecer o efeito da corrente que as operações obtêm, diversas
condições de polarização tem de ser testadas. Tal é feito com base em múltiplas simulações
temporais com variação do valor da corrente de polarização (no HSPICE, .TRAN com recurso ao
parâmetro SWEEP). Por fim a menor precisão obtida para cada situação de funcionamento é
extraída, sendo este o valor a ser empregue no passo seguinte do dimensionamento.
Na Tabela 3 os resultados obtidos são explanados. Os resultados englobam a totalidades das
situações com que o circuito se irá deparar e contêm apenas os piores resultados que foram
verificados por simulação. A cada caso em estudo estão associadas três linhas de dados, a primeira
(P) contem os valores de precisão mínimos encontrados, já as restantes apresentam os valores
máximos de erro, sendo a linha Z relativa a situações em que a entrada se situa em torno de zero
(para as malhas MDAC apenas multiplicação ocorre) e a linha XY abrange os restantes casos. A
totalidade dos dados encontrados está no anexo III-II, no anexo III-I está um exemplo de simulação,
em II-I está o esquemático de simulação.
Cada coluna da Tabela 3 numerada de um a dez reflecte os resultados para uma dada
corrente de polarização. O valor real de corrente utilizado como ponto de partida para as simulações
foi determinado pelo dimensionamento inicial do amplificador utilizado neste trabalho que já se
encontrava em utilização para estruturas pipeline onde é utilizado no primeiro andar (o mais
exigente), não tendo sido alvo de alterações de monta. Para a frequência utilizada ( 60 zMh ) o
dimensionamento dita que uma corrente de 60 Aμ seja empregue. As simulações recorrem a
incrementos de 10% em relação ao dobro da corrente dimensionada, na tabela o número que
identifica cada coluna representa múltiplos da referida percentagem, ou seja os dados da coluna “1”
são resultado da aplicação de uma corrente de 12 Aμ e os da décima são obtidos com uma
polarização de 120 Aμ .
Tabela 3 - Precisão e Erro das Diferentes Operações Desempenhadas Pelo S&H/MDAC
1 2 3 4 5 6 7 8 9 10
S&H P 2,4 5,32 8,9 9 11,6 11,6 11,6 11,593 11,783 11,8
XY 0,18946 0,02503 0,00209 0,00195 0,00032 0,00032 0,00032 0,00032 0,00028 0,00028
Z 0,16493 0,00820 0,00052 0,00053 5,5E‐05 4,96E‐05 6,1E‐05 6,1E‐05 8,33E‐05 8,63E‐05
MDAC_no2b P 1,10702 4,73964 7,96065 10,4050 10,4316 10,4274 10,4210 10,4162 10,4107 10,4051
XY 0,46449 0,03753 0,00407 0,00079 0,00078 0,00078 0,00078 0,00079 0,00079 0,00079
Z 0,22173 0,01061 0,00283 0,00058 0,00047 0,00041 0,00039 0,00043 0,00046 0,00046
MDAC_en2b P 2,18924 4,88413 7,97231 10,1761 10,1710 10,1825 10,1718 10,1668 10,1732 10,1761
XY 0,21946 0,03395 0,00404 0,00092 0,00092 0,00091 0,00092 0,00092 0,00092 0,00092
Z 0,21559 0,01037 0,00268 0,00073 0,00062 0,00055 0,00053 0,00056 0,00059 0,00059
29
As correntes utilizadas estão expostas na Tabela 4.
Tabela 4 - Correntes testadas (em micro Ampere)
N Ib N Ib N Ib N Ib N Ib
1 12 3 36 5 60 7 84 9 108
2 24 4 48 6 72 8 96 10 120
Um breve olhar pelos resultados obtidos permite identificar o principal problema que advém
da reutilização do amplificador, trata-se da baixa precisão que o seu ganho permite, insuficiente para
utilização com resoluções de 12 bits. Apesar das características do amplificador operacional não
serem suficientes para que todos os bits provenientes de uma conversão de 12 bits sejam fidedignos
a opção de escolha permanece no conversor, sendo uma das melhorias a fazer a utilização de um
amplificador mais agressivo. Desta forma a capacidade de programação das estruturas realizadas
para este trabalho pode vir a ser utilizada mais tarde se para tal houver interesse.
Outra simulação realizada para a obtenção de dados foi a verificação do ganho DC do
amplificador utilizado, a simulação é realizada fazendo um varrimento da gama de tensões de
entrada. O valor escolhido para introdução foi de 74 dBs visto tratar-se do ganho para a tensão de
modo comum (0.78V). A Figura 19 contém o gráfico obtido, no anexo II-II segue a montagem utilizada
para simulação.
Figura 19 - Simulação de ganho DC do amplificador
30
4.2 Simulação e Resultados
Os dados obtidos são resultado de simulações de Monte Carlo realizadas com um conjunto
de cem ensaios, cada um deles distinguindo-se dos restantes devido a pequenas alterações que são
introduzidas nos parâmetros característicos do circuito em análise, que no caso presente para além
do circuito de amostragem e retenção inicial se resume a um conjunto de MDACs. Os dados são
graficamente dispostos sob a forma de histograma onde o número de ensaios que repetem o mesmo
valor do critério de avaliação em análise é a altura de cada coluna. De forma a visualizar-se com uma
maior facilidade a correlação entre os dados obtidos e o rendimento expectável do processo os dados
são também apresentados sob forma de uma função de distribuição de probabilidade designada nos
gráficos por yeld (rendimento), esta designação não tem de corresponder directamente ao rendimento
do processo.
Como é previsível após a apresentação de resultados da secção 4.1, também as simulações
em MATLAB revelam a falta de capacidade da actual estrutura para realizar conversões com
resolução de 12 bits. A título de exemplo na Figura 20 pode-se observar os valores indicados pelo
script para os valores de INL e de DNL que se poderá esperar do conversor a funcionar com 12 bits
de resolução e alimentado com a corrente máxima em estudo (120 Aμ ) aplicada ao longo de toda a
conversão. Nestas condições verifica-se que tanto a não linearidade diferencial como a integral
apresentam valores elevados, em particular no caso integral no qual todos os ensaios resultam em
valores de INL superiores a 1. Não há portanto qualquer garantia da monotonia do código gerado e
da não existência de faltas no código.
Figura 20 - INL & DNL obtidas para 12 bits com polarização máxima
31
Os diversos níveis de corrente a fornecer em cada estado da máquina que controla a
conversão é independente da resolução escolhida, a diferença que existe é que os estados iniciais
em resoluções maiores não são activados para resoluções inferiores. Desta forma o estado em que a
máquina se encontra regula directamente a informação de controlo do espelho de corrente
responsável pela polarização.
Devido à problemática que envolve o funcionamento com 12 bits de resolução, principal
atenção recai sobre a resolução de 10 bits, ficando o estado afecto em exclusividade a 12 bits
codificado de modo a fornecer a corrente máxima que o espelho possa disponibilizar.
O processo de selecção da configuração de correntes a implementar consistiu na realização
de várias simulações em que se reduz a corrente fornecida até se atingirem níveis de rendimento não
aceitáveis. Estas simulações foram realizadas para o caso de 10 bits tendo sido posteriormente
verificado que a mesma configuração permite obter bons resultados no caso da escolha de 8 bits
para a resolução.
O escalonamento da corrente escolhido pelo processo descrito encontra-se patente na Figura
21, há a referir que apenas ao S&H é fornecido 60 Aμ de corrente, sendo quatro multiplicações
alimentadas a 48 Aμ e outras tantas alimentadas a 36 Aμ .
50%(60 )Aμ 40%(48 )Aμ 40%(48 )Aμ 30%(36 )Aμ 30%(36 )Aμ
1Ciclo 2Ciclo 3Ciclo 4Ciclo 5Ciclo
Figura 21 - Escalonamento de Corrente
Os resultados extraídos pelo MATLAB para a configuração de corrente indicada na Figura 21
indicam que o conversor será capaz de dar respostas às necessidades de funcionamento com que se
irá deparar, no entanto há a referir que os dados fornecidos para a realização das simulações não
comportam a influência de blocos externos ao S&H/MDAC, por exemplo os sinais de controlo são
fixos, a corrente não apresenta flutuações e o ganho do amplificador foi o medido para uma tensão
perto da de modo comum. Estas limitações embora não permitam ter um conhecimento rigoroso do
conversor a construir, permitem ter uma ideia quanto às necessidades de alimentação do conversor e
com isso avançar para testes mais aprofundados.
32
Na Figura 22 os dados introduzidos correspondentes à variação de corrente indicada estão
expostos.
Figura 22 - Interface do Script com os dados da simulação final
Os parâmetros de não linearidade INL e DNL situam-se em valores inferiores a 1 LSB com
excepção de 2% dos casos da INL, refira-se que todos os valores obtidos são os piores casos que
surgem para todos os códigos que o conversor pode ter em cada ensaio. Estes parâmetros de
linearidade indicam a aproximação que cada patamar (código) tem em relação à divisão ideal.
Idealmente cada patamar engloba um intervalo de tensões de entrada equivalente ao bit menos
significativo (DNL) e a transições entre patamares devem ocorrer de forma uniforme ao longo de toda
a gama de valores (INL). Ao dispor-se de um conversor com as referidas características tem-se
garantias que quanto aos aspectos referidos o conversor terá um bom comportamento. Também os
33
restantes valores obtidos estão dentro da gama de que permite um funcionamento regular.
Nas Figuras 22 a 27 encontram-se os resultados obtidos no MATLAB.
Figura 23 - Distribuição prevista para SNR e THD
Figura 24 - Distribuição prevista para SINAD e ENOB
34
Figura 25 - Distribuição prevista para SFDR
Figura 26 - Distribuição prevista para a DNL e para INL
35
Figura 27 - Resultado da Análise de Fourier
4.3 Implementação
O bloco que fornece a corrente de polarização ao amplificador é um espelho de corrente
controlado pelo sinal ibias_ctr <3:0> (descrito em 3.2.2). Por simplificação os elementos do vector
ibias_ctr são aqui designados por c1, c2, c3 e c4 (c1 o mais significativo). Na Figura 28 está
representado o esquema funcional do espelho de corrente utilizado.
IbiasIbin
Fonte de Polarização
Controláveis
Ibin 1*Ibin 2*Ibin 2*Ibin 4*Ibin
4c 3c 2c 1c
Figura 28 - Esquema Funcional Do Espelho de Corrente Controlável
36
O espelho permite uma corrente de polarização mínima igual à corrente de referência que é
fornecida ao circuito do exterior. A corrente pode ser incrementada em múltiplos sucessivos da
corrente mínima até um valor máximo correspondente a dez vezes a corrente de referência ( ). A
selecção da corrente desejada é feita por intermédio de interruptores controlados pelos bits que
constituem ibias_ctr <3:0>, cada um dos bits tem influência sobre parte do espelho. Caso o bit de
controlo corresponda a ‘1’ o ramo do espelho cujo interruptor está afecto ao bit tem um
comportamento normal, a tensão que polariza o transístor é correspondente à proveniente da “fonte
de polarização”, caso o bit esteja a ‘0’ é colocada na gate avdd
Ibin
9 o que leva ao corte da corrente.
Neste contexto entende-se por “fonte de corrente” o conjunto dos ramos em que flui a corrente
comandada externamente ( ) e em que transístores ligados em díodo (4) dão origem à
polarização dos demais ramos.
Ibin
Como se pretende que os patamares de corrente apresentem intervalos de 10% em relação à
corrente máxima ter-se-ia que fazer uso de nove sinais distintos de controlo, em que cada um abriria
ou fecharia um ramo exactamente igual aos restantes, isto é com um factor de espelhamento igual a
um. Como forma de minorar o número de sinais que iriam circular da máquina de estados até ao
espelho de corrente e principalmente para reduzir o número dos registos em que a programação é
guardada (antes da máquina de estados) utiliza-se um menor número de ramos de diferente
multiplicidade. Em termos de espelhamento uma relação de multiplicidades é similar a uma relação
de paralelismos, ou seja se um lado do espelho for constituído por dez ramos ligados em paralelo e
outro por vinte ramos em paralelo, o factor de espelhamento é (em condições ideais) dois, o mesmo
acontece com a multiplicidade a diferença reside no facto de não existirem ramos paralelos mas sim
transístores que apresentam dimensões equivalentes a múltiplos em paralelo.
Com recurso a apenas quatro sinais de controlo, cada um responsável por um ramo de
espelhamento é possível obter todos os níveis pretendidos de corrente. Na Tabela 5 é visível a
corrente a que cada codificação dá origem. As codificações a vermelho são as utilizadas por defeito.
Tabela 5 - Codificação de Controlo do Espelho de Corrente
C1 C2 C3 C4 Ibias C1 C2 C3 C4 Ibias0 0 0 0 1*Ibin 1 0 0 0 5*Ibin
0 0 0 1 2*Ibin 1 0 0 1 6*Ibin
0 0 1 0 3*Ibin 1 0 1 0 7*Ibin
0 0 1 1 4*Ibin 1 0 1 1 8*Ibin
0 1 0 0 3*Ibin 1 1 0 0 7*Ibin
0 1 0 1 4*Ibin 1 1 0 1 8*Ibin
0 1 1 0 5*Ibin 1 1 1 0 9*Ibin
0 1 1 1 6*ibin 1 1 1 1 10*Ibin
9 tensão de alimentação do circuito, neste caso corresponde ao ‘1’ digital
37
O esquema eléctrico utilizado encontra-se na Figura 29 e é baseado no tipo de espelho de
corrente apresentado em (5). O traçado da corrente fornecida pelo espelho durante operação normal
(todo o bloco analógico ligado) é apresentado a negro na Figura 30. Em I-II está o esquema completo
do espelho de corrente.
4× 2× 2× 1×1×
Figura 29 - Esquema eléctrico do espelho de corrente
Figura 30 - Corrente Longo de Uma Conversão
38
5. Dimensionamento e Esquemáticos
Neste capítulo é abordada a realização dos principais blocos analógicos constituintes do
conversor. Há a referir que o presente trabalho faz uso de blocos provenientes de um conversor
pipeline já devidamente dimensionado pelo que, no que toca ao amplificador principal utilizado pela
amostragem e retenção e pelo MDAC e no que diz respeito aos comparadores em uso, uma análise
mais breve será conduzida. Aos circuitos de sincronização das fases que irão controlar as malhas
S&H/MDAC e aos circuitos de amplificação das referências ( e ) que são usadas tanto
pelo MDAC como pelos comparadores maior atenção é dada.
pVref nVref
Tabela 6 - Tensões de Referência
2Vref
avdd
agnd
pVref
nVref
vcm
Grandeza Valor
avdd 1,2 V
agnd 0 V
Vref 1 V
pVref 1,03 V
nVref 0,53 V
vcm 0,78 V
Figura 31 - Tensões de Referência
O processo tecnológico de fabrico foi de 90nm da TSMC que se caracteriza por uma tensão
de alimentação de 1,2V. A tensão que se designa por Vr é de 1 V e corresponde à gama dinâmica
que o circuito comporta. Esta gama é obtida se tivermos em atenção que o conversor opera em modo
diferencial. As tensões limite de operação não diferencial são Vre e Vref sendo o valor máximo
obtido quando a entrada positiva está nos 1,03 V e a negativa nos 0,53 V, o valor mínimo sucede
quando as posições são inversas. A tensão de modo comum é de 0,78 V, encontrando-se deslocada
do centro das tensões de alimentação, tal confere primazia aos transístores tipo P que comportam
uma mobilidade inferior dos seus portadores de carga.
ef
pf n
39
5.1 Amplificador
O amplificador de maior relevo para o funcionamento do conversor é responsável pelo
funcionamento do S&H/MDAC. As suas características devem assegurar uma boa resposta dinâmica
que leve a que os sinais por si gerados atinjam regime permanente no espaço de tempo
correspondente ao período em que o circuito opera em cada modo, ao mesmo tempo deve ter um
ganho tal que coloque o erro gerado dentro dos parâmetros de dimensionamento.
Como referido no capítulo anterior através da observação dos valores de precisão obtidos é
possível verificar que o amplificador não é capaz de garantir uma correcta operação se utilizado numa
conversão de 12 bits, tal conclusão também pode ser obtida por meio de alguns cálculos simples,
para tal repete-se o procedimento utilizado em 2.1.1 com a distinção de não se considerar o
amplificador ideal, no caso o ganho passa a ser uma variável, não tomando valor infinito. A carga da
primeira fase de operação não sofre alterações, já o mesmo não sucede na segunda, visto o ganho
finito não permitir uma massa virtual perfeita, as equações (5.1) e (5.2) são resultado desta nova
abordagem. Considera-se que a relação entre a tensão no nó de entrada negativa do amplificador é a
presente em (5.3).
inQ V C′ = − (5.1)
0
2( 1) . outQA
′′ = − + CV (5.2)
0
outVVA− = − (5.3)
A função de transferência (5.4) passa a depender do ganho, sendo necessário que este tenha
um valor suficientemente elevado de modo a garantir que o erro introduzido não seja superior ao que
a resolução permite. Para uma resolução de n bits o erro que pode ser introduzido pelo circuito é (5.5)
, sendo a excursão máxima de sinal 1 V. Desta forma tem-se que para uma resolução de 12 bits o
erro máximo que permite uma conversão válida é de 244 Vμ , este valor corresponde à totalidade do
erro introduzido, não apenas à parcela do erro que tem origem em insuficiências de ganho, factores
como limites na largura de banda contribuem também para o erro. Assim para efeitos de cálculo do
valor mínimo desejável para o ganho do amplificador utiliza-se metade do valor máximo de erro.
0
2 1in
outVV
A
=+
(5.4)
max12n
E = (5.5)
40
Para a situação em que na entrada do amplificador é colocado o valor máximo de 0,5 V a
relação (5.6) tem de se verificar o que conduz, por substituição em (5.4), a (5.7).
0,5 0,5 122in outV V Vμ= ⇒ ≥ − (5.6)
0min
0,50,5 122 2 1A
μ− =+
(5.7)
A resolução de (5.7) leva a um valor mínimo para o ganho do amplificador de 78,3 dB o que
se verifica, por análise da Figura 19, ser uma condição que apenas numa gama restrita de valores de
entrada o amplificador garante. Já se se aplicar o mesmo método a uma resolução de 10 bits o ganho
necessário baixa para 66,2 dB, ganho já comportável pelo amplificador em estudo.
A única alteração introduzida no amplificador foi a adição de um interruptor que permite forçar
um curto-circuito nas saídas diferenciais do amplificador ( 0outV V= ). O interruptor passa à condução
apenas na primeira fase de conversão, altura em que a operação do amplificador não é necessária, e
permite ao amplificador sair duma possível saturação originada por um valor amostrado fora dos
parâmetros normalizados.
O amplificador é de dois andares, sendo o primeiro do tipo folded-cascode e o segundo
constituído por um par diferencial. Os esquemáticos completos estão disponíveis nos anexos I-III e I-
IV.
5.2 Comparadores
O mesmo tipo de comparador dinâmico foi utilizado na totalidade dos cinco comparadores
usados (dois no conversor flash de 1.5 bits associado ao MDAC e três fazem funcionar o conversor
de 2 bits responsável pelos últimos bits adquiridos durante a conversão. A topologia utilizada está
exposta na Figura 32. Este tipo de comparador tem como vantagem o não dispêndio de corrente DC
para sua operação e apresenta flexibilidade quanto às tensões de referência a utilizar, visto que a
manipulação da relação entre os transístores que recebem o sinal a comparar e os que têm à sua
gate as tensões de referência introduz-se mais um grau de liberdade. No entanto no caso do
comparador utilizado os pares de entrada estão equilibrados tendo que a tensão entregue ser aquela
com que se quer comparar o sinal de entrada. A tensão de comparação é um submúltiplo de , no
caso
refV
8refV (125mV), sendo a sua obtenção feita por meio de malhas resistivas alimentadas pelas
tensões e . Existem cinco malhas resistivas que consomem corrente DC em pVref nVref
41
permanência durante operação normal do conversor, este dispêndio é um dos principais problemas
do conversor. A somar ao consumo, a utilização indirecta de e também leva a maior
cuidado com a concepção dos circuitos de amplificação que dão origem a essas tensões. Estes
circuitos são descritos em 5.3.
pVref nVref
outp
outn
latch latc
latch latch
vinn vrp vrn vinp
avdd
agnd
h
Figura 32 - Comparador Dinâmico
5.3 Circuito de Amplificação de Referências
Os valores de tensão de referência têm origem numa semente externa mas necessitam de
ser amplificados de modo torná-los menos susceptíveis a variações externas ou a perturbações
internas ao conversor, no caso em presença tal ainda é mais premente devido à existência de malhas
resistivas que requerem o fornecimento constante de corrente. O esquema genérico de amplificação
pode ser consultado na Figura 33.
Figura 33 - Esquema Simplificado de amplificação
42
Em 5.3.1 é feito o dimensionamento de topo para os amplificadores tendo por objectivo atingir
uma certa precisão na saída de cada um deles. Este parâmetro no caso das referências não é
essencial visto que elas operam sempre combinadas sendo de maior relevo a variação da diferença
entre e . Devido ao exposto a topologia a implementar, descrita em 5.3.2, não irá atingir
as características obtidas em 5.3.1, características essas que servem como ponto de partida para o
dimensionamento das estruturas. Em 5.3.3 os resultados da simulação do bloco estão expostos.
pVref nVref
5.3.1 Dimensionamento de Topo
VinVout
Figura 34 - Amplificador ligado como Buffer
A expressão de transferência da montagem da Figura 34 considerando o ganho do
amplificador é dada por
0A
(5.8).
0
01out inAVA
=+
V (5.8)
Utilizando um processo em tudo idêntico ao descrito em 5.1 e tendo por objectivo uma
precisão de 12 bits com uma escala que neste caso vai de 1,2 V a 0 V ( max 147Erro Vμ= ) conclui-
se que o amplificador precisa de um ganho DC de 77 dB.
Para a obtenção dos parâmetros dinâmicos do amplificador é necessário ter em atenção as
capacidades que o amplificador carrega. As capacidades consideradas são a capacidade parasita de
entrada (Cip = 20 fF) e a capacidade de cada agregado presente no MDAC (Cl = 480fF).
Figura 35 - Amplificador e Capacidades Associadas
Como aproximação de primeiro grau ao comportamento da saída quando carrega uma malha
43
com constante de tempo τ tem-se a expressão (5.9), dela se extrai a expressão correspondente ao
erro (5.10) com (tempo correspondente a metade de um ciclo de conversão), sendo
que o erro máximo é de 147
8,ft = 333ns
Vμ e 0,25oV V= pois 0,25 V corresponde à variação que o
amplificador deve ser capaz de imprimir na sua saída caso se esteja perante um amplificador sem
correcção digital, ou seja sem que exista um patamar em torno do valor zero diferencial para qual não
é feita nem adição ou subtracção por parte do MDAC (caso em que o contributo das referências não
é necessário), como neste caso tal não se verifica o valor de aqui utilizado é mais exigente que o
pior caso a que o circuito será exposto. Em
oV
(5.11) encontra-se (5.10) resolvida para a situação
descrita.
(1 )t
o ov V eτ= − (5.9)
ft
oerro V e τ= (5.10)
max
1,1202ln( )
f
o
tnserro
V
τ = − = (5.11)
O inverso da constante de tempo é a frequência do primeiro pólo, que se considera
dominante. Por meio das expressões (5.12) (ganho largura de banda) e (5.13) (pólo de malha
fechada) chega-se ao valor da transcondutância (5.14).
Ttotal
gmC
ω = (5.12)
P Tω βω= (5.13)
450total Pgm C Sω μ= ≈ (5.14)
O factor de realimentação (β ) é a influência da tensão de saída sobre o nó de entrada do
amplificador quando este se encontra desligado na entrada, neste caso tem-se que os nós se
encontram curto circuitados pelo que a relação entre as tensões é 1.
O último parâmetro que importa dimensionar é a corrente que o amplificador necessita para
responder de forma adequada às solicitações que lhe são feitas, este parâmetro define a corrente de
polarização a usar.
A taxa de variação máxima (slew-rate) da tensão no nó de saída é (5.15). Esta taxa deve-se à
corrente que é injectada na saída e decresce com a capacidade que for necessário preencher, a
corrente máxima que corresponde à corrente de polarização é apresentada em (5.16).
44
max
max
0,25 2231,1202
odv V VSR M sdt nτ= = = = (5.15)
maxmax . 111total
total
ISR I SRC AC
μ= ⇔ = = (5.16)
Assim o dimensionamento resulta nos seguintes parâmetros:
0 77A d≥ B
450gm Sμ≥
111biasI Aμ≥
5.3.2 Topologia e Dimensionamento
Figura 36 - Topologia Utilizada
Os transístores assinalados a verde na Figura 36 são responsáveis por fornecer a corrente
contínua que circula nas malhas resistivas responsáveis pelas tensões que servem de referência aos
comparadores, sendo a sua funcionalidade distinta dos restantes membros do amplificador. A
corrente que deve passar em ambos é calculada em (5.17).
64p nVref VrefVI AR R
μ−
= = ≈ (5.17)
A topologia utilizada consiste num único andar de amplificação com reaproveitamento da
totalidade da corrente de polarização, a corrente é espelhada de ambos os ramos do par diferencial
de entrada e introduzida na saída, os cálculos efectuados em 5.3.1 para obtenção de corrente apenas
se referem à corrente de polarização nestas circunstâncias. Esta topologia não tem capacidade para
45
atingir as especificações de 5.3.1 mas estas permitem dimensionar um ponto de partida a partir do
qual, por meio de simulações onde se tem em atenção o estado em que se encontra cada transístor,
se atinge uma configuração em que o desempenho é satisfatório.
As equações (5.18) e (5.19) são válidas para transístores que se encontrem saturados10( ( )od gs t dsV V V V= − ≤ ) . A constante K é resultado da mobilidade dos portadores de carga e das
particularidades da capacidade do óxido utilizado pelo processo de fabrico, de forma a se adquirir
uma estimativa do seu valor vários ensaios foram realizados. As experiências consistem na
simulação de diversos transístores marcadamente saturados, verificando as correntes que por eles
transita. Fazendo uso de (5.18) e com todas as demais variáveis conhecidas chega-se a um valor
para a constante K. Os resultados foram de 290PK A Vμ= para PMOS e de 2470NK A Vμ=
para transístores tipo N.
2
2..d
od
W IL K V= (5.18)
2. dod
IgmV
= (5.19)
A tensão de saturação ( é um parâmetro que se tentará manter superior a 0,1 V de
modo a evitar que o transístor opere na região de subtreshold na qual a condução continua a ser
possível mas o seu valor passa a ser mais sensível do que na saturação o que leva a menor
rendimento na fabricação, apesar desta contrariedade com o crescente recurso a tensões de
alimentação menores por vezes operação nas regiões de subtreshold não pode ser evitada (6).
)odV
Utilizando a estipulação feita para o valor da tensão de saturação e (5.18) chega-se à
dimensão que os transístores devem assumir. No caso dos transístores constituintes dos pares
diferenciais de entrada a tensão de saturação é condicionada pelo valor que se pretende para a
transcondutância, a expressão (5.19) é utilizada.
Seguindo o método já descrito os dados da Tabela 7 são obtidos. Há a realçar as
disparidades que existem entre a primeira aproximação resultante dos cálculos expostos e as
dimensões a que se chegou após múltiplas simulações.
10 é a tensão de overdrive ou de saturação odV
46
Tabela 7 - Dimensões
Transístor W/L Dimensionado DisparidadeW/L Final TransístorW/L DimensionadoDisparidadeW/L FinalMP1 4 233% 13,3 MN1 21 186% 60
MP2 4 233% 13,3 MN2 21 186% 60
MP3 123 ‐19% 100 MN3 24 ‐45% 13,3
MP4 123 ‐19% 100 MN4 24 ‐45% 13,3
MP5 47 ‐72% 13,3 MN5 246 ‐35% 160
MP6 123 ‐19% 100 MN6 24 ‐45% 13,3
MP7 123 ‐19% 100 MN7 24 ‐45% 13,3
MP8 24 ‐96% 1 MN8 123 ‐76% 30
MP9 24 ‐96% 1 MN9 123 ‐76% 30
As significativas variações que se denotam nas dimensões dos transístores de entrada (MP1,
MP2, MN1 e MN2) ficam a dever-se à necessidade de reduzir as respectivas tensões gsV de modo a
permitir que os transístores de polarização (MP5 e MN5) tenham valores superiores nas tensões
evitando assim que entrem na zona linear de funcionamento (tríodo). As reduções de MP5 e MN6 têm
por objectivo o aumento da sua tensão de saturação que se verificou ser baixa chegando MP5 a
operar com negativo (subthreshold). Já a diminuição dos transístores MP8, MP9, MN8 e MN9
deve-se aos elevados que permitem aumentar o sem risco de cair na zona linear.
dsV
odV
dsV odV
Em anexo encontra-se o esquemático de ambos os amplificadores (I-V e I-VI).
5.3.3 Simulação
De forma a verificar as capacidades do conjunto de amplificação dimensionado, ambos os
amplificadores foram ligados a uma malha resistiva equivalente ao paralelo das malhas anexas aos
comparadores. De modo a simular o comportamento dinâmico as saídas dos amplificadores foram
ligadas a agregados de condensadores semelhantes aqueles presentes no S&H/MDAC, esta ligação
é consumada por interruptores semelhantes aos de facto utilizados. Existem dois conjuntos de
agregados, sendo os amplificadores ligados alternadamente a cada um. Quando os agregados não
se encontram conectados com os amplificadores eles são ligados a load_p e load_n, sinais que
pretendem emular as entradas do conversor durante a fase de amostragem. De modo a captar os
diferentes comportamentos que os amplificadores poderão assumir, a entrada simulada (load_p - load_n) assume durante períodos alternados o valor diferencial máximo ou o valor zero que
representa uma situação para a qual em condições reais os amplificadores não seriam ligados
47
(multiplicação simples do MDAC).
O esquema da montagem utilizada para a simulação segue no anexo II-III. Recorrem-se a
duas fontes de corrente, pois a polarização dos amplificadores e da corrente DC a fornecer às malhas
resistivas é feita em separado.
Figura 37 - Resultados de Simulação dos Amplificadores de Referências
Na Figura 37 encontra-se a tensão com que os condensadores são carregados quando não
ligados, a diferença entre e e o valor das saídas de ambos os amplificadores. Para a
análise em mãos verifica-se que a diferença entre as tensões de referência praticamente não oscila
de ciclo para ciclo (variação máxima de
pVref nVref
2 Vμ ). Como o valor de oscilação encontra-se muito abaixo
do máximo que se estipulou permitir, a corrente de polarização foi sendo reduzida, tendo passado de
111 Aμ para 40 Aμ , nesta última situação a variação de tensão diferencial entre referências sobe
para 60 Vμ . A potência total fornecida aos amplificadores foi de 878 Wμ .
48
5.4 Circuito de Geração de Fases
As três malhas que, juntamente com amplificador constituem o bloco fazem as suas ligações
ao amplificador e às entradas (sinal a converter ou tensões de referência) por meio de interruptores,
estes por seu turno são controlados por sinais provenientes do circuito tema da presente secção.
Existem quatro sinais de fase vindos do exterior que servem de base à operação deste bloco,
são eles ph1in, ph1lin, ph2in e ph2lin. Estes sinais são resultado de um sinal de relógio externo,
sendo que ph1in e ph1lin têm correspondência com o sinal de relógio enquanto ph2in e ph2lin
operam em oposição de fase. As fases de operação das malhas do S&H/MDAC referidas em
capítulos anteriores têm correspondência directa com estes sinais. A diferença existente entre os dois
sinais de igual número é que os sinais “l” têm um factor de ciclo ligeiramente inferior de modo a
permitir que alguns interruptores passem ao corte mais cedo. Este comportamento é desejável devido
a permitir minorar os efeitos de injecção de carga que ocorrem quando os canais dos transístores em
condução desaparecem.
As funções do bloco de geração de fase do S&H/MDAC são combinar os quatro sinais
referidos com sinais de controlo, nomeadamente com o sinal proveniente da máquina de estados que
indica situação de primeiro ciclo, gerar as fases negadas que irão agir sobre portas de passagem
(interruptores compostos por um transístor NMOS e um PMOS), combinar os sinais fornecidos pelo
ADC de 1.5 bits com a fase corresponde e criar um pulso latch para activação dos comparadores.
Em simultâneo tem de garantir que todos os sinais atacam os interruptores de forma síncrona.
O esquema básico de fases pode ser observado na Figura 38, a rosa estão as fases ph2,
ph2l (tracejado) e a ph2z (traço mais fino), a negro a mesma correspondência existe para a fase um.
O sinal representado a azul é o sinal latch, este apenas deve surgir quando a fase “l” terminar caso
contrário o efeito da activação dos comparadores causa uma forte quebra na precisão que é possível
obter.
Os interruptores que ligam e às malhas são os únicos constituídos por um único
transístor pelo que os sinais de controlo apenas utilizam uma fase, negada no caso dos PMOS que
ligam e não negada no caso dos NMOS utilizados para fazer a ligação a , a utilização de
apenas um tipo de transístores é possível devido a haver conhecimento prévio das tensões a
conduzir. Os sinais que dão origem ao controlo destes interruptores são obtidos do sub-conversor de
1.5 bits e chegam na sua forma negada, esta característica permite que o primeiro sinal a sair do
gerador seja de controlo dos interruptores PMOS que têm uma resposta mais lenta do que os NMOS.
pVref nVref
pVref nVref
49
Figura 38 - Esquema de Fases
O esquemático segue em I-VII.
50
6. Resultados
De modo a demonstrar a validade do sistema descrito neste trabalho duas simulações foram
realizadas, estas simulações não englobaram a componente de correcção digital tendo esta sido
substituída por um programa em linguagem C (anexo IV). O programa segue fielmente a arquitectura
do hardware de correcção tendo por base funções funcionalmente semelhantes a portas lógicas. Os
dados necessários à operação do programa são os obtidos pelo sub-conversor de 1.5 bits e pelo
conversor de 2 bits que actua no final de cada conversão.
No final deste capítulo uma breve reflexão sobre os ganhos conseguidos é exposta.
A globalidade dos dados extraídos pode ser consultada no anexo III.
6.1 Simulações Finais
‐0,6
‐0,4
‐0,2
0
0,2
0,4
0,6
voutd
vind
Figura 39 - Resposta do Conversor a Entrada Sinusoidal
Uma visão macroscópica dos dados obtidos está disponível na Figura 39, o sinal colocado à
entrada foi uma sinusóide de amplitude igual à totalidade da excursão de sinal que o conversor
permite (-0,5 V a 0,5 V, diferencial), tendo sido retiradas 64 amostras o que não permitindo uma
análise profunda das características de conversão permite verificar a validade funcional das soluções
concebidas. O erro máximo verificado entre o valor medido na entrada e o valor que o número digital
51
obtido foi de 2,7 LSB, no entanto é necessário referir que durante a fase de amostragem a entrada
varia mais de 4 LSB pelo que o valor retirado para a entrada poderá não ser o mais correcto. Em
média o erro assume um valor de 1,1 LSB.
Uma outra simulação foi conduzida colocando uma rampa como sinal de entrada, foram feitas
86 amostragens. O gráfico com os resultados obtidos encontra-se na Figura 40. Neste ensaio a
variação da entrada durante a fase de amostragem é sensivelmente metade da verificada na
simulação com a entrada sinusoidal e o erro máximo desce para 1 LSB com valor médio de
aproximadamente 0,7 LSB.
‐0,6
‐0,4
‐0,2
0
0,2
0,4
0,6
vind
voutd
Figura 40 - Resposta do Conversor a uma Rampa
Embora as simulações não permitam garantir um desempenho satisfatório por parte do
conversor, indicam que este o será (em particular a relação entre os erros associados a cada uma
das simulações e a sua diminuição com uma menor variação da entrada) e garantem que a
arquitectura e os blocos realizados são válidos.
52
6.2 Poupanças com Variação de Corrente
O recurso à adaptação da corrente consoante as necessidades leva, no caso da configuração
utilizada a uma diminuição de 24% ou de 12,5% na corrente fornecida ao amplificador consoante se
trate de uma conversão de 10 ou de 8 bits. Para o caso de 12 bits não é possível fazer qualquer
estimativa uma vez que o valor de corrente utilizado na sua fase de amostragem foi determinado de
forma arbitrária. Os cálculos baseiam-se na diferença que existe entre as correntes médias fornecidas
caso o valor de corrente permaneça em níveis similares aos que ocorrem no primeiro ciclo de
conversão ou variem em conformidade com o exposto no capítulo 4.
Todas as simulações foram realizadas em HSPICE da Synopsys. Os ficheiros com a
descrição dos esquemáticos foram obtidos com o ambiente de desenvolvimento Virtuoso da Cadence
enriquecido com scripts desenvolvidos internamente pela Chipidea.
53
54
7. Conclusões
Este trabalho apresenta uma proposta de implementação de um conversor ADC com
arquitectura do tipo cíclico/algorítmico, o seu modo de operação e os seus componentes básicos
foram descritos. Foi introduzido um sistema de variação da corrente fornecida ao bloco de maior
relevo para a conversão (S&H/MDAC) e foram expostos os blocos necessários ao seu correcto
controlo. Por fim verificou-se a validade das opções tomadas.
O trabalho apresentado tem aspectos que podem vir a ser alvo de melhorias consideráveis,
entre eles destaca-se a utilização de um amplificador dedicado capaz de aproveitar de forma efectiva
toda a gama de resoluções que o sistema de controlo permite e a substituição dos comparadores
usados que contenham em sim, por meio de desequilíbrio dos pares diferenciais de entrada, a função
de divisão das tensões de referência que agora é feita com recurso a malhas resistivas. Um outro
parâmetro a analisar são os potenciais benefícios de fazer com que o controlo do espelho de corrente
responda não apenas ao ciclo mas também à fase, tal permitiria um controlo mais fino das variações
de corrente, no entanto implicaria maior complexidade nos sinais de controlo e maior atenção a
potenciais problemas de sincronismo.
Nunca é de mais realçar a crescente preocupação com o consumo dos equipamentos
electrónicos sendo importante realçar as arquitecturas e métodos que o possam reduzir.
Talvez o mais importante que para o autor deste trabalho tenha sido o contacto que no curso
da sua realização existiu com as ferramentas e problemas que surgem quando se desenvolvem
aplicações ou circuitos em ambiente semelhante ao profissional. A sensibilidade para as questões
que envolvem a microelectrónica é hoje incomparavelmente maior.
55
56
57
Referências
1. Vital, João. Fundamentals of Signal Convertion. s.l. : Chipidea.
2. Johns, I.Ahmed and D. A 50-MS/s (35 mW) to 1-kS/s (15 uW) Power Scaleable 10-bit Pipelined
ADC Using Rapid Power-On Opamps and Minimal Bias Current Variation. IEEE Journal of Solid-State
Circuits, Vol. 40, No. 12, December 2005. 2005, pp. 2446 - 2455.
3. Johns, David A. & Martin, Ken. Analog Integrated Circuit Design. Analog Integrated Circuit
Design. s.l. : John Wiley & Sons, Inc., 1997, p. 304.
4. Sedra/Smith. Microelectronic Circuits, Fourth Edition. s.l. : Oxford University Press, 1998. pp. 403-
408.
5. Johns, David A. & Martin, Ken. Analog Integrated Circuit Design. Analog Integrated Circuit
Design. s.l. : John Wiley & Sons, Inc., 1997, pp. 256-257.
6. Tsividis, Yannis. Mixed Analog-Digital VLSI Devices and Technology. Mixed Analog-Digital VLSI
Devices and Technology. s.l. : World Scientific, 2002, 1.
ANEXOS
I - Esquemas Eléctricos II - Esquemas de Simulação III - Resultados IV - Código do Programa de Correcção Digital V - Outros
I - Esquemas Eléctricos
I
Ilustração 1 - Elementos Associados à Operação do S&H/MDAC
II
Ilustração 2 - Espelho de Corrente Responsável Pela Polarização do Amplificador
III
Ilustração 3 - Amplificador Operacional (topo)
IV
Ilustração 4 - Amplificador Operacional (metade)
V
Ilustração 5 - Amplificador da Referência Positiva
VI
Ilustração 6 - Amplificador de Referência Negativa
VII
Ilustração 7 - Gerador/Sincronizador do S&H/MDAC
VIII
Ilustração 8 - Bloco Analógico Alvo das Simulações Finais
IX
Ilustração 9 - Vista de Topo da Máquina de Estados
X
Ilustração 10 - Componente da Máquina de Estados que Determina o Estado Seguinte
XI
Ilustração 11 - Componente da Máquina de Estados que Gera os Sinais de Controlo do Espelho de Corrente
II - Esquemas de Simulação I
Ilustração 12 - Montagem da Simulação de Obtenção da Precisão
II
Ilustração 13 - Montagem de Simulação do Ganho DC do Amplificador
III
Ilustração 14 - Montagem Que Resulta na Simulação de Topo
III - Resultados
I
Ilustração 15 - Resultado de Uma Simulação para Obtenção de Precisão
II
Precision
MDAC_en2bf 1 2 3 4 5 6 7 8 9 10
4 4,88 9,33 10,84 10,25 10,23 10,17 10,17 10,17 10,19
6,55 9,18 10,22 10,36 10,28 10,28 10,27 10,26 10,32 10,31
10,79 10,14 10,23 10,25 10,23 10,23 10,23 10,23 10,23 10,23
10,86 10,3 10,57 10,49 10,48 10,48 10,49 10,49 10,49 10,49
2,21 6,59 8,54 10,83 10,67 11,03 11,28 11,21 11,02 10,94
5,54 8,91 11,19 12,19 11,96 12,03 12,15 12,16 12,1 12,05
7,84 15,51 12,94 12,83 12,85 12,86 12,87 12,88 12,87 12,86
8,86 11,71 13,26 13,16 12,99 13,02 13,07 13,07 13,09 13,08
5,85 8,3 14,64 12,99 13,8 14,39 14,16 13,76 13,62 13,73
8,93 11,45 14,64 13,21 13,43 13,34 13,65 13,58 13,54 13,46
10,57 15,88 13,58 13,4 13,44 13,49 13,48 13,5 13,5 13,49
9,44 12,05 14,73 14,23 13,95 13,39 13,88 13,71 13,85 13,83
2,19 6,6 7,97 22,58 12,24 11,91 11,94 12 12 11,99
5,49 9,8 14,08 10,18 10,24 10,27 10,27 10,27 10,25 10,27
8,27 10,36 10,16 10,18 10,17 10,18 10,17 10,17 10,17 10,18
9,38 10,09 10,48 10,41 10,41 10,41 10,42 10,43 10,42 10,42
3,31 7,48 11,17 10,41 10,65 10,83 10,87 10,79 10,72 10,72
7,1 9,5 12,28 14,85 16,45 15,46 15,48 16,56 17,7 17,91
2,29 6,62 8 14,47 12,59 12,23 12,22 12,27 12,26 12,26
5,43 9,76 16,29 10,26 10,31 10,34 10,34 10,33 10,34 10,35
3,07 7,47 10,93 10,5 10,77 10,96 11 10,91 10,84 10,83
6,88 9,55 12,72 13,85 14,65 15,31 15,51 14,82 14,92 14,78
MIN 2,19 4,88 7,97 10,18 10,17 10,18 10,17 10,17 10,17 10,18
MDAC_no2bf 1 2 3 4 5 6 7 8 9 10
1,11 4,74 8,01 11,63 16,69 12,7 11,51 12,41 12,54 12,57
3,77 7,23 11,31 10,71 10,51 10,56 10,6 10,54 10,54 10,52
5,6 11,05 10,49 10,49 10,48 10,48 10,47 10,46 10,46 10,45
7,56 10,49 10,88 10,76 10,74 10,73 10,68 10,69 10,71 10,67
2,17 6,56 8,46 11,24 11,04 11,44 11,81 11,71 11,43 11,32
5,54 8,87 11,1 12,29 12,03 12,14 12,28 12,28 12,24 12,16
7,77 18,95 13,25 13,09 13,11 13,11 13,11 13,12 13,12 13,11
8,77 11,82 13,8 13,45 13,36 13,32 13,28 13,31 13,34 13,31
5,82 8,29 16,7 13,25 14,32 15,24 15,17 14,42 14,08 14,31
8,92 11,36 15,46 13,68 13,73 13,76 13,82 13,83 13,81 13,76
10,45 16,79 14,13 13,85 13,9 13,91 13,9 13,91 13,89 13,86
9,41 12,16 15,66 15 14,48 14,25 14,19 14,25 14,3 14,34
2,19 6,6 7,96 15,51 12,11 11,78 11,81 11,86 11,87 11,82
5,5 9,65 13,6 10,41 10,46 10,48 10,48 10,48 10,46 10,46
8,21 10,68 10,44 10,43 10,43 10,43 10,42 10,42 10,41 10,41
9,3 10,31 10,77 10,68 10,67 10,67 10,67 10,66 10,66 10,65
3,31 7,44 10,73 10,74 11,03 11,25 11,29 11,18 11,08 11,07
7,11 9,52 12,49 14,29 15,45 17,81 21,04 16,71 16,59 15,99
2,29 6,62 7,99 15,72 12,35 12,06 12,02 12,15 12,14 12,04
5,43 9,6 13,11 10,5 10,56 10,58 10,58 10,57 10,56 10,56
3,07 7,43 10,56 10,85 11,18 11,43 11,48 11,34 11,23 11,21
6,9 9,58 12,77 13,43 13,97 14,37 14,54 14,27 14,1 14,12
MIN 1,11 4,74 7,96 10,41 10,43 10,43 10,42 10,42 10,41 10,41
S&H 1 2 3 4 5 6 7 8 9 10 HIGH 2,400000 5,320000 8,900000 9,000000 11,600000
11,600000 11,600000 11,593000 11,783000 11,800000
LOW 2,600000 6,930000 10,900000 10,880000 14,150000
14,300000 14,000000 14,000000 13,551000 13,500000
III Seno
Rampa
IV - Código do Programa de Correcção Digital
/* dg_corr.c -- where the digital correction structures is defined */ /* created by mmartins @ 2007/06/28 */ # include <stdio.h> # include <stdlib.h> # include <math.h> # include "gates.h" # include "corr.h" # include "aux.h" int main(int argc, char *argv[]){ int *aux; int ci[11], q[12]; int i, dec; float DAC_res; /* control signals */ int res = 10, amostras = 87; int en2scmpl = 0; /* input signals */ int a0, a0z=0, a1, a1z=0, a2, a2z=0; int *d1z, *d0, *d1; FILE *fp; d1z = calloc (10,sizeof(int)); d1 = calloc (10,sizeof(int)); d0 = calloc (10,sizeof(int)); fp = fopen("ramp.txt","r"); while(amostras > 0){ a2z=0; a1z=0; a0z=0; d0[0]=9; d0[1]=9; d1[0]=9; d1[1]=9; d1z[0]=9; d1z[1]=9; for (i = 9; i >= 2 ; i--) { d1z[i] = 0; } for (i = 9; i >= 2 ; i--) { fscanf(fp,"%d", &d1[i]); if (d1[i] == 0) d1z[i] = 1; } for (i = 9; i >= 2 ; i--) { fscanf(fp,"%d", &d0[i]); } fscanf(fp,"%d", &a2); if(a2==0) a2z=1; fscanf(fp,"%d", &a1); if(a1==0) a1z=1; fscanf(fp,"%d", &a0); if(a0==0) a0z=1; /* input test */
/* printf("\n\n"); printf("a: "); printf("%d ", a2); printf("%d ", a1); printf("%d \n", a0); printf("az: "); printf("%d ", a2z); printf("%d ", a1z); printf("%d \n", a0z); printf("\n"); printf("d1: "); for (i = 9; i >= 2 ; i--) { printf("%d ", d1[i]); } printf("\n"); printf("d1z: "); for (i = 9; i >= 2 ; i--) { printf("%d ", d1z[i]); } printf("\n"); printf("d0: "); for (i = 9; i >= 2 ; i--) { printf("%d ", d0[i]); } printf("\n\n"); */ /* end of input test */ aux = corr_last_stage( a0, a0z, a1, a1z, a2, a2z); ci[0] = aux[1]; q[0] = aux[0]; /* Only relevant if 12bit resolution is selected */ aux = corr_stage(d1z[0], d0[0], ci[0]); ci[1] = aux[1]; q[1] = aux[0]; aux = corr_stage(d1z[1], d0[1], ci[1]); ci[2] = aux[1]; q[2] = aux[0]; /* relevant for 10 and 12bit resolutions */ if( res == 10 ){ aux[0] = ci[0]; }else{ aux[0] = ci[2]; } aux = corr_stage(d1z[2], d0[2], aux[0]); ci[3] = aux[1]; q[3] = aux[0]; aux = corr_stage(d1z[3], d0[3], ci[3]); ci[4] = aux[1]; q[4] = aux[0]; /* relevant for all resolutions */ if( res == 8 ){
aux[0] = ci[0]; }else{ aux[0] = ci[4]; } aux = corr_stage(d1z[4], d0[4], aux[0]); ci[5] = aux[1]; q[5] = aux[0]; aux = corr_stage(d1z[5], d0[5], ci[5]); ci[6] = aux[1]; q[6] = aux[0]; aux = corr_stage(d1z[6], d0[6], ci[6]); ci[7] = aux[1]; q[7] = aux[0]; aux = corr_stage(d1z[7], d0[7], ci[7]); ci[8] = aux[1]; q[8] = aux[0]; aux = corr_stage(d1z[8], d0[8], ci[8]); ci[9] = aux[1]; q[9] = aux[0]; aux = corr_stage(d1z[9], d0[9], ci[9]); ci[10] = aux[1]; q[10] = aux[0]; q[11] = XOR(ci[10], en2scmpl); /*aux operations*/ for( dec = 0 , i = 11; i >= 0 ; i--){ if(q[i] == 1) dec = pow(2, i ) + dec; } if( res == 8 ){ q[4] = q[0]; q[0] = 8; q[1] = 8; q[2] = 8; q[3] = 8; for( dec = 0 , i = 11; i >= 4 ; i--){ if(q[i] == 1) dec = pow(2, i-4 ) + dec; } }else if( res == 10 ){ q[2] = q[0]; q[0] = 9; q[1] = 9; for( dec = 0 , i = 11; i >= 2 ; i--){ if(q[i] == 1) dec = pow(2, i-2 ) + dec; } } DAC_res = (dec * (1/(pow(2,res)))) - 0.5; /* printing the conversion result */ /*printf("EXIT:\n\n "); for(i = 11; i > -1; i--){ printf("%d ",q[i]); } printf("\n");
printf("dec: %d\n",dec); printf("DAC_res: %f\n",DAC_res); printf("\n\n"); */ /*printing for file*/ /* for(i = 11; i > 1; i--){ printf("%d",q[i]); } */ /* printf(" %d",dec); printf("\n");*/ printf(" %f\n",DAC_res); amostras=amostras-1; } fclose(fp); free(d1); free(d0); free(d1z); exit(0); }
/* corr.c -- where digital correction logic blocs are defined */ /* mmartins 2007/06/28 */ # include <stdio.h> # include <stdlib.h> # include "gates.h" int *corr_stage( int a1z, int a0, int ci ){ int aux1, aux2, aux3; int *y; y = calloc(2,sizeof(int)); aux1 = nand2(a0, ci); y[1] = nand2(aux1, a1z); aux2 = inv(aux1); aux3 = nor2(a0, ci); y[0] = nor2(aux2, aux3); return y; } int *corr_last_stage( int a0, int a0z, int a1, int a1z, int a2, int a2z){ int aux[10]; int *y; y = calloc(2,sizeof(int)); aux[0] = nand2(a1,a2); aux[1] = nand2(a2,a0); aux[2] = nand2(a0,a1); y[1] = nand3(aux[0],aux[1],aux[2]); aux[3] = nand3(a0,a1,a2); aux[4] = nand3(a2z,a0z,a1); aux[7] = nand2(aux[3],aux[4]); aux[5] = nand3(a1z,a0z,a2); aux[6] = nand3(a2z,a0,a1z); aux[8] = nand2(aux[5],aux[6]); aux[9] = nor2(aux[7],aux[8]); y[0] = inv(aux[9]); return y; }
/* gates.c -- where logic gates are defined */ /* mmartins 2007/06/28 */ int inv( int x){ if(x == 1){ return 0; }else if(x == 0){ return 1; }else return x; } int and2( int a1 , int a2){ if( a1 == 1 && a2 == 1){ return 1; }else{ return 0; } } int nand2( int a1 , int a2){ if( a1 == 1 && a2 == 1){ return 0; }else{ return 1; } } int nand3( int a1, int a2, int a3){ if( a1 == 1 && a2 == 1 && a3 == 1 ){ return 0; }else{ return 1; } } int nor2( int a1, int a2 ){ if( a1 == 0 && a2 == 0){ return 1; }else{ return 0; } } int XOR( int a1, int a2){ if( a1 == a2 ){ return 0; }else{ return 1; } }
V – Outros
I
0Y1Y
ic1Za 0a
0Y1Y
3:1a 3:1az
0Y1Y
ic1Za 0a
0Y1Y
ic1Za 0a
0c
0c
0Y1Y
ic1Za 0a
0c
0Y1Y
ic1Za 0a
0Y1Y
ic1Za 0a
0Y1Y
ic1Za 0a
_ 0pre q
0q1q
_ 2pre q
_ 0pre q
2q3q
_ 4pre q
_ 0pre q
4q5q6q10q11q
10
selconv8
selconv
10
selconv8
selconv