scieee Science in your language
[es] (orig)

Diseño de un Time-to-Digital Converter en FPGA Xilinx Artix-7

Abstract

La versatilidad de las FPGAs permite un uso muy amplio en el ámbito de la investigación, debido a su capacidad de interconexión de diferentes elementos lógicos y la parametrización de estos, a través de un entorno de desarrollo. Este proyecto trata de codificar un intervalo temporal en dígitos binarios, ayudándose del código termométrico. Vivado 2021.1 es el sofware de desarrollo que soporta nuestra FPGA de la familia Artix-7, cuyo comportamiento es modelado por los algoritmos de nuestro proyecto. Con esto se pretende analizar el comportamiento en simulación y proponer su estudio experimental como línea de investigación futura.

Read accessible full text

Diseño de un Time-to-Digital Converter en FPGA Xilinx Artix-7

Author: Naranjo Carrizosa, Manuel
Year: 2024
Source: https://idus.us.es/bitstreams/dadf0063-441d-4b94-8106-56108a3fbe28/download
P oyec o Fin de Ca e a
Ingenie ía de Telecomunicación
Diseño de un Time- o-Digi al Con e e en
FPGA Xilinx A ix-7
Au o : Manuel Na anjo Ca izosa
Tu o es: Fe nando Muñoz Cha e o
F ancisco Rogelio Palomo Pin o
Dp o. Ingenie ía Elec ónica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2024
Uni e sidad de Se illa
P oyec o Fin de Ca e a
Ingenie ía de Telecomunicación
Diseño de un Time- o-Digi al Con e e en
FPGA Xilinx A ix-7
Au o :
Manuel Na anjo Ca izosa
Tu o es:
Fe nando Muñoz Cha e o
F ancisco Rogelio Palomo Pin o
Dp o. Ingenie ía Elec ónica
Escuela Técnica Supe io de Ingenie ía
Uni e sidad de Se illa
Se illa, 2024
P oyec o Fin de Ca e a: Diseño de un Time- o-Digi al Con e e en FPGA Xilinx A ix-7
Au o :
Manuel Na anjo Ca izosa
Tu o :
Fe nando Muñoz Cha e o
El ibunal nomb ado pa a juzga el P oyec o a iba indicado, compues o po los siguien es
miemb os:
P esiden e:
Vocales:
Sec e a io:

Acue dan o o ga le la cali icación de:
Se illa, 2013
El Sec e a io del T ibunal
AGRADECIMIENTOS
En p ime luga , me gus a ía ag adece a mi u o Fe nando Muñoz Cha e o po su con ianza en
mí y en es e p oyec o, a pesa de los obs áculos y di icul ades que ha conlle ado. Su o ien ación
y expe iencia han sido undamen ales pa a la ealización de es e abajo.
Po descon ado, le doy las g acias a mi amilia po su apoyo incondicional a lo la go de es e
du o pe o sa is ac o io camino, que, a pa e de p opo ciona me conocimien os écnicos; me ha
hecho mejo a como pe sona.
Finalmen e, ag adezco a odos los p o eso es de la i ulación, que siemp e han es ado dispues os
a ayuda ; al igual que compañe os de ca e a, que me lle o como amigos.
RESUMEN
La e sa ilidad de las FPGAs pe mi e un uso muy amplio en el ámbi o de la in es igación,
debido a su capacidad de in e conexión de di e en es elemen os lógicos y la pa ame ización de
es os, a a és de un en o no de desa ollo.
Es e p oyec o a a de codi ica un in e alo empo al en dígi os bina ios, ayudándose del código
e momé ico. Vi ado 2021.1 es el so wa e de desa ollo que sopo a nues a FPGA de la
amilia A ix-7, cuyo compo amien o es modelado po los algo i mos de nues o p oyec o.
Con es o se p e ende analiza el compo amien o en simulación y p opone su es udio
expe imen al como línea de in es igación u u a.
Figu a 5.9 Simulación Reinicio Fine_TDC 35
Figu a 5.10 Bloques línea de aca eo 36
Figu a 5.11 Re a dos Bloques Ca y4 36
Figu a 5.12 Simulación Value_ ine_ eó ico = 0 36
Figu a 5.13 Simulación Value_ ine_ eó ico = 128 37
Figu a 5.14 Simulación Value_ ine_ eó ico = 256 37
Figu a 5.15 Esquema lógico in e conexión módulo CARRY4 - bies ables 38
Figu a 5.16 Pa icula ización salida Fine_ dc 38
Figu a 5.17 Fase Reinicio Codi icado Te móme o - Bina io 39
Figu a 5.18 Simulación salida codi icado Bin[7:0]_ eó ico = 0 39
Figu a 5.19 Simulación salida codi icado Bin[7:0]_ eó ico = 100 39
Figu a 5.20 Simulación salida codi icado Bin[7:0]_ eó ico = 128 39
Figu a 5.21 Simulación salida codi icado Bin[7:0]_ eó ico = 200 40
Figu a 5.22 Simulación salida codi icado Bin[7:0]_ eó ico = 256 40
Figu a 6.1 Fiche o es icciones 43

ÍNDICE DE TABLAS
Tabla 5.1 Análisis e a dos 27
Tabla 5.2 Análisis e a dos línea de aca eo 34
Tabla 5.3 Valo es salida sis ema 34
1 INTRODUCCIÓN
La o ma adicional de ap ende y enseña sis emas digi ales ha ido cambiando en las úl imas
décadas median e el uso de lenguajes de desc ipción de ha dwa e (HDL) y FPGAs (Field
P og ammable Ga e A ay) [1].Es os p ocesado es se es án posicionando como una solución
pe ec a pa a muchas aplicaciones en el campo de IoT, la in o má ica pe ime al y las
ecnologías especí icas pa a la in eligencia a i icial. Su capacidad de se p og amadas pa a usos
conc e os y su g an e sa ilidad es án con enciendo a la indus ia, y cada ez hay más
pla a o mas de es e ipo en sec o es inno ado es. La e sa ilidad de es e disposi i o
semiconduc o p o iene de un as o núme o de elemen os básicos de lógica elec ónica, cuya
in e conexión es p og amable (“de o ma indi ec a”).
Es e abajo iene como obje i o el diseño y la implemen ación de un ‘TDC’, pa a su es udio,
análisis y juicio compa a i o de los p ocesos de simulación y expe imen ación.
Pa a el desa ollo de es e p oyec o, se u iliza una placa Basys 3, es deci , una FPGA Xilinx de la
amilia A ix-7, con núme o de pieza Xilinx “XC7A35T-1CPG236C” [2] En cuan o al so wa e
que sopo a y puede ges iona dicho ha dwa e, el en o no de desa ollo ‘Vi ado 2021.1’ es el
elegido en es e p oyec o. Las bases eó icas del p oyec o, jun o con los algo i mos que se
implemen a án pa a su desa ollo, son desc i os de alladamen e en el po al web
h ps://sps.ewi. udel .nl/ pga_ dc/TDC_basic.h ml (ac ualmen e no disponible).
1.1 Obje i o y alcance
El obje i o de es e p oyec o adica en el es udio de un TDC ( ime o digi al con e e ), es deci ,
un disposi i o que dado un pe iodo de iempo de e minado, p opo ciona una secuencia de da os
bina ia equi alen e; además, es a cadena bina ia se codi ica como un núme o bina io en una
e apa pos e io . Es a de inición se desa olla de o ma más de allada en índices pos e io es.
Se ha p ocedido a desc ibi el diseño median e el lenguaje . hdl de o ma modula haciendo uso
del IDE Vi ado an es mencionado; además de los iche os de es icciones .xdc y o as
u ilidades. Es e modelo pasa po a ios p ocesos has a que se gene a el iche o .bi , aquel que
puede ca ga se en la memo ia de la Basys3. Es os p ocesos co esponden a la sín esis, que
gene a un ci cui o digi al a pa i de una desc ipción en VHDL; y a la (pos e io )
implemen ación, que u a es e ci cui o según es icciones y ecu sos. Además, se á necesa io
comp oba el co ec o uncionamien o median e simulaciones an es de gene a dicho a chi o.
Pa a el es udio de dicho con e so se lle a án a cabo las ases de simulación y expe imen ación.
El p ocedimien o de la e apa de simulación ha consis ido en examina los e asos inducidos po
los componen es lógicos c í icos pa a el diseño, pa a su pos e io es udio y compa ación con los
esul ados ob enidos en la segunda ase.
2 In oducción
1.2 P opósi o del p oyec o:
La elección de plan ea es e p oyec o, es iba en la g an esolución empo al que los TDC
pueden llega a o ece . Po ello es e disposi i o es de i al impo ancia en aplicaciones que
equie en una al a esolución como los LIDAR (Ligh De ec ion and Ranging), que p ecisa de
medi el iempo de un pulso láse e lejado en un obje o pa a ol e al ansmiso ; o en ísica de
al a ene gía, llegándose a usa en de ec o es de pa ículas. [3]
Además, se puede p opone como línea de in es igación el uso conjun o y sinc onizado del
disposi i o “TDC” jun o con un “ADC”. Es os con e ido es abajan conjun amen e en los
senso es de imagen CMOS de al a elocidad [4]
2 FUNDAMENTOS CONCEPTUALES
2.1 Ca ychain
Con el p opósi o de diseña un TDC, se p ocede a implemen a como es uc u a lógica un
‘Ca ychain’; se a a de una línea de e aso empo al (Figu a 2.1). Es a hile a es á o mada po
bloques ‘Ca y’ , es deci , módulos de ope ado es suma cuya salida de ol e á el aca eo
esul an e de la ope ación.(Figu a 2.2). La impo ancia de es a en idad (se de ine como al)
adica en la inducción de un e aso empo al del pulso que exci a su en ada.
2.2 Slo “START – STOP”
Pa a la ealización de es e p oyec o, se conside a una anja empo al ∆𝑻 como la en ada TDC.
Pa a de ini es a di e encia de iempos, lancos de subida de 2 pulsos han e e enciado inicio y
inal de dicho ‘slo ’ (aunque con algunos ma ices como e emos al especi ica el diseño).
Denominamos los ins an es ‘START’ y ‘STOP’ pa a designa dichos lími es del pe iodo (Figu a
2.3).
2.3 Código e momé ico
Pa a pode in e p e a de mane a compac a y compendiada el esul ado del TDC ( an o
expe imen al como as una simulación), se hace uso de una e apa llamada “The m_ o_bin”; que
codi ica a bina io un núme o de e minado de líneas de pulso ( alo es bina ios en úl ima
ins ancia). La can idad o al de dichas señales co esponde a una po encia bina ia p ede inida.
Llamamos código e momé ico a un alo de 1’s y 0’s , ob enido según qué líneas de
pulso de nues o diseño es án ac i as y cuáles no, en un ins an e de iempo conc e o. El alo
esul an e de nues o código puede se ep esen ado como una unción escalón uni a ia; el
ins an e de pe mu ación 0 – 1 de la unción co esponde con el p ime índice cuyo alo es
‘1’(es a analogía es in álida pa a el caso en el que el alo del código e momé ico es ‘0’).
Dicho código e momé ico se basa en la escala e momé ica, cuya co ec a ep esen ación
es iba en la medición de un in e alo ( anja empo al de en ada ∆𝑻) di idido en pa es
iguales, as de ini 2 pun os de e e encia (‘START’ y ‘STOP’) [5]

