Skip to content
Snippets Groups Projects
Commit ae79f336 authored by Tomasz Wlostowski's avatar Tomasz Wlostowski
Browse files

Merge branch 'master' into proposed_master

parents 7fcc7b8e 3e530e6c
Branches
Tags
No related merge requests found
Showing
with 2990 additions and 0 deletions
......@@ -43,6 +43,9 @@ MAKEINFO ?= makeinfo
all: images $(ALL)
$(MAKE) terse
$(MAKE) -C gc_i2c_slave
$(MAKE) -C wb_i2c_bridge
$(MAKE) -C wb_xil_multiboot
images::
if [ -d images ]; then $(MAKE) -C images || exit 1; fi
......
FILE=gc_fsm_watchdog
all:
$(MAKE) -C fig
pdflatex -synctex=1 -interaction=nonstopmode $(FILE).tex *.tex
# bibtex $(FILE).aux
pdflatex -synctex=1 -interaction=nonstopmode $(FILE).tex *.tex
pdflatex -synctex=1 -interaction=nonstopmode $(FILE).tex *.tex
evince $(FILE).pdf &
clean:
$(MAKE) -C fig clean
rm -rf *.aux *.dvi *.log $(FILE).pdf *.lof *.lot *.out *.toc *.bbl *.blg *.gz
Type 'make' to create your .pdf documentation file.
You need Inkscape to make the documentation files:
sudo apt-get install inkscape
\ No newline at end of file
\begin{titlepage}
\vspace*{3cm}
%---------------------------------------------------------------
% name
%---------------------------------------------------------------
\noindent{\LARGE \textbf{Finite State Machine Watchdog Timer}}
\noindent \rule{\textwidth}{.1cm}
\hfill November 23, 2013
\vspace*{3cm}
\begin{figure}[h]
\includegraphics[height=3cm]{fig/cern-logo}
\hfill
\includegraphics[height=3cm]{fig/ohwr-logo}
\end{figure}
\vfill
%---------------------------------------------------------------
% name
%---------------------------------------------------------------
\noindent {\Large \textbf{Theodor-Adrian Stana (CERN/BE-CO-HT)}}
\noindent \rule{\textwidth}{.05cm}
\end{titlepage}
SRC = $(wildcard *.svg)
OBJS = $(SRC:.svg=.pdf)
all: $(OBJS)
%.pdf : %.svg
inkscape -f $< -A $@
clean :
rm -f *.pdf
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="184.252px" height="184.252px" viewBox="0 0 184.252 184.252" enable-background="new 0 0 184.252 184.252"
xml:space="preserve">
<g>
<path fill="#0053A1" d="M38.544,76.536c-0.921,0.7-4.123,2.692-8.941,2.692c-8.718,0-14.658-5.495-14.658-13.872
c0-8.328,6.298-13.87,14.862-13.87c3.332,0,7.147,1.026,9.275,1.939c-0.445,0.985-0.811,2.286-0.965,3.1l-0.233,0.077
c-1.647-1.823-4.295-3.402-8.213-3.402c-4.972,0-10.696,4.027-10.696,12.056c0,7.819,5.832,11.974,11.046,11.974
c4.684,0,6.927-2.186,8.939-3.885l0.154,0.154L38.544,76.536z"/>
<path fill="#0053A1" d="M60.139,77.312c0-0.588,0.05-1.193,0.092-1.487c-2.644,0.243-9.903,0.463-12.734,0.504
c-0.048-0.707-0.11-9.091-0.04-10.387c1.132,0,7.114,0.078,9.787,0.35c-0.077-0.388-0.116-0.962-0.116-1.35
c0-0.387,0.039-1.082,0.116-1.469c-2.286,0.193-5.214,0.387-9.787,0.387c0-0.969,0.079-8.037,0.118-9.701
c5.036,0,9.596,0.313,12.148,0.504c-0.042-0.264-0.092-0.807-0.092-1.337c0-0.528,0.035-0.958,0.092-1.322
c-1.342,0.09-5.678,0.195-8.003,0.195c-2.324,0-5.913-0.078-8.237-0.195c0.154,3.294,0.311,6.664,0.311,9.997v6.664
c0,3.333-0.156,6.704-0.311,10.075c2.363-0.117,5.99-0.194,8.354-0.194c0.111,0,0.227,0,0.343,0
c0.81,0.003,1.835,0.014,2.893,0.033c1.833,0.034,3.767,0.089,5.159,0.161l0,0l0,0C60.173,78.331,60.139,77.899,60.139,77.312z"/>
<path fill="#0053A1" d="M68.815,65.622v3.082c0,3.332,0.154,6.701,0.311,10.034c-0.66-0.117-1.852-0.128-2.096-0.128
c-0.243,0-1.435,0.012-2.094,0.128c0.155-3.333,0.31-6.703,0.31-10.034v-6.666c0-3.332-0.155-6.703-0.31-10.035
c1.473,0.117,3.336,0.195,4.809,0.195c1.473,0,2.945-0.195,4.417-0.195c4.379,0,8.39,1.293,8.39,6.169
c0,5.161-5.14,7.013-8.085,7.401c1.899,2.363,8.7,10.646,10.947,13.165c-0.774-0.117-2.073-0.128-2.427-0.128
c-0.354,0-1.691,0.012-2.427,0.128c-1.531-2.335-6.437-9.686-9.77-13.117C70.688,65.621,68.815,65.622,68.815,65.622z
M71.411,64.204c3.199-0.065,7.4-1.081,7.4-5.502c0-3.852-3.371-5.076-6.005-5.076c-1.782,0-2.945,0.116-3.758,0.193
c-0.117,2.829-0.232,5.428-0.232,8.218c0,0,0,1.851,0,2.131C69.2,64.221,71.016,64.21,71.411,64.204z"/>
<path fill="#0053A1" d="M112.594,51.99c-0.453,0.078-1.013,0.142-1.699,0.142c-0.676,0-1.257-0.073-1.651-0.142
c0.17,3.174,0.462,9.047,0.462,12.899c0,2.898,0,5.428-0.04,6.862c-1.409-1.499-17.576-18.23-19.219-20.016l-1.269-0.013
c0.057,2.465,0.129,5.141,0.129,10.022c0,6.249-0.087,12.896-0.406,16.994c0.453-0.079,1.012-0.142,1.698-0.142
c0.677,0,1.257,0.071,1.65,0.142c-0.169-3.173-0.461-9.048-0.461-12.898c0-2.899,0.002-5.882,0.041-7.314
c1.409,1.5,17.667,18.458,19.218,20.561l1.269,0.012c-0.058-2.465-0.129-5.234-0.129-10.116
C112.187,62.734,112.275,56.085,112.594,51.99z"/>
<path fill="#0053A1" d="M42.069,121.789c-7.614-12.048-9.781-23.679-10.084-32.58c-1.173,0-2.346,0-3.519,0
c0.295,9.71,2.65,19.893,7.919,29.872C37.627,120.083,40.544,121.358,42.069,121.789z"/>
<path fill="#0053A1" d="M184.25,1.679c0,0-87.554-0.694-115.47-0.679c-4.369,0.003-7.302,0.311-8.248,0.371
C26.048,3.605,0.115,33.842,0,66.817c-0.032,9.586,2.522,20.39,6.667,34.973c5.476,19.267,11.891,41.367,11.891,41.367h3.499
L9.128,99.539l0.097-0.065c9.497,18.347,31.392,33.086,56.237,33.086c13.407,0,25.841-3.753,35.638-10.666l0.085,0.08
l-57.516,61.204h4.492c0,0,40.387-42.968,54.125-57.556c10.527-11.178,15.996-18.381,18.285-22.119
c2.625-4.287,10.964-16.645,10.652-34.847l0.112-0.008l25.203,114.529h3.618c0,0-21.146-93.744-25.25-113.349
c-4.038-19.292-8.809-31.258-13.957-38.083c-1.769-0.985-4.527-2.107-5.828-2.411c7.472,9.428,13.055,23.454,13.055,37.489
c0,34.355-27.95,62.304-62.306,62.304c-34.354,0-62.304-27.949-62.304-62.304c0-34.356,28.05-62.306,62.324-62.306
c15.235,0,29.356,5.588,40.209,14.79c2.098,0.29,4.91,0.945,6.589,1.551l0.013-0.035C104.902,13.046,95.163,7.265,84.33,4.225
c0-0.084,0-0.089,0-0.089l99.922,0.623L184.25,1.679z"/>
<path fill="#0053A1" d="M50.808,132.873c-2.228-0.329-5.011-1.118-6.685-1.836c7.5,8.536,17.82,15.366,27.953,19.198l2.659-2.821
C63.744,143.702,55.756,137.737,50.808,132.873"/>
<path fill="#0053A1" d="M142.469,127.885c-11.121,13.615-28.388,22.783-48.226,22.771c-4.259-0.001-8.391-0.478-11.836-1.179
l-2.847,3.022c5.445,1.258,10.271,1.731,14.885,1.731c20.405,0,37.861-9.523,48.972-22.057L142.469,127.885"/>
<path fill="#0053A1" d="M165.644,17.304l-6.001,61.965h-0.113c-0.851-11.696-6.682-25.666-13.883-34.498
c-12.5-15.329-30.842-24.585-51.444-24.585c-19.647,0-37.15,8.717-49.192,22.381l2.758,2.186
C59.145,31.888,75.442,23.643,94.2,23.643c22.836,0,41.439,11.704,51.845,27.615c9.286,14.197,12.365,32.39,10.213,45.719
c-0.727,4.502-2.36,13.257-8.359,23.176l1.05,4.614c7.358-11.405,11.091-21.556,14.005-47.503
c2.234-19.906,6.073-59.962,6.073-59.962L165.644,17.304z"/>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="465.79694"
height="132.11342"
id="svg2"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="conn.svg">
<defs
id="defs4" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.5600001"
inkscape:cx="205.64042"
inkscape:cy="-5.3260295"
inkscape:document-units="px"
inkscape:current-layer="g3803"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1855"
inkscape:window-height="1176"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid3774"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
units="mm"
spacingx="0.5mm"
spacingy="0.5mm"
originx="-1.1828675mm"
originy="-243.85889mm" />
</sodipodi:namedview>
<metadata
id="metadata7">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-4.1912635,-56.181848)">
<g
id="g3792"
transform="translate(44.291337,-10.629912)">
<rect
y="124.01572"
x="283.46457"
height="56.692924"
width="127.55905"
id="rect3772"
style="opacity:0.98999999;fill:#e5e5e5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
sodipodi:linespacing="125%"
id="text3776"
y="155.90546"
x="287.00787"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="155.90546"
x="287.00787"
id="tspan3778"
sodipodi:role="line">rst_n_i</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="287.00787"
y="138.18895"
id="text3780"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3782"
x="287.00787"
y="138.18895">clk_i</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3784"
y="173.62202"
x="287.00787"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="173.62202"
x="287.00787"
id="tspan3786"
sodipodi:role="line">wdt_rst_i</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="407.48032"
y="155.90546"
id="text3788"
sodipodi:linespacing="125%"><tspan
style="text-align:end;text-anchor:end"
sodipodi:role="line"
id="tspan3790"
x="407.48032"
y="155.90546">fsm_rst_o</tspan></text>
</g>
<g
transform="translate(-141.73229,-10.629912)"
id="g3803">
<rect
style="opacity:0.98999999;fill:#e5e5e5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3805"
width="127.55905"
height="56.692924"
x="283.46457"
y="124.01572" />
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="287.00787"
y="155.90546"
id="text3807"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3809"
x="287.00787"
y="155.90546">rst</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3811"
y="138.18895"
x="287.00787"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="138.18895"
x="287.00787"
id="tspan3813"
sodipodi:role="line">clk_i</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3819"
y="173.62201"
x="407.48032"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="173.62201"
x="407.48032"
id="tspan3821"
sodipodi:role="line"
style="text-align:end;text-anchor:end">wdt_rst</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 269.29134,159.4488 58.46457,0"
id="path3831"
inkscape:connector-curvature="0"
transform="translate(141.73229,10.629912)"
sodipodi:nodetypes="cc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 53.149607,77.952734 17.716535,0 0,60.236216 21.259842,0"
id="path3840"
inkscape:connector-curvature="0"
transform="translate(141.73229,10.629912)"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 455.31497,141.73226 14.17322,0 0,46.063 -398.622048,0 0,-42.51969 24.803149,0"
id="path3844"
inkscape:connector-curvature="0"
transform="translate(141.73229,10.629912)"
sodipodi:nodetypes="cccccc" />
<path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 232.85827,143.76112 c 5.16063,6.88084 5.16063,10.32125 0,17.20209 12.04146,0 20.64251,0 25.80315,-8.60104 -5.16064,-8.60105 -13.76169,-8.60105 -25.80315,-8.60105 z"
id="path3936"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
sodipodi:type="arc"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.00000024;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path3787"
sodipodi:cx="159.44882"
sodipodi:cy="116.92912"
sodipodi:rx="7.0866141"
sodipodi:ry="7.0866141"
d="m 166.53544,116.92912 c 0,3.91383 -3.17279,7.08662 -7.08662,7.08662 -3.91383,0 -7.08661,-3.17279 -7.08661,-7.08662 0,-3.91383 3.17278,-7.08661 7.08661,-7.08661 3.91383,0 7.08662,3.17278 7.08662,7.08661 z"
transform="matrix(0.24999996,0,0,0.24999996,193.99607,119.58659)" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 258.29442,152.36217 25.17015,0"
id="path4031"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 53.149607,59.926762 70.866143,0 0,64.088968 17.71653,0"
id="path4033"
inkscape:connector-curvature="0"
transform="translate(141.73229,10.629912)"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 265.61407,70.866117 186.15759,0 0,63.950863 17.71653,0"
id="path4035"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 69.094488,77.952734 223.228352,0 0,63.779526 35.43307,0"
id="path4037"
inkscape:connector-curvature="0"
transform="translate(141.73229,10.629912)"
sodipodi:nodetypes="cccc" />
<path
sodipodi:type="arc"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="path3126"
sodipodi:cx="109.98324"
sodipodi:cy="-16.716501"
sodipodi:rx="1.7716535"
sodipodi:ry="1.7716535"
d="m 111.75489,-16.716501 c 0,0.978457 -0.79319,1.771653 -1.77165,1.771653 -0.97846,0 -1.77166,-0.793196 -1.77166,-1.771653 0,-0.978457 0.7932,-1.771654 1.77166,-1.771654 0.97846,0 1.77165,0.793197 1.77165,1.771654 z"
transform="translate(102.61519,105.29915)" />
<path
transform="translate(155.7648,87.582612)"
d="m 111.75489,-16.716501 c 0,0.978457 -0.79319,1.771653 -1.77165,1.771653 -0.97846,0 -1.77166,-0.793196 -1.77166,-1.771653 0,-0.978457 0.7932,-1.771654 1.77166,-1.771654 0.97846,0 1.77165,0.793197 1.77165,1.771654 z"
sodipodi:ry="1.7716535"
sodipodi:rx="1.7716535"
sodipodi:cy="-16.716501"
sodipodi:cx="109.98324"
id="path4046"
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0.5;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
sodipodi:type="arc" />
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="191.33859"
y="74.409416"
id="text4048"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan4050"
x="191.33859"
y="74.409416"
style="text-align:end;text-anchor:end">sys_clk</tspan></text>
<text
sodipodi:linespacing="125%"
id="text4052"
y="92.125954"
x="191.33859"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="92.125954"
x="191.33859"
id="tspan4054"
sodipodi:role="line"
style="text-align:end;text-anchor:end">sys_rst_n</tspan></text>
</g>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="205.52206"
y="109.8425"
id="text3823"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3825"
x="205.52206"
y="109.8425"
style="font-size:12px;font-weight:bold;text-align:center;text-anchor:middle">FSM</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3827"
y="109.8425"
x="391.77567"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:12px;font-weight:bold;text-align:center;text-anchor:middle"
y="109.8425"
x="391.77567"
id="tspan3829"
sodipodi:role="line">gc_fsm_watchdog</tspan></text>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="360.67316"
height="96.669365"
id="svg3047"
version="1.1"
inkscape:version="0.48.3.1 r9886"
sodipodi:docname="implem.svg">
<defs
id="defs3049" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="2.8"
inkscape:cx="158.14523"
inkscape:cy="-14.420669"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
showguides="true"
inkscape:guide-bbox="true"
inkscape:window-width="1855"
inkscape:window-height="1176"
inkscape:window-x="65"
inkscape:window-y="24"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0">
<inkscape:grid
type="xygrid"
id="grid3179"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true"
units="mm"
spacingx="1mm"
spacingy="1mm"
originx="-103.56183mm"
originy="-156.85887mm" />
</sodipodi:namedview>
<metadata
id="metadata3052">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-366.95135,-399.89368)">
<rect
style="opacity:0.98999999000000005;fill:none;stroke:#cccccc;stroke-width:2;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:8,8;stroke-dashoffset:0"
id="rect3261"
width="244.4882"
height="95.669365"
x="425.19684"
y="400.39368" />
<text
sodipodi:linespacing="125%"
id="text4063"
y="411.02359"
x="428.74014"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#cccccc;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-weight:bold;text-align:start;text-anchor:start;fill:#cccccc;fill-opacity:1"
y="411.02359"
x="428.74014"
id="tspan4065"
sodipodi:role="line">gc_fsm_watchdog</tspan></text>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 480.05357,461.11493 20.35715,0"
id="path3177"
inkscape:connector-curvature="0" />
<path
inkscape:connector-curvature="0"
id="path3197"
d="m 500.02551,442.98766 -81.91527,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
inkscape:connector-curvature="0"
id="path3199"
d="m 453.39286,457.00504 -35.28262,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 418.11024,471.25982 28.34645,0 0,-7.08661 14.17323,0"
id="path3224"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<g
id="g3220">
<path
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:0.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 454.31496,452.51388 c 5.16063,6.88084 5.16063,10.32125 0,17.20209 12.04146,0 20.64251,0 25.80315,-8.60104 -5.16064,-8.60105 -13.76169,-8.60105 -25.80315,-8.60105 z"
id="path3936"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccc" />
<path
sodipodi:type="arc"
style="fill:#ffffff;fill-opacity:1;stroke:#000000;stroke-width:2.00000024;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="path3787"
sodipodi:cx="159.44882"
sodipodi:cy="116.92912"
sodipodi:rx="7.0866141"
sodipodi:ry="7.0866141"
d="m 166.53544,116.92912 c 0,3.91383 -3.17279,7.08662 -7.08662,7.08662 -3.91383,0 -7.08661,-3.17279 -7.08661,-7.08662 0,-3.91383 3.17278,-7.08661 7.08661,-7.08661 3.91383,0 7.08662,3.17278 7.08662,7.08661 z"
transform="matrix(0.24999996,0,0,0.24999996,415.45276,427.85432)" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 627.16535,449.99998 49.6063,0"
id="path3226"
inkscape:connector-curvature="0"
sodipodi:nodetypes="cc" />
<g
id="g3228">
<rect
y="432.66513"
x="500.55975"
height="53.409927"
width="127.55905"
id="rect3772"
style="opacity:0.98999999;fill:#e5e5e5;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none" />
<text
sodipodi:linespacing="125%"
id="text3776"
y="464.55487"
x="504.10306"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
y="464.55487"
x="504.10306"
id="tspan3778"
sodipodi:role="line">rst</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="504.10306"
y="446.83838"
id="text3780"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3782"
x="504.10306"
y="446.83838">clk_i</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="624.5755"
y="453.54327"
id="text3788"
sodipodi:linespacing="125%"><tspan
style="text-align:end;text-anchor:end"
sodipodi:role="line"
id="tspan3790"
x="624.5755"
y="453.54327">eq</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="564.57953"
y="429.12183"
id="text3827"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3829"
x="564.57953"
y="429.12183"
style="font-size:12px;font-weight:bold;text-align:center;text-anchor:middle">counter</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3112"
y="480.44888"
x="564.57953"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="font-size:10px;font-weight:bold;text-align:center;text-anchor:middle"
y="480.44888"
x="564.57953"
id="tspan3114"
sodipodi:role="line">g_wdt_max</tspan></text>
</g>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="411.02362"
y="446.45667"
id="text3241"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3243"
x="411.02362"
y="446.45667"
style="text-align:end;text-anchor:end">clk_i</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3249"
y="460.62991"
x="411.02362"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="text-align:end;text-anchor:end"
y="460.62991"
x="411.02362"
id="tspan3251"
sodipodi:role="line">rst_n_i</tspan></text>
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
x="411.02362"
y="474.80313"
id="text3253"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
id="tspan3255"
x="411.02362"
y="474.80313"
style="text-align:end;text-anchor:end">wdt_rst_i</tspan></text>
<text
sodipodi:linespacing="125%"
id="text3257"
y="453.54327"
x="680.31494"
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
xml:space="preserve"><tspan
style="text-align:start;text-anchor:start"
y="453.54327"
x="680.31494"
id="tspan3259"
sodipodi:role="line">fsm_rst_o</tspan></text>
</g>
</svg>
This diff is collapsed.
@misc{coding-guidelines,
author = "Patrick Loschmidt and Nata{\v s}a Simani\'c and C\'esar Prados and Pablo Alvarez and Javier Serrano",
title = {{Guidelines for VHDL Coding}},
month = 04,
year = 2011,
note = {\url{http://www.ohwr.org/documents/24}}
}
%==============================================================================
% Document header
%==============================================================================
\documentclass[a4paper,11pt]{article}
\usepackage[pdfborder= 0 0 0 1]{hyperref}
\usepackage{graphicx}
\usepackage{multirow}
\usepackage{color}
\usepackage[toc,page]{appendix}
% Header and footer customization
\usepackage{fancyhdr}
\setlength{\headheight}{15.2pt}
\pagestyle{fancy}
\fancyhead[L]{\nouppercase{\leftmark}}
\fancyhead[R]{}
\renewcommand{\footrulewidth}{0.4pt}
%==============================================================================
% Start of document
%==============================================================================
\begin{document}
%------------------------------------------------------------------------------
% Title
%------------------------------------------------------------------------------
\include{cern-title}
%------------------------------------------------------------------------------
% Revision history
%------------------------------------------------------------------------------
\thispagestyle{empty}
\section*{Revision history}
\centerline
{
\begin{tabular}{l c p{.6\textwidth}}
\hline
\multicolumn{1}{c}{\textbf{Date}} & \multicolumn{1}{c}{\textbf{Version}} & \multicolumn{1}{c}{\textbf{Change}} \\
\hline
23-11-2013 & 0.1 & First draft \\
\hline
\end{tabular}
}
\pagebreak
\pagenumbering{roman}
\setcounter{page}{1}
\tableofcontents
%------------------------------------------------------------------------------
% List of figs, tables, abbrevs
%------------------------------------------------------------------------------
\pagebreak
\listoffigures
\listoftables
\section*{List of Abbreviations}
\begin{tabular}{l l}
FSM & Finite State Machine \\
\end{tabular}
\pagebreak
\pagenumbering{arabic}
\setcounter{page}{1}
%==============================================================================
% SEC: Intro
%==============================================================================
\section{Introduction}
\label{sec:intro}
The Finite State Machine (FSM) Watchdog Timer component (\textit{gc\_fsm\_watchdog})
is a simple component that can be used to reset an FSM in case it spends too much
time outside the state machine's IDLE state. The component asserts its output signal
when the watchdog reaches a user-selected value. This output can then be used
in the HDL code to reset the FSM.
%==============================================================================
% SEC: Instantiation
%==============================================================================
\section{Instantiation}
\label{sec:instantiation}
The ports of the \textit{gc\_fsm\_watchdog} module are shown in Table~\ref{tbl:ports}.
\begin{table}[h]
\caption{Ports of \textit{vbcp\_wb} module}
\label{tbl:ports}
\centerline
{
\begin{tabular}{l c p{.6\textwidth}}
\hline
\multicolumn{1}{c}{\textbf{Port}} & \textbf{Size} & \multicolumn{1}{c}{\textbf{Description}} \\
\hline
clk\_i & 1 & Clock input \\
rst\_n\_i & 1 & Active-low reset input \\
wdt\_rst\_i & 1 & Active-high reset input from the FSM to the watchdog timer \newline
Synchronous to \textit{clk\_i}\\
fsm\_rst\_o & 1 & Active-high reset output from the watchdog timer to the FSM \newline
Synchronous to \textit{clk\_i}\\ \\
\hline
\end{tabular}
}
\end{table}
Figure~\ref{fig:conn} shows how the \textit{gc\_fsm\_watchdog} module can be connected
to an FSM in a design. The clock (\textit{clk\_i}) and active-low reset (\textit{rst\_n\_i})
input ports should be connected to the master reset lines in the design. The signal connected
to the active-high input reset port (\textit{wdt\_rst\_i}) should be asserted by the FSM when
it is in its IDLE state. The reset output to the FSM (\textit{fsm\_rst\_o}) should be
ORed together with the active-low master reset input and connected to the reset input
of the FSM.
\begin{figure}[h]
\centerline{\includegraphics[width=.9\textwidth]{fig/conn}}
\caption{Connecting the \textit{gc\_fsm\_watchdog} module to an FSM}
\label{fig:conn}
\end{figure}
Examples of how to connect to the \textit{gc\_fsm\_watchdog} module are given in
Appendix~\ref{app:instantiation}.
%==============================================================================
% SEC: Instantiation
%==============================================================================
\section{Implementation}
\label{sec:implem}
The watchdog timer is implemented as a simple up-counter which asserts the
\textit{fsm\_rst\_o} output when the maximum value of \textit{g\_wdt\_max} is
reached. The counter is reset by either the active-low (system) reset and the
active-high (FSM) reset. A diagram of the block is shown in Figure~\ref{fig:implem}.
\begin{figure}[h]
\centerline{\includegraphics[width=\textwidth]{fig/implem}}
\caption{Diagram of the FSM watchdog module}
\label{fig:implem}
\end{figure}
%==============================================================================
% APPENDICES
%==============================================================================
\pagebreak
\begin{appendices}
\section{Example instantiation}
\label{app:instantiation}
\subsection{VHDL}
\begin{verbatim}
p_proc : process (sys_clk)
begin
if rising_edge(sys_clk) then
if (sys_rst_n = '0') or (rst_fr_wdt = '1') then
state <= IDLE;
else
case state is
when IDLE =>
wdt_rst <= '1';
if (trigger = '1') then
wdt_rst <= '0';
state <= NEXT_STATE;
end if;
when NEXT_STATE =>
-- ...
end case;
end if;
end if;
end process p_proc;
cmp_fsm_watchdog : gc_fsm_watchdog
generic map
(
-- FSM should return to IDLE within 256 clk_i cycles
g_wdt_max => 256
)
port map
(
clk_i => sys_clk;
rst_n_i => sys_rst_n;
wdt_rst_i => wdt_rst;
fsm_rst_o => fsm_rst;
);
\end{verbatim}
\pagebreak
\subsection{Verilog}
\begin{verbatim}
always @(posedge sys_clk)
begin
if (!rst_n_i) or (rst_fr_wdt) then
state <= IDLE;
else
begin
case (state)
IDLE:
begin
wdt_rst <= 1'b1;
if (trigger = '1') then
begin
wdt_rst <= 1'b0;
state <= NEXT_STATE;
end
end
NEXT_STATE:
begin
// ...
end
endcase
end
end
gc_fsm_watchdog cmp_gc_fsm_watchdog (
.clk_i (sys_clk),
.rst_n_i (sys_rst_n),
.wdt_rst_i (wdt_rst),
.fsm_rst_o (rst_fr_wdt)
)
\end{verbatim}
\end{appendices}
%==============================================================================
% Bibliography
%==============================================================================
%\pagebreak
%\bibliographystyle{ieeetr}
%\bibliography{gc_fsm_watchdog}
\end{document}
\ No newline at end of file
FILE=gc_glitch_filt
all:
$(MAKE) -C fig
pdflatex -synctex=1 -interaction=nonstopmode $(FILE).tex *.tex
bibtex $(FILE).aux
pdflatex -synctex=1 -interaction=nonstopmode $(FILE).tex *.tex
pdflatex -synctex=1 -interaction=nonstopmode $(FILE).tex *.tex
evince $(FILE).pdf &
clean:
$(MAKE) -C fig clean
rm -rf *.aux *.dvi *.log $(FILE).pdf *.lof *.lot *.out *.toc *.bbl *.blg *.gz
Type 'make' to create your .pdf documentation file.
You need Inkscape to make the documentation files:
sudo apt-get install inkscape
\ No newline at end of file
\begin{titlepage}
\vspace*{3cm}
\noindent{\LARGE \textbf{Glitch filter}}
\noindent \rule{\textwidth}{.1cm}
\hfill March 3, 2014
\vspace*{3cm}
\begin{figure}[h]
\includegraphics[height=3cm]{fig/cern-logo}
\hfill
\includegraphics[height=3cm]{fig/ohwr-logo}
\end{figure}
\vfill
\noindent {\Large \textbf{Theodor-Adrian Stana (CERN/BE-CO-HT)}}
\noindent \rule{\textwidth}{.05cm}
\end{titlepage}
SRC = $(wildcard *.svg)
OBJS = $(SRC:.svg=.pdf)
all: $(OBJS)
echo $(OBJS)
%.pdf : %.svg
inkscape -f $< -A $@
clean :
rm -f *.pdf
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 15.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="184.252px" height="184.252px" viewBox="0 0 184.252 184.252" enable-background="new 0 0 184.252 184.252"
xml:space="preserve">
<g>
<path fill="#0053A1" d="M38.544,76.536c-0.921,0.7-4.123,2.692-8.941,2.692c-8.718,0-14.658-5.495-14.658-13.872
c0-8.328,6.298-13.87,14.862-13.87c3.332,0,7.147,1.026,9.275,1.939c-0.445,0.985-0.811,2.286-0.965,3.1l-0.233,0.077
c-1.647-1.823-4.295-3.402-8.213-3.402c-4.972,0-10.696,4.027-10.696,12.056c0,7.819,5.832,11.974,11.046,11.974
c4.684,0,6.927-2.186,8.939-3.885l0.154,0.154L38.544,76.536z"/>
<path fill="#0053A1" d="M60.139,77.312c0-0.588,0.05-1.193,0.092-1.487c-2.644,0.243-9.903,0.463-12.734,0.504
c-0.048-0.707-0.11-9.091-0.04-10.387c1.132,0,7.114,0.078,9.787,0.35c-0.077-0.388-0.116-0.962-0.116-1.35
c0-0.387,0.039-1.082,0.116-1.469c-2.286,0.193-5.214,0.387-9.787,0.387c0-0.969,0.079-8.037,0.118-9.701
c5.036,0,9.596,0.313,12.148,0.504c-0.042-0.264-0.092-0.807-0.092-1.337c0-0.528,0.035-0.958,0.092-1.322
c-1.342,0.09-5.678,0.195-8.003,0.195c-2.324,0-5.913-0.078-8.237-0.195c0.154,3.294,0.311,6.664,0.311,9.997v6.664
c0,3.333-0.156,6.704-0.311,10.075c2.363-0.117,5.99-0.194,8.354-0.194c0.111,0,0.227,0,0.343,0
c0.81,0.003,1.835,0.014,2.893,0.033c1.833,0.034,3.767,0.089,5.159,0.161l0,0l0,0C60.173,78.331,60.139,77.899,60.139,77.312z"/>
<path fill="#0053A1" d="M68.815,65.622v3.082c0,3.332,0.154,6.701,0.311,10.034c-0.66-0.117-1.852-0.128-2.096-0.128
c-0.243,0-1.435,0.012-2.094,0.128c0.155-3.333,0.31-6.703,0.31-10.034v-6.666c0-3.332-0.155-6.703-0.31-10.035
c1.473,0.117,3.336,0.195,4.809,0.195c1.473,0,2.945-0.195,4.417-0.195c4.379,0,8.39,1.293,8.39,6.169
c0,5.161-5.14,7.013-8.085,7.401c1.899,2.363,8.7,10.646,10.947,13.165c-0.774-0.117-2.073-0.128-2.427-0.128
c-0.354,0-1.691,0.012-2.427,0.128c-1.531-2.335-6.437-9.686-9.77-13.117C70.688,65.621,68.815,65.622,68.815,65.622z
M71.411,64.204c3.199-0.065,7.4-1.081,7.4-5.502c0-3.852-3.371-5.076-6.005-5.076c-1.782,0-2.945,0.116-3.758,0.193
c-0.117,2.829-0.232,5.428-0.232,8.218c0,0,0,1.851,0,2.131C69.2,64.221,71.016,64.21,71.411,64.204z"/>
<path fill="#0053A1" d="M112.594,51.99c-0.453,0.078-1.013,0.142-1.699,0.142c-0.676,0-1.257-0.073-1.651-0.142
c0.17,3.174,0.462,9.047,0.462,12.899c0,2.898,0,5.428-0.04,6.862c-1.409-1.499-17.576-18.23-19.219-20.016l-1.269-0.013
c0.057,2.465,0.129,5.141,0.129,10.022c0,6.249-0.087,12.896-0.406,16.994c0.453-0.079,1.012-0.142,1.698-0.142
c0.677,0,1.257,0.071,1.65,0.142c-0.169-3.173-0.461-9.048-0.461-12.898c0-2.899,0.002-5.882,0.041-7.314
c1.409,1.5,17.667,18.458,19.218,20.561l1.269,0.012c-0.058-2.465-0.129-5.234-0.129-10.116
C112.187,62.734,112.275,56.085,112.594,51.99z"/>
<path fill="#0053A1" d="M42.069,121.789c-7.614-12.048-9.781-23.679-10.084-32.58c-1.173,0-2.346,0-3.519,0
c0.295,9.71,2.65,19.893,7.919,29.872C37.627,120.083,40.544,121.358,42.069,121.789z"/>
<path fill="#0053A1" d="M184.25,1.679c0,0-87.554-0.694-115.47-0.679c-4.369,0.003-7.302,0.311-8.248,0.371
C26.048,3.605,0.115,33.842,0,66.817c-0.032,9.586,2.522,20.39,6.667,34.973c5.476,19.267,11.891,41.367,11.891,41.367h3.499
L9.128,99.539l0.097-0.065c9.497,18.347,31.392,33.086,56.237,33.086c13.407,0,25.841-3.753,35.638-10.666l0.085,0.08
l-57.516,61.204h4.492c0,0,40.387-42.968,54.125-57.556c10.527-11.178,15.996-18.381,18.285-22.119
c2.625-4.287,10.964-16.645,10.652-34.847l0.112-0.008l25.203,114.529h3.618c0,0-21.146-93.744-25.25-113.349
c-4.038-19.292-8.809-31.258-13.957-38.083c-1.769-0.985-4.527-2.107-5.828-2.411c7.472,9.428,13.055,23.454,13.055,37.489
c0,34.355-27.95,62.304-62.306,62.304c-34.354,0-62.304-27.949-62.304-62.304c0-34.356,28.05-62.306,62.324-62.306
c15.235,0,29.356,5.588,40.209,14.79c2.098,0.29,4.91,0.945,6.589,1.551l0.013-0.035C104.902,13.046,95.163,7.265,84.33,4.225
c0-0.084,0-0.089,0-0.089l99.922,0.623L184.25,1.679z"/>
<path fill="#0053A1" d="M50.808,132.873c-2.228-0.329-5.011-1.118-6.685-1.836c7.5,8.536,17.82,15.366,27.953,19.198l2.659-2.821
C63.744,143.702,55.756,137.737,50.808,132.873"/>
<path fill="#0053A1" d="M142.469,127.885c-11.121,13.615-28.388,22.783-48.226,22.771c-4.259-0.001-8.391-0.478-11.836-1.179
l-2.847,3.022c5.445,1.258,10.271,1.731,14.885,1.731c20.405,0,37.861-9.523,48.972-22.057L142.469,127.885"/>
<path fill="#0053A1" d="M165.644,17.304l-6.001,61.965h-0.113c-0.851-11.696-6.682-25.666-13.883-34.498
c-12.5-15.329-30.842-24.585-51.444-24.585c-19.647,0-37.15,8.717-49.192,22.381l2.758,2.186
C59.145,31.888,75.442,23.643,94.2,23.643c22.836,0,41.439,11.704,51.845,27.615c9.286,14.197,12.365,32.39,10.213,45.719
c-0.727,4.502-2.36,13.257-8.359,23.176l1.05,4.614c7.358-11.405,11.091-21.556,14.005-47.503
c2.234-19.906,6.073-59.962,6.073-59.962L165.644,17.304z"/>
</g>
</svg>
This diff is collapsed.
This diff is collapsed.
@misc{ohwr,
title = {{Open Hardware Repository}},
howpublished = {\url{http://www.ohwr.org/}}
}
@misc{gencores-ohwr,
title = {{Platform-independent Core Collection webage on Open Hardware Repository}},
howpublished = {\url{http://www.ohwr.org/projects/general-cores/wiki}}
}
%==============================================================================
% Document header
%==============================================================================
\documentclass[a4paper,11pt]{article}
% Color package
\usepackage[usenames,dvipsnames]{color}
% Hyperrefs
\usepackage[
colorlinks = true,
linkcolor = Mahogany,
citecolor = Mahogany,
urlcolor = blue,
]{hyperref}
\usepackage{graphicx}
\usepackage{rotating}
\usepackage{multirow}
\usepackage{longtable}
% Header and footer customization
\usepackage{fancyhdr}
\pagestyle{fancy}
\fancyhead[L]{\nouppercase{\leftmark}}
\fancyhead[R]{}
\renewcommand{\footrulewidth}{0.4pt}
%==============================================================================
% Start of document
%==============================================================================
\begin{document}
%------------------------------------------------------------------------------
% Title
%------------------------------------------------------------------------------
\include{cern-title}
%------------------------------------------------------------------------------
% Revision history
%------------------------------------------------------------------------------
\thispagestyle{empty}
\section*{Revision history}
\centerline
{
\begin{tabular}{l c p{.6\textwidth}}
\hline
\multicolumn{1}{c}{\textbf{Date}} & \multicolumn{1}{c}{\textbf{Version}} & \multicolumn{1}{c}{\textbf{Change}} \\
\hline
03-03-2014 & 0.01 & First draft \\
\hline
\end{tabular}
}
%------------------------------------------------------------------------------
% Generate TOC and pagebreak after it
%------------------------------------------------------------------------------
\pagebreak
\pagenumbering{roman}
\setcounter{page}{1}
\tableofcontents
%------------------------------------------------------------------------------
% List of figs, tables, abbrevs
%------------------------------------------------------------------------------
\listoffigures
\listoftables
%------------------------------------------------------------------------------
% List of abbreviations
%------------------------------------------------------------------------------
\pagebreak
\section*{List of Abbreviations}
\begin{tabular}{l l}
FF & Flip-Flop \\
\end{tabular}
%==============================================================================
% SEC: Intro
%==============================================================================
\pagebreak
\pagenumbering{arabic}
\setcounter{page}{1}
\section{Introduction}
\label{sec:intro}
This document presents the \textit{gc\_glitch\_filt} component, a modular glitch
filter open-hardware~\cite{ohwr} design for FPGA or ASIC implementation. It is
implemented as one short VHDL file which can be found under the following folder
of the \textit{general-cores} repository~\cite{gencores-ohwr}:
\begin{itemize}
\item \textit{modules/common/}
\end{itemize}
%==============================================================================
% SEC: Instantiation
%==============================================================================
\section{Instantiation}
\label{sec:instantiation}
Table~\ref{tbl:ports} shows the instantiation template for the \textit{gc\_glitch\_filt}
component. It can be directly instantiated in a VHDL or Verilog design.
The data to be filtered should be connected to the \textit{dat\_i} input. Note that
the data is not synchronized internally to the \textit{clk\_i} signal, if metastability
is a concern, a synchronization chain should be provided outside the component.
The deglitched data is presented at the \textit{dat\_o} output a number of \textit{g\_len+1}
clock cycles later.
\begin{table}[h]
\caption{Ports and generics of \textit{gc\_i2c\_slave} module}
\label{tbl:ports}
\centerline
{
\begin{tabular}{l p{.7\textwidth}}
\hline
\multicolumn{1}{c}{\textbf{Name}} & \multicolumn{1}{c}{\textbf{Description}} \\
\hline
g\_len & Glitch filter length generic (in \textit{clk\_i} cycles) \newline
1 -- glitches narrower than 1 \textit{clk\_i} cycle are filtered \newline
2 -- glitches narrower than 2 \textit{clk\_i} cycles are filtered \newline
etc.\\
clk\_i & Clock input \\
rst\_n\_i & Active-low reset input \\
dat\_i & Data input (should be synchronous to \textit{clk\_i})\\
dat\_o & Deglitched data output (synchronous to \textit{clk\_i}) \\
\hline
\end{tabular}
}
\end{table}
%==============================================================================
% SEC: implem
%==============================================================================
\pagebreak
\section{Implementation and operation}
Figure~\ref{fig:implem} shows the implementation of the \textit{gc\_glitch\_filt}
block.
\begin{figure}[h]
\centerline{\includegraphics[width=\textwidth]{fig/implem}}
\caption{Implementation of the \textit{gc\_glitch\_filt} block}
\label{fig:implem}
\end{figure}
The block's operation is very simple and can be summarized as follows. At synthesis
time, \textit{g\_len} FFs are generated. If the \textit{dat\_i} is stable for a number
of \textit{g\_len} cycles, all FFs in the deglitching stage have the same value,
and the \textit{dat\_o} output changes to reflect the state of \textit{dat\_i}.
Should a glitch occur at any time on the \textit{dat\_i} signal, it is filtered
by the AND (or NAND) gate at the output.
All the FFs are cleared ('0') on reset.
%==============================================================================
% Bibliography
%==============================================================================
\pagebreak
\bibliographystyle{ieeetr}
\bibliography{gc_glitch_filt}
\end{document}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment