Commit 7c913fc1 authored by Matthieu Cattin's avatar Matthieu Cattin

doc: Update doc to describe new features.

parent 267af46a
...@@ -9,8 +9,8 @@ ...@@ -9,8 +9,8 @@
xmlns="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="397.87109" width="522.79785"
height="95.080078" height="90.06543"
id="svg18660" id="svg18660"
version="1.1" version="1.1"
inkscape:version="0.47 r22583" inkscape:version="0.47 r22583"
...@@ -221,6 +221,53 @@ ...@@ -221,6 +221,53 @@
inkscape:vp_y="0 : 1000 : 0" inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1" inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" /> sodipodi:type="inkscape:persp3d" />
<inkscape:perspective
id="perspective2917"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="TriangleOutM-0"
style="overflow:visible">
<path
id="path3353-66"
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="scale(0.4,0.4)" />
</marker>
<inkscape:perspective
id="perspective2960"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="TriangleOutM-4"
style="overflow:visible">
<path
id="path3353-5"
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="scale(0.4,0.4)" />
</marker>
<inkscape:perspective
id="perspective2990"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
</defs> </defs>
<sodipodi:namedview <sodipodi:namedview
id="base" id="base"
...@@ -229,16 +276,16 @@ ...@@ -229,16 +276,16 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="1.4" inkscape:zoom="1.979899"
inkscape:cx="130.96882" inkscape:cx="222.48035"
inkscape:cy="124.39521" inkscape:cy="35.167165"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="true" showgrid="true"
inkscape:window-width="1920" inkscape:window-width="1920"
inkscape:window-height="1123" inkscape:window-height="1173"
inkscape:window-x="0" inkscape:window-x="0"
inkscape:window-y="25" inkscape:window-y="0"
inkscape:window-maximized="1"> inkscape:window-maximized="1">
<inkscape:grid <inkscape:grid
type="xygrid" type="xygrid"
...@@ -256,7 +303,7 @@ ...@@ -256,7 +303,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title> <dc:title />
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
...@@ -264,7 +311,7 @@ ...@@ -264,7 +311,7 @@
inkscape:label="Layer 1" inkscape:label="Layer 1"
inkscape:groupmode="layer" inkscape:groupmode="layer"
id="layer1" id="layer1"
transform="translate(-0.98144531,-146.86218)"> transform="translate(28.041992,-111.44226)">
<path <path
sodipodi:type="arc" sodipodi:type="arc"
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
...@@ -274,38 +321,46 @@ ...@@ -274,38 +321,46 @@
sodipodi:rx="5" sodipodi:rx="5"
sodipodi:ry="5" sodipodi:ry="5"
d="m 140,47.362183 c 0,2.761423 -2.23858,5 -5,5 -2.76142,0 -5,-2.238577 -5,-5 0,-2.761424 2.23858,-5 5,-5 2.76142,0 5,2.238576 5,5 z" d="m 140,47.362183 c 0,2.761423 -2.23858,5 -5,5 -2.76142,0 -5,-2.238577 -5,-5 0,-2.761424 2.23858,-5 5,-5 2.76142,0 5,2.238576 5,5 z"
transform="matrix(4,0,0,4,-355,-22.086548)" /> transform="matrix(4,0,0,4,-354.01855,-57.506472)" />
<rect
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
id="rect19214"
width="70"
height="40"
x="230"
y="147.36218" />
<text <text
xml:space="preserve" xml:space="preserve"
style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana" style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="243.39355" x="264.32129"
y="202.36218" y="161.94226"
id="text3237-3-4-5-9-32-8" id="text3237-3-4-5-9-32-8"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
x="243.39355" x="264.32129"
y="202.36218" y="161.94226"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter" style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8">Saturate</tspan></text> id="tspan15939-0-8">Saturate to</tspan><tspan
sodipodi:role="line"
x="264.32129"
y="174.44226"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan3010">16-bit signed</tspan></text>
<g
id="g2903">
<rect
y="111.94226"
x="230.98145"
height="40"
width="70"
id="rect19214"
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="path19277"
d="m 265,152.36218 0,30" d="m 265.98145,116.94226 0,30"
id="path19277" /> style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="path19279"
d="m 235,167.36218 60,0" d="m 235.98145,131.94226 60,0"
id="path19279" /> style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path <path
style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" id="path19287"
d="m 240,177.36218 10,0 30,-20 10,0" d="m 240.98145,141.94226 10,0 30,-20 10,0"
id="path19287" /> style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path <path
sodipodi:type="arc" sodipodi:type="arc"
style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
...@@ -315,114 +370,162 @@ ...@@ -315,114 +370,162 @@
sodipodi:rx="5" sodipodi:rx="5"
sodipodi:ry="5" sodipodi:ry="5"
d="m 140,47.362183 c 0,2.761423 -2.23858,5 -5,5 -2.76142,0 -5,-2.238577 -5,-5 0,-2.761424 2.23858,-5 5,-5 2.76142,0 5,2.238576 5,5 z" d="m 140,47.362183 c 0,2.761423 -2.23858,5 -5,5 -2.76142,0 -5,-2.238577 -5,-5 0,-2.761424 2.23858,-5 5,-5 2.76142,0 5,2.238576 5,5 z"
transform="matrix(4,0,0,4,-420,-22.086548)" /> transform="matrix(4,0,0,4,-449.01855,-57.506472)" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 120,157.36218 0,20 0,0" d="m 90.98145,121.94226 0,20 0,0"
id="path19388" /> id="path19388" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 110,167.36218 20,0" d="m 80.98145,131.94226 20,0"
id="path19390" /> id="path19390" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 195,157.36218 -20,20 0,0" d="m 195.98145,121.94226 -20,20 0,0"
id="path19392" /> id="path19392" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
d="m 175,157.36218 20,20" d="m 175.98145,121.94226 20,20"
id="path19394" /> id="path19394" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 140,167.36218 20,0" d="m 110.98145,131.94226 49.99999,0"
id="path3202" /> id="path3202" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 205,167.36218 20,0" d="m 205.98145,131.94226 20,0"
id="path3202-9" /> id="path3202-9" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 75,167.36218 20,0" d="m 45.981445,131.94226 20,0"
id="path3202-8" /> id="path3202-8" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 300,167.36218 20,0" d="m 300.98145,131.94226 20,0"
id="path3202-4" /> id="path3202-4" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 120,212.36218 0,-20" d="m 90.98145,176.94226 0,-20"
id="path3202-3" /> id="path3202-3" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 185,212.36218 0,-20" d="m 185.98145,176.94226 0,-20"
id="path3202-3-2" /> id="path3202-3-2" />
<text <text
xml:space="preserve" xml:space="preserve"
style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana" style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="65" x="91.13282"
y="227.36218" y="186.94226"
id="text3237-3-4-5-9-32-8-6" id="text3237-3-4-5-9-32-8-6"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
x="65" x="91.13282"
y="227.36218" y="186.94226"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter" style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8-9">Offset correction</tspan><tspan id="tspan15939-0-8-9">Offset correction</tspan><tspan
sodipodi:role="line" sodipodi:role="line"
x="65" x="91.13282"
y="239.86218" y="199.44226"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter" style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan19579">16-bit signed</tspan></text> id="tspan19579">16-bit signed</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana" style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="170" x="185.40771"
y="227.36218" y="186.94226"
id="text3237-3-4-5-9-32-8-5" id="text3237-3-4-5-9-32-8-5"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
x="170" x="185.40771"
y="227.36218" y="186.94226"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter" style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8-2">Gain correction</tspan><tspan id="tspan15939-0-8-2">Gain correction</tspan><tspan
sodipodi:role="line" sodipodi:role="line"
x="170" x="185.40771"
y="239.86218" y="199.44226"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter" style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan19581">16-bit fixed point</tspan></text> id="tspan19581">16-bit fixed point</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana" style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="0" x="-29.018555"
y="163.87097" y="128.45105"
id="text3237-3-4-5-9-32-8-4" id="text3237-3-4-5-9-32-8-4"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
x="0" x="-29.018555"
y="163.87097" y="128.45105"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter" style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8-8">Raw ADC data</tspan><tspan id="tspan15939-0-8-8">Raw ADC data</tspan><tspan
sodipodi:role="line" sodipodi:role="line"
x="0" x="-29.018555"
y="176.37097" y="140.95105"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter" style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
id="tspan19577">16-bit signed</tspan></text> id="tspan19577">16-bit signed</tspan></text>
<text <text
xml:space="preserve" xml:space="preserve"
style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana" style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="325" x="420.98145"
y="163.87097" y="128.45837"
id="text3237-3-4-5-9-32-8-9" id="text3237-3-4-5-9-32-8-9"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
x="325" x="420.98145"
y="163.87097" y="128.45837"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter" style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
id="tspan15939-0-8-83">Corrected data</tspan><tspan id="tspan15939-0-8-83">Corrected data</tspan><tspan
sodipodi:role="line" sodipodi:role="line"
x="325" x="420.98145"
y="176.37097" y="140.95837"
style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter" style="font-size:10px;font-weight:normal;text-align:start;text-anchor:start;-inkscape-font-specification:Bitstream Charter"
id="tspan19583">16-bit signed</tspan></text> id="tspan19583">16-bit signed</tspan></text>
<g
transform="translate(94.999995,-1.875e-6)"
id="g2903-6">
<rect
y="111.94226"
x="230.98145"
height="40"
width="70"
id="rect19214-3"
style="fill:none;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0" />
<path
id="path19277-9"
d="m 265.98145,116.94226 0,30"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path19279-4"
d="m 235.98145,131.94226 60,0"
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
<path
id="path19287-2"
d="m 240.98145,141.94226 10,0 30,-20 10,0"
style="fill:none;stroke:#000000;stroke-width:0.99999994px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
</g>
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 395.98145,131.94226 20,0"
id="path3202-4-8" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 360.98145,176.94226 0,-20"
id="path3202-3-2-9" />
<text
xml:space="preserve"
style="font-size:8px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="361.16211"
y="187.80652"
id="text3237-3-4-5-9-32-8-3"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="361.16211"
y="187.80652"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan3014">User prog. saturation</tspan><tspan
sodipodi:role="line"
x="361.16211"
y="200.30652"
style="font-size:10px;font-weight:normal;text-align:center;text-anchor:middle;-inkscape-font-specification:Bitstream Charter"
id="tspan3020">15-bit unsigned</tspan></text>
</g> </g>
</svg> </svg>
...@@ -322,6 +322,26 @@ ...@@ -322,6 +322,26 @@
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none" style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="scale(0.4,0.4)" /> transform="scale(0.4,0.4)" />
</marker> </marker>
<inkscape:perspective
id="perspective3596"
inkscape:persp3d-origin="0.5 : 0.33333333 : 1"
inkscape:vp_z="1 : 0.5 : 1"
inkscape:vp_y="0 : 1000 : 0"
inkscape:vp_x="0 : 0.5 : 1"
sodipodi:type="inkscape:persp3d" />
<marker
inkscape:stockid="TriangleOutM"
orient="auto"
refY="0"
refX="0"
id="TriangleOutM-9"
style="overflow:visible">
<path
id="path3353-9"
d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
transform="scale(0.4,0.4)" />
</marker>
</defs> </defs>
<sodipodi:namedview <sodipodi:namedview
id="base" id="base"
...@@ -330,17 +350,17 @@ ...@@ -330,17 +350,17 @@
borderopacity="1.0" borderopacity="1.0"
inkscape:pageopacity="0.0" inkscape:pageopacity="0.0"
inkscape:pageshadow="2" inkscape:pageshadow="2"
inkscape:zoom="1.4" inkscape:zoom="2"
inkscape:cx="297.12732" inkscape:cx="302.48352"
inkscape:cy="159.55387" inkscape:cy="61.274911"
inkscape:document-units="px" inkscape:document-units="px"
inkscape:current-layer="layer1" inkscape:current-layer="layer1"
showgrid="false" showgrid="true"
inkscape:snap-global="true" inkscape:snap-global="true"
inkscape:window-width="1920" inkscape:window-width="1920"
inkscape:window-height="1123" inkscape:window-height="1173"
inkscape:window-x="0" inkscape:window-x="0"
inkscape:window-y="25" inkscape:window-y="0"
inkscape:window-maximized="1"> inkscape:window-maximized="1">
<inkscape:grid <inkscape:grid
type="xygrid" type="xygrid"
...@@ -358,7 +378,7 @@ ...@@ -358,7 +378,7 @@
<dc:format>image/svg+xml</dc:format> <dc:format>image/svg+xml</dc:format>
<dc:type <dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" /> rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title> <dc:title />
</cc:Work> </cc:Work>
</rdf:RDF> </rdf:RDF>
</metadata> </metadata>
...@@ -533,7 +553,7 @@ ...@@ -533,7 +553,7 @@
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" /> style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" />
<path <path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 317.48138,83.464046 0,16.576924" d="m 292.73138,83.464046 0,16.576924"
id="path6082" /> id="path6082" />
<text <text
xml:space="preserve" xml:space="preserve"
...@@ -575,12 +595,12 @@ ...@@ -575,12 +595,12 @@
<text <text
xml:space="preserve" xml:space="preserve"
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana" style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="293.26508" x="268.51508"
y="77.244675" y="77.244675"
id="text8539" id="text8539"
sodipodi:linespacing="125%"><tspan sodipodi:linespacing="125%"><tspan
sodipodi:role="line" sodipodi:role="line"
x="293.26508" x="268.51508"
y="77.244675" y="77.244675"
id="tspan8541">Threshold</tspan></text> id="tspan8541">Threshold</tspan></text>
<text <text
...@@ -780,5 +800,20 @@ ...@@ -780,5 +800,20 @@
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1" style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:square;stroke-linejoin:miter;stroke-opacity:1"
d="m 455.13411,254.23453 8.2921,0" d="m 455.13411,254.23453 8.2921,0"
id="path8587" /> id="path8587" />
<path
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#TriangleOutM)"
d="m 340.48138,83.46405 0,16.57692"
id="path6082-8" />
<text
xml:space="preserve"
style="font-size:10px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:center;line-height:125%;writing-mode:lr-tb;text-anchor:middle;fill:#000000;fill-opacity:1;stroke:none;font-family:Verdana;-inkscape-font-specification:Verdana"
x="340.93304"
y="77.244682"
id="text8539-8"
sodipodi:linespacing="125%"><tspan
sodipodi:role="line"
x="340.93304"
y="77.244682"
id="tspan3622">Filter</tspan></text>
</g> </g>
</svg> </svg>
...@@ -27,88 +27,112 @@ REG @tab ...@@ -27,88 +27,112 @@ REG @tab
Number of shots Number of shots
@item @code{0x18} @tab @item @code{0x18} @tab
REG @tab REG @tab
@code{shots_cnt} @tab
Remaining shots counter
@item @code{0x1c} @tab
REG @tab
@code{trig_pos} @tab @code{trig_pos} @tab
Trigger address register Trigger address register
@item @code{0x1c} @tab @item @code{0x20} @tab
REG @tab
@code{fs_freq} @tab
Sampling clock frequency
@item @code{0x24} @tab
REG @tab REG @tab
@code{sr} @tab @code{sr} @tab
Sample rate Sample rate
@item @code{0x20} @tab @item @code{0x28} @tab
REG @tab REG @tab
@code{pre_samples} @tab @code{pre_samples} @tab
Pre-trigger samples Pre-trigger samples
@item @code{0x24} @tab @item @code{0x2c} @tab
REG @tab REG @tab
@code{post_samples} @tab @code{post_samples} @tab
Post-trigger samples Post-trigger samples
@item @code{0x28} @tab @item @code{0x30} @tab
REG @tab REG @tab
@code{samples_cnt} @tab @code{samples_cnt} @tab
Samples counter Samples counter
@item @code{0x2c} @tab @item @code{0x34} @tab
REG @tab REG @tab
@code{ch1_ctl} @tab @code{ch1_ctl} @tab
Channel 1 control register Channel 1 control register
@item @code{0x30} @tab @item @code{0x38} @tab
REG @tab REG @tab
@code{ch1_sta} @tab @code{ch1_sta} @tab
Channel 1 status register Channel 1 status register
@item @code{0x34} @tab @item @code{0x3c} @tab
REG @tab REG @tab
@code{ch1_gain} @tab @code{ch1_gain} @tab
Channel 1 gain calibration register Channel 1 gain calibration register
@item @code{0x38} @tab @item @code{0x40} @tab
REG @tab REG @tab
@code{ch1_offset} @tab @code{ch1_offset} @tab
Channel 1 offset calibration register Channel 1 offset calibration register
@item @code{0x3c} @tab @item @code{0x44} @tab
REG @tab
@code{ch1_sat} @tab
Channel 1 saturation register
@item @code{0x48} @tab
REG @tab REG @tab
@code{ch2_ctl} @tab @code{ch2_ctl} @tab
Channel 2 control register Channel 2 control register
@item @code{0x40} @tab @item @code{0x4c} @tab
REG @tab REG @tab
@code{ch2_sta} @tab @code{ch2_sta} @tab
Channel 2 status register Channel 2 status register
@item @code{0x44} @tab @item @code{0x50} @tab
REG @tab REG @tab
@code{ch2_gain} @tab @code{ch2_gain} @tab
Channel 2 gain calibration register Channel 2 gain calibration register
@item @code{0x48} @tab @item @code{0x54} @tab
REG @tab REG @tab
@code{ch2_offset} @tab @code{ch2_offset} @tab
Channel 2 offset calibration register Channel 2 offset calibration register
@item @code{0x4c} @tab @item @code{0x58} @tab
REG @tab
@code{ch2_sat} @tab
Channel 2 saturation register
@item @code{0x5c} @tab
REG @tab REG @tab
@code{ch3_ctl} @tab @code{ch3_ctl} @tab
Channel 3 control register Channel 3 control register
@item @code{0x50} @tab @item @code{0x60} @tab
REG @tab REG @tab
@code{ch3_sta} @tab @code{ch3_sta} @tab
Channel 3 status register Channel 3 status register
@item @code{0x54} @tab @item @code{0x64} @tab
REG @tab REG @tab
@code{ch3_gain} @tab @code{ch3_gain} @tab
Channel 3 gain calibration register Channel 3 gain calibration register
@item @code{0x58} @tab @item @code{0x68} @tab
REG @tab REG @tab
@code{ch3_offset} @tab @code{ch3_offset} @tab
Channel 3 offset calibration register Channel 3 offset calibration register
@item @code{0x5c} @tab @item @code{0x6c} @tab
REG @tab
@code{ch3_sat} @tab
Channel 3 saturation register
@item @code{0x70} @tab
REG @tab REG @tab
@code{ch4_ctl} @tab @code{ch4_ctl} @tab
Channel 4 control register Channel 4 control register
@item @code{0x60} @tab @item @code{0x74} @tab
REG @tab REG @tab
@code{ch4_sta} @tab @code{ch4_sta} @tab
Channel 4 status register Channel 4 status register
@item @code{0x64} @tab @item @code{0x78} @tab
REG @tab REG @tab
@code{ch4_gain} @tab @code{ch4_gain} @tab
Channel 4 gain calibration register Channel 4 gain calibration register
@item @code{0x68} @tab @item @code{0x7c} @tab
REG @tab REG @tab
@code{ch4_offset} @tab @code{ch4_offset} @tab
Channel 4 offset calibration register Channel 4 offset calibration register
@item @code{0x80} @tab
REG @tab
@code{ch4_sat} @tab
Channel 4 saturation register
@end multitable @end multitable
@regsection @code{ctl} - Control register @regsection @code{ctl} - Control register
@multitable @columnfractions .10 .10 .15 .10 .55 @multitable @columnfractions .10 .10 .15 .10 .55
...@@ -227,11 +251,21 @@ Software trigger enable ...@@ -227,11 +251,21 @@ Software trigger enable
@code{INT_TRIG_SEL} @code{INT_TRIG_SEL}
@tab @code{0} @tab @tab @code{0} @tab
Channel selection for internal trigger Channel selection for internal trigger
@item @code{15...6} @item @code{6}
@tab R/W @tab
@code{INT_TRIG_TEST_EN}
@tab @code{0} @tab
Enable internal trigger test mode
@item @code{7}
@tab R/W @tab @tab R/W @tab
@code{RESERVED} @code{RESERVED}
@tab @code{0} @tab @tab @code{0} @tab
Reserved Reserved
@item @code{15...8}
@tab R/W @tab
@code{INT_TRIG_THRES_FILT}
@tab @code{0} @tab
Internal trigger threshold glitch filter
@item @code{31...16} @item @code{31...16}
@tab R/W @tab @tab R/W @tab
@code{INT_TRIG_THRES} @code{INT_TRIG_THRES}
...@@ -245,7 +279,9 @@ Threshold for internal trigger ...@@ -245,7 +279,9 @@ Threshold for internal trigger
@item @code{hw_trig_en} @tab 0: disable@*1: enable @item @code{hw_trig_en} @tab 0: disable@*1: enable
@item @code{sw_trig_en} @tab 0: disable@*1: enable @item @code{sw_trig_en} @tab 0: disable@*1: enable
@item @code{int_trig_sel} @tab 00: channel 1@*01: channel 2@*10: channel 3@*11: channel 4 @item @code{int_trig_sel} @tab 00: channel 1@*01: channel 2@*10: channel 3@*11: channel 4
@item @code{int_trig_test_en} @tab Test mode:@* ch1 = Channel 1 input(analogue)@* ch2 = Channel input over threshold (digital)@* ch3 = Channel input over threshold filtered (digital)@* ch4 = Trigger (digital)
@item @code{reserved} @tab Ignore on read, write with 0's @item @code{reserved} @tab Ignore on read, write with 0's
@item @code{int_trig_thres_filt} @tab Configures the internal trigger threshold glitch filter length.
@item @code{int_trig_thres} @tab Treated as binary two's complement and compared to raw ADC data. @item @code{int_trig_thres} @tab Treated as binary two's complement and compared to raw ADC data.
@end multitable @end multitable
@regsection @code{trig_dly} - Trigger delay @regsection @code{trig_dly} - Trigger delay
...@@ -290,6 +326,25 @@ Reserved ...@@ -290,6 +326,25 @@ Reserved
@item @code{nb} @tab Number of shots required in multi-shot mode, set to one for single-shot mode. @item @code{nb} @tab Number of shots required in multi-shot mode, set to one for single-shot mode.
@item @code{reserved} @tab Ignore on read, write with 0's @item @code{reserved} @tab Ignore on read, write with 0's
@end multitable @end multitable
@regsection @code{shots_cnt} - Remaining shots counter
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{15...0}
@tab R/O @tab
@code{VAL}
@tab @code{X} @tab
Remaining shots counter
@item @code{31...16}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Counts the number of remaining shots to acquire.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{trig_pos} - Trigger address register @regsection @code{trig_pos} - Trigger address register
@multitable @columnfractions .10 .10 .15 .10 .55 @multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name @headitem Bits @tab Access @tab Prefix @tab Default @tab Name
...@@ -303,6 +358,19 @@ Trigger address ...@@ -303,6 +358,19 @@ Trigger address
@headitem Field @tab Description @headitem Field @tab Description
@item @code{trig_pos} @tab Trigger address in DDR memory.@*Only used in single-shot mode. @item @code{trig_pos} @tab Trigger address in DDR memory.@*Only used in single-shot mode.
@end multitable @end multitable
@regsection @code{fs_freq} - Sampling clock frequency
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{31...0}
@tab R/O @tab
@code{FS_FREQ}
@tab @code{X} @tab
Sampling clock frequency
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{fs_freq} @tab ADC sampling clock frequency in Hz
@end multitable
@regsection @code{sr} - Sample rate @regsection @code{sr} - Sample rate
@multitable @columnfractions .10 .10 .15 .10 .55 @multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name @headitem Bits @tab Access @tab Prefix @tab Default @tab Name
...@@ -431,6 +499,25 @@ Reserved ...@@ -431,6 +499,25 @@ Reserved
@item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement. @item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement.
@item @code{reserved} @tab Ignore on read, write with 0's @item @code{reserved} @tab Ignore on read, write with 0's
@end multitable @end multitable
@regsection @code{ch1_sat} - Channel 1 saturation register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{14...0}
@tab R/W @tab
@code{VAL}
@tab @code{0} @tab
Saturation value for channel 1
@item @code{31...15}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Saturation applied to all data coming from the offset/gain correction block. The format is 15-bit unsigned.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch2_ctl} - Channel 2 control register @regsection @code{ch2_ctl} - Channel 2 control register
@multitable @columnfractions .10 .10 .15 .10 .55 @multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name @headitem Bits @tab Access @tab Prefix @tab Default @tab Name
...@@ -507,6 +594,25 @@ Reserved ...@@ -507,6 +594,25 @@ Reserved
@item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement. @item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement.
@item @code{reserved} @tab Ignore on read, write with 0's @item @code{reserved} @tab Ignore on read, write with 0's
@end multitable @end multitable
@regsection @code{ch2_sat} - Channel 2 saturation register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{14...0}
@tab R/W @tab
@code{VAL}
@tab @code{0} @tab
Saturation value for channel 2
@item @code{31...15}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Saturation applied to all data coming from the offset/gain correction block. The format is 15-bit unsigned.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch3_ctl} - Channel 3 control register @regsection @code{ch3_ctl} - Channel 3 control register
@multitable @columnfractions .10 .10 .15 .10 .55 @multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name @headitem Bits @tab Access @tab Prefix @tab Default @tab Name
...@@ -583,6 +689,25 @@ Reserved ...@@ -583,6 +689,25 @@ Reserved
@item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement. @item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement.
@item @code{reserved} @tab Ignore on read, write with 0's @item @code{reserved} @tab Ignore on read, write with 0's
@end multitable @end multitable
@regsection @code{ch3_sat} - Channel 3 saturation register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{14...0}
@tab R/W @tab
@code{VAL}
@tab @code{0} @tab
Saturation value for channel 3
@item @code{31...15}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Saturation applied to all data coming from the offset/gain correction block. The format is 15-bit unsigned.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
@regsection @code{ch4_ctl} - Channel 4 control register @regsection @code{ch4_ctl} - Channel 4 control register
@multitable @columnfractions .10 .10 .15 .10 .55 @multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name @headitem Bits @tab Access @tab Prefix @tab Default @tab Name
...@@ -659,3 +784,22 @@ Reserved ...@@ -659,3 +784,22 @@ Reserved
@item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement. @item @code{val} @tab Offset applied to all data coming from the ADC. The format is binary two's complement.
@item @code{reserved} @tab Ignore on read, write with 0's @item @code{reserved} @tab Ignore on read, write with 0's
@end multitable @end multitable
@regsection @code{ch4_sat} - Channel 4 saturation register
@multitable @columnfractions .10 .10 .15 .10 .55
@headitem Bits @tab Access @tab Prefix @tab Default @tab Name
@item @code{14...0}
@tab R/W @tab
@code{VAL}
@tab @code{0} @tab
Saturation value for channel 4
@item @code{31...15}
@tab R/W @tab
@code{RESERVED}
@tab @code{0} @tab
Reserved
@end multitable
@multitable @columnfractions 0.15 0.85
@headitem Field @tab Description
@item @code{val} @tab Saturation applied to all data coming from the offset/gain correction block. The format is 15-bit unsigned.
@item @code{reserved} @tab Ignore on read, write with 0's
@end multitable
...@@ -35,13 +35,13 @@ ...@@ -35,13 +35,13 @@
@setchapternewpage off @setchapternewpage off
@set update-month January 2014 @set update-month March 2014
@finalout @finalout
@titlepage @titlepage
@title FmcAdc100m14b4cha Gateware Guide @title FmcAdc100m14b4cha Gateware Guide
@subtitle @value{update-month} - Release 3.0 @subtitle @value{update-month} - Release 4.0
@subtitle For PCIe (SPEC) and VME64x (SVEC) FMC Carriers @subtitle For PCIe (SPEC) and VME64x (SVEC) FMC Carriers
@sp 10 @sp 10
@center @image{../../figures/cern_logo,3cm,,,pdf} @hfill @image{../../figures/ohr_logo,3cm,,,pdf} @center @image{../../figures/cern_logo,3cm,,,pdf} @hfill @image{../../figures/ohr_logo,3cm,,,pdf}
...@@ -585,6 +585,9 @@ The sampling clock (@code{fs_clk}) and the ADC data de-serialiser clock (@code{s ...@@ -585,6 +585,9 @@ The sampling clock (@code{fs_clk}) and the ADC data de-serialiser clock (@code{s
@c TODO : possibility to control the Si570 via I2C @c TODO : possibility to control the Si570 via I2C
The ADC core implements a sampling clock frequency meter.
The measured frequency (in Hz) can be read via a register (@pxref{ADC Core Registers}).
@c -------------------------------------------------------------------------- @c --------------------------------------------------------------------------
@subsection Time-tagging Core @subsection Time-tagging Core
...@@ -757,7 +760,7 @@ The four channels data and the trigger signal are synchronised to the system clo ...@@ -757,7 +760,7 @@ The four channels data and the trigger signal are synchronised to the system clo
The configuration signals coming from registers in the system clock domain are synchronised to the sampling clock within the Wishbone slave (@command{wbgen2} feature). The configuration signals coming from registers in the system clock domain are synchronised to the sampling clock within the Wishbone slave (@command{wbgen2} feature).
@float Figure,fig:adc_core_fs_clk @float Figure,fig:adc_core_fs_clk
@center @image{../../figures/adc_core_fs_clk, 12cm,,,pdf} @center @image{../../figures/adc_core_fs_clk, 14cm,,,pdf}
@caption{ADC core diagram (sampling clock domain).} @caption{ADC core diagram (sampling clock domain).}
@end float @end float
...@@ -766,7 +769,7 @@ In the fmc-adc application, the default configuration is kept. ...@@ -766,7 +769,7 @@ In the fmc-adc application, the default configuration is kept.
The figure @ref{fig:ltc2174_mode} is an extract from the LTC2174 datasheet illustrating the @i{2-Lane Output Mode, 16-Bit Serialization} waveforms. The figure @ref{fig:ltc2174_mode} is an extract from the LTC2174 datasheet illustrating the @i{2-Lane Output Mode, 16-Bit Serialization} waveforms.
@float Figure,fig:ltc2174_mode @float Figure,fig:ltc2174_mode
@center @image{../../figures/ltc2174_mode, 10cm,,,pdf} @center @image{../../figures/ltc2174_mode, 12cm,,,pdf}
@caption{LTC2174 data output mode waveforms.} @caption{LTC2174 data output mode waveforms.}
@end float @end float
...@@ -824,7 +827,6 @@ For all others switch configurations, the behaviour is not defined and therefore ...@@ -824,7 +827,6 @@ For all others switch configurations, the behaviour is not defined and therefore
@caption{Analogue input switches configurations.} @caption{Analogue input switches configurations.}
@end float @end float
@c ========================================================================== @c ==========================================================================
@section Input Offset @section Input Offset
...@@ -863,30 +865,50 @@ v_out = Output voltage (to filter and ADC) ...@@ -863,30 +865,50 @@ v_out = Output voltage (to filter and ADC)
@c ========================================================================== @c ==========================================================================
@section Trigger @section Trigger
The trigger unit is made of a hardware and a software source. The trigger unit is made of two hardware and one software sources.
Each hardware and software sources can be enabled independantly. The hardware and software path can be enabled independantly.
The two sources are then or'ed together to drive a delay generator. The two paths are then or'ed together to drive a delay generator.
The delay generator allows to insert an defined number of sampling clock period before the trigger goes to the acquisition state machine. The delay generator allows to insert an defined number of sampling clock period before the trigger goes to the acquisition state machine.
The @ref{fig:trig_unit} shows a simplified digram of trigger unit.
@float Figure,fig:trig_unit @float Figure,fig:trig_unit
@center @image{../../figures/trigger_unit, 10cm,,,pdf} @center @image{../../figures/trigger_unit, 12cm,,,pdf}
@caption{Trigger unit diagram.} @caption{Trigger unit diagram.}
@end float @end float
The hardware trigger source can be either internal (based on an adc input channel) or external (dedicated trigger input). The hardware trigger source can be either internal (based on an adc input channel) or external (dedicated trigger input).
For both internal and external hardware triggers, the polarity can be selected between positive and negative slope (resp. rising and falling edge). By default the polatity is set to positive slope. For both internal and external hardware triggers, the polarity can be selected between positive and negative slope (resp. rising and falling edge).
The external trigger input is synchronised to the sampling clock. The external trigger pulse must be at least one sampling clock cycle wide. By default the polatity is set to positive slope.
For the internal trigger source, the adc input channel and the threshold should be configured.
The external trigger input is synchronised to the sampling clock.
The external trigger pulse must be at least one sampling clock cycle wide.
To use the internal trigger source, the adc input channel and the threshold should be configured.
By default, the channel 1 is selected and the threshold is set to 0. By default, the channel 1 is selected and the threshold is set to 0.
Note that the threshold is 16-bit signed (two's complement). Note that the threshold is 16-bit signed (two's complement).
The @ref{fig:trig_hw_int} sketches the internal hardware trigger threshold behaviour. The @ref{fig:trig_hw_int} sketches the internal hardware trigger threshold behaviour.
In addition, a glitch filter can be applied to the threshold detection.
The glitch filter is useful to trigger on noisy signal.
In order to help setting the glitch filter, an internal trigger test mode can be activated.
When the test mode is enabled, the data from channels 2 to 4 are replaced as follow:
@float
@multitable @columnfractions .12 .50
@item Channel 2 @tab Input signal over threshold
@item Channel 3 @tab Input signal over threshold filtered
@item Channel 4 @tab Trigger
@end multitable
@sp 1
@end float
The software trigger source concists in a pulse generated when a write cycle is detected on the @i{Software trigger} register. The software trigger source concists in a pulse generated when a write cycle is detected on the @i{Software trigger} register.
The @ref{fig:trig_unit} shows the different trigger configurations.
For futher information on the trigger configuration registers @pxref{ADC Core Registers}. For futher information on the trigger configuration registers @pxref{ADC Core Registers}.
@float Figure,fig:trig_hw_int @float Figure,fig:trig_hw_int
@center @image{../../figures/trig_hw_int, 8cm,,,pdf} @center @image{../../figures/trig_hw_int, 8cm,,,pdf}
@caption{Internal hardware trigger trheshold.} @caption{Internal hardware trigger threshold.}
@end float @end float
@c ========================================================================== @c ==========================================================================
...@@ -949,7 +971,7 @@ Two registers per channel are implemented in the FPGA for ADC gain and offset co ...@@ -949,7 +971,7 @@ Two registers per channel are implemented in the FPGA for ADC gain and offset co
When an input range is selected, the corresponding gain/offset correction values must be loaded from the EEPROM to those registers. When an input range is selected, the corresponding gain/offset correction values must be loaded from the EEPROM to those registers.
@float Figure,fig:off_gain_corr @float Figure,fig:off_gain_corr
@center @image{../../figures/offset_gain_corr, 10cm,,,pdf} @center @image{../../figures/offset_gain_corr, 12cm,,,pdf}
@caption{ADC offset and gain correction block.} @caption{ADC offset and gain correction block.}
@end float @end float
...@@ -962,8 +984,13 @@ The fixed point format is as follow: ...@@ -962,8 +984,13 @@ The fixed point format is as follow:
@caption{ADC gain register format.} @caption{ADC gain register format.}
@end float @end float
@b{Note:} On FPGA start-up, the gain registers are set to 0x8000 (1.000) and the offset registers to 0x0000. After the offset and gain corrections are applied, the signal is saturated to 16-bit signed values (min=-32678, max=32767).
This means a unit gain and no offset.
Also an additional block allows the user to set a programmable saturation value.
The saturation register takes a 15-bit unsigned value, or in other words a positive 16-bit signed value.
@b{Note:} On FPGA start-up, the gain, offset and saturation registers are set to 0x0.
Therefore, the driver has to initialise those registers.
@b{Note:} After gain and offset correction, the two LSB of the data words can be different from zero. @b{Note:} After gain and offset correction, the two LSB of the data words can be different from zero.
...@@ -994,8 +1021,6 @@ gain = DAC gain calibration value from EEPROM (16-bit fixed point) ...@@ -994,8 +1021,6 @@ gain = DAC gain calibration value from EEPROM (16-bit fixed point)
@node Acquisition @node Acquisition
@chapter Acquisition @chapter Acquisition
@c TODO : Add description of trigger time-tag insertion
This chapter describes the two modes of acquisition, single-shot and multi-shot. This chapter describes the two modes of acquisition, single-shot and multi-shot.
It also explains how the software is expected to control the fmc-adc acquisitions. It also explains how the software is expected to control the fmc-adc acquisitions.
...@@ -1114,6 +1139,7 @@ The acquisition state machine is also represented. ...@@ -1114,6 +1139,7 @@ The acquisition state machine is also represented.
The multi-shot acquisition process is almost identical to the single-shot one, except that once the acquisition is started it will go around the state machine as many time as the number of configured shots. The multi-shot acquisition process is almost identical to the single-shot one, except that once the acquisition is started it will go around the state machine as many time as the number of configured shots.
It means that if the board is configured for N shots, it will generate N trigger interrupts (if enabled) and then another interrupt at the end of the acquisition. It means that if the board is configured for N shots, it will generate N trigger interrupts (if enabled) and then another interrupt at the end of the acquisition.
A counter, accessible via a register, shows the remaining number of shots (@pxref{ADC Core Registers}).
Unlike the single-mode acquisition, in multi-shot, the DDR memory is not used as a circular buffer. Unlike the single-mode acquisition, in multi-shot, the DDR memory is not used as a circular buffer.
Instead, two dual port RAM (dpram) are implemented inside the FPGA. Instead, two dual port RAM (dpram) are implemented inside the FPGA.
...@@ -1124,7 +1150,7 @@ Even shots uses dpram0 and odd shots dpram1. ...@@ -1124,7 +1150,7 @@ Even shots uses dpram0 and odd shots dpram1.
The trigger time-tag requires two 64-bit word to be stored at the end of the samples. The trigger time-tag requires two 64-bit word to be stored at the end of the samples.
It means that the total number of samples (pre-trigger + trigger + post-trigger) for a shot cannot exceed 2048-2=2046. It means that the total number of samples (pre-trigger + trigger + post-trigger) for a shot cannot exceed 2048-2=2046.
When a shot is finished, the correcponding dpram samples are written to the DDR memory. When a shot is finished, the corresponding dpram samples are written to the DDR memory.
Only the pre-trigger samples, the post-trigger samples and the trigger time-tag are written. Only the pre-trigger samples, the post-trigger samples and the trigger time-tag are written.
The first shot is written starting at address @code{0x0}. The first shot is written starting at address @code{0x0}.
Then the second shot is written right after the trigger time-tag of the first shot. Then the second shot is written right after the trigger time-tag of the first shot.
...@@ -1135,16 +1161,15 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory. ...@@ -1135,16 +1161,15 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory.
@caption{DDR memory usage in multi-shot mode acquisition.} @caption{DDR memory usage in multi-shot mode acquisition.}
@end float @end float
@b{Note:} The number of samples per shot stored in memory is equal to: number of pre-trigger samples + number of post-trigger samples + 1 (trigger sample). @b{Note:} The number of samples per shot stored in memory is equal to: number of pre-trigger samples + number of post-trigger samples + 1 (trigger sample) + 2 (time-tag).
@b{Note:} In multi-shot mode, the start of an acquisition is prohibited if the number of sample per shot is bigger or equal to the dpram size.
@c ########################################################################## @c ##########################################################################
@page @page
@node Missing Features and Improvements @node Missing Features and Improvements
@chapter Missing Features and Improvements @chapter Missing Features and Improvements
@c ==========================================================================
@section To be done before next release
@itemize @textdegree @itemize @textdegree
@c DONE Take data for threshold trigger after offset/gain correction. @c DONE Take data for threshold trigger after offset/gain correction.
@c DONE Solve the internal trigger threshold issue (triggering even if signal < threshold!). @c DONE Solve the internal trigger threshold issue (triggering even if signal < threshold!).
...@@ -1159,14 +1184,7 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory. ...@@ -1159,14 +1184,7 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory.
@c - Put all mezzanine related cores in a wrapper (fmc adc mezzanine). @c - Put all mezzanine related cores in a wrapper (fmc adc mezzanine).
@c - Add a crossbar inside the fmc adc block -> check impact on sdb. @c - Add a crossbar inside the fmc adc block -> check impact on sdb.
@c DONE @item Add a software reset feature? @c DONE @item Add a software reset feature?
@item Remove huge files from git repo. @b{!!! This will change all commits sha !!!} @item Remove huge files from git repo. @b{!!! This will change all commits sha !!!}
@end itemize
@c ==========================================================================
@section For a later release
@itemize @textdegree
@item Add WR core; 1)for time-tags, 2)for sampling clock control@* @item Add WR core; 1)for time-tags, 2)for sampling clock control@*
- Define behaviour when WR is desconnected.@* - Define behaviour when WR is desconnected.@*
- Assign signals to SPEC front panel LEDs. - Assign signals to SPEC front panel LEDs.
...@@ -1179,7 +1197,7 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory. ...@@ -1179,7 +1197,7 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory.
- Change GN4142-core WB bus(es) to byte address.@* - Change GN4142-core WB bus(es) to byte address.@*
- Change DDR-core WB bus(es) to byte address? - Change DDR-core WB bus(es) to byte address?
- Change SVEC DDR access fifo (DDR address register) to byte address. - Change SVEC DDR access fifo (DDR address register) to byte address.
@item Add error flags (interrupt?):@* @item Add error flags to status reg (+interrupt?):@*
- Instead of overwriting memory for a given acquisition.@* - Instead of overwriting memory for a given acquisition.@*
- If read during acquisition (or even block read during acq?). - If read during acquisition (or even block read during acq?).
@item Rename decimation (and "sample rate" register) in under-sampling. @item Rename decimation (and "sample rate" register) in under-sampling.
...@@ -1190,18 +1208,20 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory. ...@@ -1190,18 +1208,20 @@ The @ref{fig:mem_multi_shot} shows the shots organisation in the DDR memory.
- Seems to work with proposed master (05.08.2013).@* - Seems to work with proposed master (05.08.2013).@*
- Still need to replace FIFO in adc core. - Still need to replace FIFO in adc core.
@item Test sampling clocks from 10MHz to 105MHz. @item Test sampling clocks from 10MHz to 105MHz.
@item Add sampling clock presence flag. Or better a sampling clock frequency register. @c DONE @item Add sampling clock presence flag. Or better a sampling clock frequency register.
@item Add over-heat and input over-load interrupts? (from original specification) @item Add over-heat and input over-load interrupts? (from original specification)
@c DONE @item Time-tag for every trigger in multi-shot. -> trigger time-tag array @c DONE @item Time-tag for every trigger in multi-shot. -> trigger time-tag array
@item Review reset logic. @item Review reset logic.
@item Generate an end of acquisition interrupt after an acquisition stop command? @c @item Generate an end of acquisition interrupt after an acquisition stop command? => NOT USEFUL!
@c NO @item Remove meta-info field in time-tags? @c NO @item Remove meta-info field in time-tags?
@c DONE @item Move sdb device descriptions from top to the wishbone_pkg.vhd (general-cores lib). @c DONE @item Move sdb device descriptions from top to the wishbone_pkg.vhd (general-cores lib).
@item Include the git tree in a .tar.gz along with the .bin file (in the files section) for each release. -> modify the Release chapter accordingly. @item Include the git tree in a .tar.gz along with the .bin file (in the files section) for each release. -> modify the Release chapter accordingly.
@item Use git submodules for dependencies (allows to work without hdlmake). @item Use git submodules for dependencies (allows to work without hdlmake).
@item Add a shot counter register. @c DONE @item Add a shot counter register.
@item Add a check of the sample number in multishot and prevent starting acq with more than 2048 samples (-> acq config ok flag). @c DONE @item Add a check of the sample number in multishot and prevent starting acq with more than 2048 samples (-> acq config ok flag).
@item Add hysteresis on internal trigger slope detection (-> non-monotonic signals, noisy). @c DONE @item Add hysteresis on internal trigger slope detection (-> non-monotonic signals, noisy).
@c DONE @item Add debug mode: ch1=analog input, ch2=int_trig_over_thres, ch3=int_trig, ch4=trig
@c DONE @item Make data saturation programmable.
@end itemize @end itemize
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
--------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------
-- File : ../rtl/fmc_adc_100Ms_csr.vhd -- File : ../rtl/fmc_adc_100Ms_csr.vhd
-- Author : auto-generated by wbgen2 from fmc_adc_100Ms_csr.wb -- Author : auto-generated by wbgen2 from fmc_adc_100Ms_csr.wb
-- Created : Wed Mar 19 16:50:21 2014 -- Created : Thu Mar 20 11:08:14 2014
-- Standard : VHDL'87 -- Standard : VHDL'87
--------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------
-- THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE fmc_adc_100Ms_csr.wb -- THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE fmc_adc_100Ms_csr.wb
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
* File : fmc_adc_100Ms_csr.h * File : fmc_adc_100Ms_csr.h
* Author : auto-generated by wbgen2 from fmc_adc_100Ms_csr.wb * Author : auto-generated by wbgen2 from fmc_adc_100Ms_csr.wb
* Created : Wed Mar 19 16:50:21 2014 * Created : Thu Mar 20 11:08:15 2014
* Standard : ANSI C * Standard : ANSI C
THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE fmc_adc_100Ms_csr.wb THIS FILE WAS GENERATED BY wbgen2 FROM SOURCE FILE fmc_adc_100Ms_csr.wb
......
Markdown is supported
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