4 P oblemas Concep uales
Figu a 2.1 Ca ychain
Figu a 2.2 Bloque Ca y
Figu a 2.3 F anja empo al de en ada ∆T del TDC
3 PLANTEAMIENTO
Es a sección a a de desc ibi las siguien es pa es del p oyec o de o ma uncional; an esala de
la desc ipción cuali a i a y es uc u al del diseño.
3.1 Delay Line
La línea de e aso se basa en la es uc u a ‘Ca ychain’ an es de inida, así, se de e mina su
con igu ación de la siguien e mane a.
En p ime luga , de inimos el bloque ‘Ca y’ con 3 en adas y 1 salida (Figu a 2.1), cuya
espues a de uel e el aca eo esul an e de una suma bina ia. A endiendo al p ime bloque de la
cadena de dichas ins ancias, 2 de sus 3 en adas son es imuladas con ni eles lógicos bajo y al o
espec i amen e, es deci , en el plano lógico se nos p esen a una suma bina ia “1 + 0”; a p io i,
el alo de aca eo equi ale a ‘0’ , ci a que pe mu a en el ins an e en el que un es ado al o de la
señal exci a la en ada es an e (la llama emos CI), y que, hace cambia , en consecuencia, la
salida del bloque a ‘1’. Es e bi al o se p opaga á a lo la go de los módulos ‘Ca y’, agando así,
po la línea de e aso. Es ele an e señala que la señal exci an e de en ada del p ime bloque
se co esponde con el pulso START.
A pa i del segundo bloque, la en ada CI de cada módulo se conec a con la salida del bloque
an e io , o mando así la denominada ‘Ca ychain’. De o ma que, cada una de las en adas CI
de dichos bloques ecibi á la señal digi al ‘START’, con un e a do es imado eó ico de en e 15
y 25 ps espec o de la en ada del bloque an e io . De es a mane a, con la con igu ación
es uc u al mencionada, se nos p esen a una línea digi al de e aso, cuyo come ido consis e en
la p opagación de un al o ni el po la misma.
La salida de cada ins ancia ‘Ca y’ más allá de conec a se con su homólogo pos e io , se
in e conec a con la en ada de un bies able. En la Figu a 3.1 especi icamos que dichos
bies ables se co esponden con los bies ables ipo D; cada uno de ellos se de ine como un ‘Flip-
Flop’ que ecibe un alo digi al po su en ada D, que se p opaga á hacia la salida (Q) as el
egis o de un lanco de subida digi al po pa e de la en ada C. El da o bina io a la salida del
módulo en cues ión se man iene has a que el alo ac ual sea dis in o del p esen e en la en ada
en el p eciso ins an e del e en o cambio de es ado a ni el al o en la en ada C. Además, el papel
despeñado de las en adas CLR y CE consis en en el einicio de la salida y en la habili ación de
la en ada C, espec i amen e. La is a de ‘Flip-Flops’ in e conec ados uno a uno con la cadena
de módulos ‘Ca ychain’ cons i uyen lo que denominamos ‘delayline’, ilus ada en la Figu a 3.2
(se omi en las en adas de los bies ables ‘C’ y ‘CLR’).
6 Plan eamien o
La señal que pe u ba la en ada C se co esponde con la señal de eloj CLK. Pues bien, uno de
los lancos ascenden es de CLK, se a ibuye al pulso STOP; el indicado se á de allado en la
siguien e sección. El come ido de es e pulso adica en decidi el momen o exac o en el que se
con o ma á el ec o salida “Q1,Q2…Qn” según el alo de la en ada de los bies ables.
Es e ec o salida indica median e un código bina io, el iempo anscu ido en e los lancos de
subida de las señales START y STOP, es deci el ∆𝑻 obje o de es e p oyec o. Cabe espe a que
los bi s menos signi ica i os del ec o salida man end án un alo cons an e de '1' has a que
alguna de las salidas adquie a el alo de '0'. En ese momen o, odas las salidas subsiguien es
oma án el alo de '0' has a el é mino del ec o .
Figu a 3.1 Bies able ipo D
Figu a 3.2 Delay line
7 Plan eamien o
3.2 Inpu Fil e
Desglosamos la e apa “Inpu Fil e ” en 2 conjun os, compues o cada uno po 2 bies ables ipo
D; cada conjun o, cumple un come ido especí ico.
A endiendo al p ime o de los conjun os, es e iene la inalidad de aco a empo almen e po la
de echa una señal digi al, de iniendo así el pulso ‘START’. Se a a de un obje i o p escindible,
pues o que, el único desempeño de la señal de inicio eside en la conc eción del inicio de ∆𝑻.
Así, la jus i icación del uso de es e módulo es iba en una mayo cla idad a la ho a de de ini la
anja empo al de en ada.
Re e enciamos la con igu ación es uc u al de es a p ime a e apa en la Figu a 3.3. La onda
p edeceso a a ‘START’, a la que llamamos ‘hi ’, que ges iona el inicio del in e alo ∆𝑻,
pe u ba la en ada de eloj ‘C’ del p ime bies able ‘inpu _ il e 1’ de es a p ime a sección. Un
es ado ac i o digi al de la señal p opaga á el ‘1’ cons an e p esen e en ‘D’ hacia la salida ‘Q’.
Es e ni el lógico al o, p o oca el einicio en ambos bies ables. El p ime o de dichos módulos
pe mu a á su salida al es ado digi al posi i o, o iginándose así un pulso de co a du ación a su
salida, mien as que, el e ec o en la segunda ins ancia consis e en es ablece un ‘0’ a su salida,
que, a su ez, induce el es ado ‘1’ a la salida del in e so ; cuyo alo man end á has a que un
lanco de subida in ie a en el pin de eloj ‘C’ de ‘inpu _ il e 2’. Como a es a señal la llamamos
pulso ‘START’, así, se concluye, que:
↑ 𝑺𝑻𝑨𝑹𝑻 ≡ ↑ 𝒉𝒊𝒕 + 𝒓𝒆𝒕𝒓𝒂𝒔𝒐𝒔 𝒃𝒍𝒐𝒒𝒖𝒆𝒔 𝒍ó𝒈𝒊𝒄𝒐𝒔
El segundo conjun o de bies ables sinc oniza la salida del bloque a diseña basado en “ delay-
line” con la e apa enca gada de la codi icación código bina io – e móme o median e la emisión
de un pulso disc e o decla ado como ‘ alid’. Pa a ello, al como mues a la Figu a 3.4, la
en ada del p ime bies able coincide con la salida del in e so , y, po an o, con ‘START’.
Desc ibiendo su uncionalidad, es e pulso se p opaga as 2 ciclos de eloj hacia la salida del
módulo, pa a con o ma la onda obje o ‘ alid’; pa a ello, el eloj ges iona la sinc onización,
exci ando la en ada C. Tenemos que cada bies able in ie e una posposición de 1 CLK.
El e a do gene ado es á en consonancia con el e aso inducido po el bloque lógico ‘ ine_ dc’,
que se á diseñado en el p óximo apa ado.
14 Diseño
Figu a 4.4 Algo i mo ins ancia delayblock_2
Figu a 4.5 Algo i mo Ca ychain

