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;