15 Diseño
Figu a 4.6 CLB
16 Diseño
Figu a 4.7 Slice_X8Y75
Figu a 4.8 Algo i mo En idad Flip-Flop ipo D
17 Diseño
Figu a 4.9 Es uc u a lógica bies ables ine_ dc implemen ación
Figu a 4.10 Algo i mo ins ancias columnas bies ables Flip lop_1 Flip lop_2
18 Diseño
Figu a 4.11 Algo i mo ins ancia ine_ dc
4.2 Inpu Fil e
Desglosamos la e apa “Inpu Fil e ” en 2 conjun os, compues o cada uno po 2 bies ables ipo
D; cada conjun o, cumple un come ido especí ico.
En p ime luga , y abo dando los p opósi os del p ime o de es os p ime os conjun os pa a
op imiza el diseño (desc i os en el apa ado ‘plan eamien o’), se p e ende aco a en el dominio
del iempo, el pulso de en ada al sis ema y así conside a un pulso de inicio ‘START’ cuyo
lanco de bajada coincidi á con el lanco de subida de la señal de ‘STOP’.
En lo ela i o a la es uc u a lógica, se mues a un esquema de dicho p ime conjun o en la
Figu a 3.3, haciendo uso de la he amien a ‘RTL Analysis’ de Vi ado. El bloque es á
cons i uido po 2 ins ancias: ‘inpu _ il e 1’ e ‘inpu _ il e 2’, basadas en la en idad ‘FDCE’
desc i a en la Figu a 4.8 (misma es uc u a lógica que pa a los bies ables de la línea de e aso).
Se busca nega el pulso de la salida del segundo il o, ob eniendo un ni el al o digi al as un
es ado lógico bajo, suminis ando el pulso START (señal igge ) como ni el al o a la en ada de
la línea de e aso; ep esen ándose en el esquema como un ecu so LUT. Se ija un ni el bajo
en la salida mencionada as el e en o de un lanco de subida de eloj en la en ada ‘CLK’ del
segundo bies able.
Las señales implicadas en la in e conexión en e ambos bloques, así como la de inición de sus
ins ancias ienen desc i as en el algo i mo ilus ado en la Figu a 4.12 ( agmen o del iche o
op: “ ine_ dc_encode . hd”).
19 Diseño
A endiendo a la segunda e apa de es os il os, su p opósi o adica en sinc oniza la salida de la
línea de e aso con la e apa enca gada de la codi icación “código bina io – e móme o”
median e la emisión de un pulso disc e o decla ado como ‘ alid’. De nue o, la en idad ‘FDCE’
ins ancia 2 bies ables enca gados de dicho p opósi o (obsé ese Figu a 4.13). Se a i ica de
o ma g á ica la desc ipción de es e algo i mo en la Figu a 3.4. La o ma de sinc oniza ambos
elemen os eside en la ijación de un e a do de 2 CLK con espec o al ins an e del suceso del
e en o de un lanco de subida del pulso ‘START’ an o a la en ada de da os (D) del p ime Flip-
Flop del conjun o en cues ión, como a la en ada ‘ igge ’ del “delay_line” ; po an o, la
ansmisión de la señal de alidación se ajus a al iempo de p ocesamien o que su e la línea de
e aso.
Figu a 4.12 Algo i mo ins ancias inpu _ il e 1 inpu _ il e 2

20 Diseño
Figu a 4.13 Algo i mo ins ancias inpu _ il e _ i ed1 inpu _ il e _ i ed2
4.3 Decodi icado Te móme o – Bina io
Como se ha comen ado en el apa ado plan eamien o, es e bloque a a de decodi ica el código
e móme o a bina io.
La uncionalidad y es uc u a del diseño del decodi icado puede se di idida en 2 e apas
dis in a.
El come ido de la p ime a e apa eside en busca un ango, cons i uido po 15 bi s, en el que se
da luga la pe mu ación bina ia ′𝟏′→ ′𝟎′ ; a pa i de una secuencia bina ia de un amaño
de e minado. Dicha sucesión de da os p o iene de la salida de la línea de e aso, siendo cada bi
ansmi ido po un bies able de la segunda columna. En cuan o a la magni ud de la secuencia,
es e iene de e minado po el amaño del ec o en ada de da os de la en idad decodi icado
‘ he m2bin_pipeline_coun ’ (Figu a 4.16), de inida po : ((2**b)-1); es ando ‘b’ de inida como
cons an e ‘gene ic’. En nues o diseño, se de ine:
b = 8 → ((2**b)-1) = 255
Es a e apa cons a de dis in as ases de elemen os MUX, cuya unción adica en di idi en 2
pa es de igual magni ud una se ie bina ia, pa a pos e io men e, op a po el agmen o en el que
21 Diseño
uno de los bi s es obje o de pe mu ación. A endiendo al p ime mul iplexo de la e apa (indicado
po el índice de la señal ‘decoding’) ilus ado en la Figu a 4.15, es e se enca ga de escindi
dicha secuencia bina ia en 2 ec o es de un ango [126:0], y según el dígi o ecibido po la
en ada de selección, una de las en adas se p opaga hacia la salida. El alo bina io que
pe u ba la en ada ‘S’ del mul iplexo , coincide con el alo del índice cen al del ec o
en ada; ‘ he mo[255]’ en el mul iplexo ep esen ado en la Figu a 4.15. Pa a jus i ica es e
p ocede , se señala que la en ada de da os del bloque sigue un pa ón e momé ico:
“1111111111111…11000…0000” ; po an o, se deduce que si el alo cen al es ‘1’, la
pe mu ación bina ia se ubica á en la mi ad de echa de la secuencia; dicha ansición ocu i á en
la p ime a mi ad pa a el caso con a io. Es e algo i mo se desc ibe en unción de ‘i’ en la Figu a
4.16. Es e índice e leja el alo de secuencia de la i e ación (bucle FOR), que a su ez, ija la
ase de la e apa; ejecu ada cada lanco de subida de eloj (obsé ese la Figu a 4.17).
Como se obse a en la Figu a 4.14, la salida del decodi icado , y po an o del TDC, se de ine
como un ec o cuya magni ud depende del pa áme o b : “b – 1 = 7 “; según nues os
pa áme os de diseño. Así los ‘b-4’(4) alo es más signi ica i os de es a salida quedan de inidos
po la p ime a e apa. Es os alo es co esponden con los alo es cen ales de la en ada de cada
ase, conco dando así con cada i e ación ges ionada sínc onamen e.
La segunda e apa consis e implemen a un con ado bina io de ‘1’s, cuyo obje o de medición son
los 15 bi s esul an es de la salida de la p ime a e apa. Son necesa ios 4 bi s como máximo pa a
exp esa el núme o 15 en bina io (𝟐𝟒=𝟏𝟔).
La uncionalidad de es a e apa es á desc i a en 2 p ocesos sínc onos. El p ime o, ilus ado en la
Figu a 4.18, se enca ga de conca ena la espues a de la p ime a e apa con el esul ado de la
unción ‘coun _ones ‘, cuyo a gumen o e e encia los 15 bi s donde se encuen a la pe mu ación
bina ia. Además, p opaga la señal de alidación sínc onamen e, al igual que en la p ime a e apa.
El segundo p oceso(Figu a 4.19) cons a de una es uc u a secuencial que asigna la salidas
conca enadas de ambos a la salida del decodi icado , y po an o, del TDC.
Figu a 4.14 Algo i mo En idad codi icado emóme o-bina io
22 Diseño
Figu a 4.15 Mul iplexo
Figu a 4.16 Algo i mo Mul iplexo
Figu a 4.17 Algo i mo i e aciones ins ancia s age_p oc
+
23 Diseño
Figu a 4.18 Algo i mo p oceso conca enación salida
Figu a 4.19 Algo i mo p oceso asignación salida
30 Simulación
Compá ese la Figu a 2.3 (boce o del p oblema eó ico) con la Figu a 5.6 (simulación del
p oblema del p oyec o); el pulso ‘ igge ’ ep esen a START, mien as que, la señal de eloj
“clock_IBUF_BUFG” se co esponde con STOP.
Obse amos que la ansición ‘0’ → ‘1’ iene luga 10,816 ns an es de la mi ad de un pe iodo de
eloj, es deci , 10,816 ns p e ios a un lanco de subida de eloj. Es e alo se ha ob enido
sumando los di e en es e asos cons an es, jun o con el e aso que se p e ende que el pulso
START expe imen e en la línea de aca eo pa a el caso alue_ ine = 256; es deci , pa a es e
alo de salida, se es ima que dicho pulso se p opaga has a la salida del úl imo bloque de
aca eo. Así, la espues a de salida del sis ema depende del alo del pa áme o BLOQUES
CARRY4(pa áme o a con igu a ) de la siguien e exp esión ma emá ica (obsé ese Tabla 5.1):
∆𝑻 = RETRASOS CONSTANTES (HIT-TRIGGER + TRIGGER-CARRY4_1 +
CAPTURA CLK EN FF + CLK CLK_IBUF_BUFG) + BLOQUES CARRY4
A con inuación, se exponen los 3 casos más signi ica i os de la elación en ada-salida del
sis ema:
Value_ ine: 0 ↔ ∆𝑻 = 3333 ps / BLOQUES CARRY4 = 0 ps
Value_ ine: 128 ↔ ∆𝑻 = 7074.5 ps / BLOQUES CARRY4 = 3741.5 ps
Value_ ine: 256 ↔ ∆𝑻 = 10816 ps / BLOQUES CARRY4 = 7483 ps
Es ele an e des aca que pa a pode añadi un DUT al iche o banco de p uebas, se equie e
desc ibi el componen e de la en idad a examina ; además, en la en idad del iche o de
simulación se han de inido las cons an es gene ic: 𝐒𝐓𝐀𝐆𝐄𝐒 = 𝟐𝟓𝟔 y FINE_BITS = 8 (la línea
de aca eo de nues o diseño con iene 256 bloques ‘Ca y’, como se ha comen ado
an e io men e).

31 Simulación
Figu a 5.5 Algo i mo Tes Bench
Figu a 5.6 Simulación Resumen P oblema P oyec o
32 Simulación
5.4 Resul ados Simulación
Es a subsección a a de analiza los esul ados de la simulación empo al pos -implemen ación
p esen ados en la in e az g á ica de Vi ado. El iempo de simulación se ha de inido a 500 ns y
la ecuencia de la señal de eloj a 100 MHz. También se ha ejecu ado la simulación pa a los
alo es de ecuencia de 1 y 10MHz, sin obse a se modi icaciones en la espues a. Se es udian
las o mas de pulsos de cada e apa del p oyec o:
5.4.1 Inpu Fil e
Es a e apa se puede desglosa en 2 g upos: un p ime conjun o cons i uido po los bies ables
“inpu _ il e 1” e “inpu _ il e 2”, enca gados de de ini el pulso ‘START’ a pa i del pulso de
en ada de nues o sis ema ‘hi ’. Su unción adica en aco a po la de echa es a señal digi al. A
dicho conjun o lo denomina emos ase 1. El g upo es an e, al que designa emos como ase 2,
cons a de los Flip-Flops “inpu _ il e _ i ed1” e “inpu _ il e _ i ed2”. Su come ido eside en
sinc oniza las e apas “ inde_ dc” y “ he m_ o_bin” median e la emisión de un pulso de
alidación al bloque de codi icación, y así señaliza le del ins an e co ec o en el que ecibi á los
da os. Pa a in e p e a adecuadamen e es as señales, obsé ese la es uc u a lógica del il o en
la Figu a 3.3
Fase 1
La Figu a 5.7 mues a g á icamen e cómo el p ime il o emi e un pulso ins an áneo (salida Q),
que se inicia cuando la en ada de eloj C ecibe un lanco de subida del pulso ‘hi ’ (en ada de
da os D es á a ni el al o de o ma cons an e). Como la salida es á conec ada a la en ada CLR
(clea ), el pulso pe mu a á a un es ado lógico bajo inmedia amen e después; po an o, la
du ación del pulso depende del iempo de p ocesamien o pa a la ejecución de esa ope ación
(1.533 ns). Dicho des ase empo al sees ima meno que el in e alo empo al anscu ido en e
los lancos de subida de los pulsos ‘hi ’ y ‘Q’.
Además, se ilus a que as 1.533 ns del lanco de subida ‘Q’, la salida del segundo il o
pe mu a a eposo, o zando así el es ado lógico posi i o en el pulso ‘ igge ’, es deci , en
START; ins an e en el que empieza la p opagación del pulso obje o de es udio a a és de la
línea de aca eo. Es a señal uel e a conmu a hacia el ‘0’ bina io debido a la azón sínc ona del
p oceso.
33 Simulación
Fase 2
El come ido de los 2 bies ables in e conec ados p esen es en la Figu a 3.4, eside en la
sinc onización del pulso ‘ alid’ con el ec o señal ‘la ched_ou pu ’ (ejemplo simulación en
Figu a 5.8).
5.4.2 Fine dc
Re e enciando las en adas y salidas de la e apa “Fine_ dc” en la Figu a 5.9, se mues a el
p ocedimien o ope a i o del einicio. Es a ope ación consis e en la inicialización (a ni el al o,
en es e caso) de los pulsos ‘ igge ’ (impulsado po la e apa de il os) y ‘la ched_ou pu ’. Se ha
comp obado que es a ope ación se ejecu a siemp e, independien emen e del es ado de la en ada
‘ ese ’.
A endiendo a la línea de aca eo, cuyo esquema lógico es uc u al esul an e de la ase de
implemen ación, queda de inido median e una indexación en la Figu a 5.10; la Figu a 5.11
expone los e a dos que inducen los bloques ‘Ca y’ (ag upados en los módulos ‘Ca y4’). Se
calculan 1113 ps de di e encia en e los lancos de subida ‘hi ’ y ‘CO[0:3]’ (p ime bloque
CARRY4); alo que dis a mucho de los 117 ps de e a do en e el es o de bloques
consecu i os (sal o o as excepciones). La abla 5.2 de alla los esul ados cuan i a i os.
Además, cabe ag ega que las salidas de un mismo bloque CARRY4 no su en ningún des ase
empo al en e sí; de acue do con la es uc u a lógica expues a en la Figu a 4.1.
A cada bloque de aca eo se le asocia un bies able (Figu a 4.9), que cap u a el da o en un
ins an e de iempo de e minado, as de ec a el consiguien e lanco de subida de eloj. Pa a
es udia es a ope ación, se an a e alua pa icula izaciones en simulación de los 3 casos que
co esponden con los alo es más signi ica i os de la espues a del sis ema, cuya elación con la
en ada (y cálculo del mismo) se ha analizado en la subsección iche o es bench :
Value_ ine (bina io) ≡ La ched_ou pu ( e momé ico) = 0 – Figu a 5.12
Value_ ine (bina io) ≡ La ched_ou pu ( e momé ico) = 128 - Figu a 5.13
Value_ ine (bina io) ≡ La ched_ou pu ( e momé ico) = 256 - Figu a 5.14
En las Figu as 5.12 y 5.13 se obse a un e o de 3 bi s po encima del alo eó ico.
En la Figu a 5.14, el bi más signi ica i o es á conec ado a al a impedancia. Es o se debe a que,
como se obse a la Figu a 5.15, la salida CO[3] es á lo an e, sin conec a se al
bies ables_line[255] de la p ime a columna que le co esponde ía; un lip- lop que no exis e en
nues o diseño.
34 Simulación
Una ez cap u ados los pulsos que se p esen an a la salida de los bloques ‘Ca y’, se p opaga án
a a és de la segunda columna de bies ables hacia la salida, as el siguien e ciclo de eloj, al y
como se ilus a en la Figu a 5.16.
5.4.3 The m_ o_bin
De o ma análoga a la e apa “ ine_ dc”, se ha de conside a la ase de einicio en es e
bloque. Como se ep esen a en la Figu a 5.17, la salida se de ine a su máximo alo pa a es a
ase.
T as es e p eludio, se ilus a la espues a del bloque (en es a e apa coincide con la del
sis ema) en unción de las en adas de bloque y sis ema. Se exponen a ios ejemplos en la Tabla
5.3:
Salida bloque/sis ema
En ada bloque
En ada sis ema
Bin[7:0] - expe imen al
Bin[7:0] - eó ico
The mo[255:0]- eó ico
∆T
Figu a
0
0
0
3333
5.18
102
100
100
6258
5.19
131
128
128
7074.6
5.20
202
200
200
9180.6
5.21
256
256
256
10816
5.22
Tabla 5.3 Valo es salida sis ema
Resul a ele an e señala que, la in e az g á ica compu a el alo en bina io del ec o
señal ‘Bin[7:0] ‘en el ins an e en el que es á ijada la ba a ama illa.
RETARDOS (ps)
Ca y_delay_line[0]
Ca y_delay_line[1]
Ca y_delay_line[1 - 62]
Ca y_delay_line[63]
1113
126
117
229
Tabla 5.2 Análisis e a dos línea de aca eo
35 Simulación
Figu a 5.7 Simulación In e conexión Fil os Fase 1
Figu a 5.8 Simulación In e conexión Fil os Fase
Figu a 5.9 Simulación Reinicio Fine_TDC

36 Simulación
Figu a 5.10 Bloques línea de aca eo
Figu a 5.11 Re a dos Bloques Ca y4
Figu a 5.12 Simulación Value_ ine_ eó ico = 0
37 Simulación
Figu a 5.13 Simulación Value_ ine_ eó ico = 128
Figu a 5.14 Simulación Value_ ine_ eó ico = 256
38 Simulación
Figu a 5.15 Esquema lógico in e conexión módulo CARRY4 - bies ables
Figu a 5.16 Pa icula ización salida Fine_ dc
39 Simulación
Figu a 5.17 Fase Reinicio Codi icado Te móme o - Bina io
Figu a 5.18 Simulación salida codi icado Bin[7:0]_ eó ico = 0
Figu a 5.19 Simulación salida codi icado Bin[7:0]_ eó ico = 100
Figu a 5.20 Simulación salida codi icado Bin[7:0]_ eó ico = 128
46 Anexo
LIBRARY ieee;
USE ieee.s d_logic_1164.ALL;
USE ieee.s d_logic_a i h.ALL;
LIBRARY unisim;
USE unisim. componen s.ALL;
LIBRARY wo k;
USE wo k. dc_lib a y.ALL;
ENTITY ine_ dc_wi h_encode IS
GENERIC (
STAGES : INTEGER := 256;
FINE_BITS : INTEGER := 8;
Xo : INTEGER := 8;
Yo : INTEGER := 24);
PORT (
clock : IN s d_logic;
ese : IN s d_logic;
hi : IN s d_logic;
alue_ ine : OUT s d_logic_ ec o ((FINE_BITS-1) DOWNTO 0));
END ine_ dc_wi h_encode ;
ARCHITECTURE s uc u e OF ine_ dc_wi h_encode IS
ATTRIBUTE keep_hie a chy : s ing;
ATTRIBUTE keep_hie a chy OF s uc u e : ARCHITECTURE IS " ue";
SIGNAL ine_ alue_ eg : s d_logic_ ec o ((STAGES-1) DOWNTO 0);
SIGNAL ine_ alue_bin : s d_logic_ ec o ((FINE_BITS-1) DOWNTO 0);
SIGNAL il e ed_hi _1 : s d_logic;
SIGNAL il e ed_hi _2 : s d_logic;
SIGNAL il e ed_hi : s d_logic;
SIGNAL i ed : s d_logic;

47 Anexo
SIGNAL alid : s d_logic;
COMPONENT FDCE IS
GENERIC (
INIT : STD_LOGIC);
PORT ( D : in STD_LOGIC;
C : in STD_LOGIC;
CE : in STD_LOGIC;
CLR : in STD_LOGIC;
Q : ou STD_LOGIC);
END COMPONENT;
BEGIN
inpu _ il e 1 : FDCE
GENERIC MAP (
INIT => '0')
PORT MAP (
Q => il e ed_hi _1,
CLR => il e ed_hi _1,
D => '1',
C => hi ,
CE => '1');
inpu _ il e 2 : FDCE
GENERIC MAP (
INIT => '0')
PORT MAP (
Q => il e ed_hi _2,
CLR => il e ed_hi _1,
D => '1',
C => clock,
CE => '1');
il e ed_hi <= NOT il e ed_hi _2;
48 Anexo
inpu _ il e _ i ed1 : FDCE
GENERIC MAP (
INIT => '0')
PORT MAP (
Q => i ed,
CLR => '0',
D => il e ed_hi ,
C => clock,
CE => '1');
inpu _ il e _ i ed2 : FDCE
GENERIC MAP (
INIT => '0')
PORT MAP (
Q => alid,
CLR => '0',
D => i ed,
C => clock,
CE => '1');
ine : ine_ dc
GENERIC MAP (
STAGES => STAGES,
Xo => Xo ,
Yo => Yo )
PORT MAP (
igge => il e ed_hi ,
clock => clock,
ese => ese ,
la ched_ou pu => ine_ alue_ eg);
2b : he m2bin_pipeline_coun
GENERIC MAP (
b => FINE_BITS)
PORT MAP (
clock => clock,
ese => ese ,
alid => alid,
49 Anexo
he mo => ine_ alue_ eg,
bin => ine_ alue_bin);
alue_ ine <= ine_ alue_bin;
END s uc u e
50 Anexo
lib a y IEEE;
use IEEE.STD_LOGIC_1164.ALL;
en i y FDCE is
GENERIC (
INIT : STD_LOGIC := '0'
);
Po ( D : in STD_LOGIC;
C : in STD_LOGIC;
CE : in STD_LOGIC;
CLR : in STD_LOGIC;
Q : ou STD_LOGIC);
end FDCE;
a chi ec u e Beha io al o FDCE is
begin
sinc:p ocess(C,CE,CLR)
begin
i (CLR = '1') hen
Q <= '0';
elsi ( ising_edge(C) and (CE = '1')) hen
Q <= D;
end i ;
end p ocess;
end Beha io al;
51 Anexo
lib a y IEEE;
use IEEE.STD_LOGIC_1164.ALL;
Lib a y UNISIM;
use UNISIM. componen s.all;
en i y ine_ dc is
GENERIC (
STAGES : INTEGER;
Xo : INTEGER;
Yo : INTEGER);
PORT(
igge : IN STD_LOGIC;
ese : IN STD_LOGIC;
clock : IN STD_LOGIC;
la ched_ou pu : OUT STD_LOGIC_VECTOR(STAGES-1 DOWNTO 0));
end ine_ dc;
a chi ec u e Beha io al o ine_ dc is
signal un eg: s d_logic_ ec o (STAGES-1 DOWNTO 0);
signal eg: s d_logic_ ec o (STAGES-1 DOWNTO 0);
ATTRIBUTE keep_hie a chy : s ing;
ATTRIBUTE keep_hie a chy OF Beha io al : ARCHITECTURE IS " ue";
A ibu e LOC: s ing;

52 Anexo
begin
ca y_delay_line: FOR i IN 0 TO STAGES/4-1 GENERATE
i s _ca y4: IF i = 0 GENERATE
ATTRIBUTE LOC OF delayblock: LABEL IS "SLICE_X"&INTEGER'image(Xo )&"Y"&INTEGER'image(Yo +i);
BEGIN
delayblock: CARRY4
PORT MAP(
CO => un eg(3 DOWNTO 0),
O => open,
CI => '0',
CYINIT => igge ,
DI => "0000",
S => "1111");
END GENERATE;
nex _ca y4: IF i > 0 GENERATE
ATTRIBUTE LOC OF delayblock: LABEL IS "SLICE_X"&INTEGER'image(Xo )&"Y"&INTEGER'image(Yo +i);
53 Anexo
BEGIN
delayblock: CARRY4
PORT MAP(
CO => un eg(4*(i+1)-1 DOWNTO 4*i),
O => open,
CI => un eg(4*i-1),
CYINIT => '0',
DI => "0000",
S => "1111");
END GENERATE;
END GENERATE;
bies ables_line: FOR j IN 0 TO STAGES-1 GENERATE
begin
Flip lop_1: FDCE
PORT MAP(
D => un eg(j),
C => clock,
CE => '1',
CLR => ese ,
Q => eg(j));
Flip lop_2: FDCE
PORT MAP(
D => eg(j),
C => clock,
CE => '1',
CLR => ese ,
Q => la ched_ou pu (j));
54 Anexo
END GENERATE;
end Beha io al;
LIBRARY ieee;
USE ieee.s d_logic_1164.ALL;
USE ieee.nume ic_s d.ALL;
LIBRARY wo k;
USE wo k. dc_lib a y.ALL;
ENTITY he m2bin_pipeline_coun IS
GENERIC (
b : INTEGER := 8);
PORT (
clock : IN s d_logic;
ese : IN s d_logic;
alid : IN s d_logic;
he mo : IN s d_logic_ ec o (((2**b)-1) DOWNTO 0);
bin : OUT s d_logic_ ec o ((b-1) DOWNTO 0));
END he m2bin_pipeline_coun ;
ARCHITECTURE beha iou OF he m2bin_pipeline_coun IS
ATTRIBUTE keep_hie a chy : s ing;
ATTRIBUTE keep_hie a chy OF beha iou : ARCHITECTURE IS " ue";
SIGNAL s age_ inal_bin : s d_logic_ ec o ((b-1) DOWNTO 0);
SIGNAL s age_ inal : s d_logic_ ec o (15 DOWNTO 0);
SIGNAL da a_ alid : s d_logic_ ec o ((b-3) DOWNTO 0);
TYPE decode _a ay IS ARRAY (0 TO b-4) OF s d_logic_ ec o (((2**b)-2) DOWNTO 0);
SIGNAL decoding : decode _a ay;
TYPE bina y_a ay IS ARRAY (0 TO b-4) OF s d_logic_ ec o (b DOWNTO 0);
SIGNAL bina y : bina y_a ay;
BEGIN
55 Anexo
decoding(0) <= he mo(((2**b)-2) DOWNTO 0);
da a_ alid(0) <= alid;
gene a e_s ages : FOR i IN 0 TO b-5 GENERATE
s age_p oc : PROCESS (clock, ese )
BEGIN
IF ese = '1' THEN
decoding(i+1) <= (OTHERS => '0');
bina y(i+1) <= (OTHERS => '0');
da a_ alid(i+1) <= '0';
ELSIF ising_edge(clock) THEN
bina y(i+1)(b DOWNTO b-1-i) <= bina y(i)(b DOWNTO b-i) & decoding(i)(((2**(b-
i))-2)/2);
da a_ alid(i+1) <= da a_ alid(i);
IF decoding(i)(((2**(b-i))-2)/2) = '1' THEN
decoding(i+1)(((2**(b-i))-2)/2-1 DOWNTO 0) <=
decoding(i)(((2**(b-i))-2) DOWNTO ((2**(b-i))-2)/2+1);
ELSE
decoding(i+1)(((2**(b-i))-2)/2-1 DOWNTO 0) <=
decoding(i)(((2**(b-i))-2)/2-1 DOWNTO 0);
END IF;
END IF;
END PROCESS;
END GENERATE;
s age_ inal <= decoding(b-4)(15 DOWNTO 0);
-- The inal s age o he decode is a bi coun e o he emaining 16 bi s
s age_ inal_p oc : PROCESS (clock, ese )
BEGIN
IF ese = '1' THEN
s age_ inal_bin <= (OTHERS => '0');
da a_ alid(b-3) <= '0';
ELSIF ising_edge(clock) THEN
s age_ inal_bin <= bina y(b-4)(b-1 DOWNTO 4) &
s d_logic_ ec o ( o_unsigned(coun _ones(s age_ inal), 4));
da a_ alid(b-3) <= da a_ alid(b-4);
END IF;