docs: Add axi_ad9671 IP core
Signed-off-by: Jorge Marques <jorge.marques@analog.com> Signed-off-by: Iulia Moldovan <Iulia.Moldovan@analog.com>main
parent
070ebf2aa0
commit
3e41f2afe1
|
@ -0,0 +1,320 @@
|
||||||
|
<?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="100%"
|
||||||
|
height="100%"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.91 r13725"
|
||||||
|
sodipodi:docname="adc_jesd.svg"
|
||||||
|
inkscape:export-filename="D:\Git\ghdl\docs\block_diagrams\axi_ad9265\axi_ad9265.png"
|
||||||
|
inkscape:export-xdpi="400"
|
||||||
|
inkscape:export-ydpi="400"
|
||||||
|
viewBox="0 0 425 350"
|
||||||
|
preserveAspectRatio="xMidYMid slice">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<inkscape:path-effect
|
||||||
|
effect="powerstroke"
|
||||||
|
id="path-effect5376"
|
||||||
|
is_visible="true"
|
||||||
|
offset_points="0,0.43724867"
|
||||||
|
sort_points="true"
|
||||||
|
interpolator_type="Linear"
|
||||||
|
interpolator_beta="0.2"
|
||||||
|
start_linecap_type="zerowidth"
|
||||||
|
linejoin_type="round"
|
||||||
|
miter_limit="4"
|
||||||
|
end_linecap_type="zerowidth"
|
||||||
|
cusp_linecap_type="round" />
|
||||||
|
<pattern
|
||||||
|
y="0"
|
||||||
|
x="0"
|
||||||
|
height="6"
|
||||||
|
width="6"
|
||||||
|
patternUnits="userSpaceOnUse"
|
||||||
|
id="EMFhbasepattern" />
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1.8325"
|
||||||
|
inkscape:cx="57.656767"
|
||||||
|
inkscape:cy="228.73587"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="g4357"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:snap-bbox="true"
|
||||||
|
inkscape:snap-to-guides="true"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
inkscape:window-width="1920"
|
||||||
|
inkscape:window-height="1047"
|
||||||
|
inkscape:window-x="-11"
|
||||||
|
inkscape:window-y="-11"
|
||||||
|
inkscape:window-maximized="1"
|
||||||
|
inkscape:snap-grids="true"
|
||||||
|
units="px"
|
||||||
|
fit-margin-top="0"
|
||||||
|
fit-margin-left="0"
|
||||||
|
fit-margin-right="0"
|
||||||
|
fit-margin-bottom="0">
|
||||||
|
<sodipodi:guide
|
||||||
|
position="-200.51528,787.37788"
|
||||||
|
orientation="1,0"
|
||||||
|
id="guide4261" />
|
||||||
|
<inkscape:grid
|
||||||
|
type="xygrid"
|
||||||
|
id="grid5420"
|
||||||
|
originx="-13.131982"
|
||||||
|
originy="-164.43837" />
|
||||||
|
</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(-13.131983,-537.92376)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="108.82646"
|
||||||
|
y="336.35623"
|
||||||
|
id="text4214"
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4216"
|
||||||
|
x="108.82646"
|
||||||
|
y="336.35623"
|
||||||
|
style="font-size:20px" /></text>
|
||||||
|
<g
|
||||||
|
transform="matrix(1.103181,0,0,4.7917437,36.444715,-186.56086)"
|
||||||
|
style="fill:#afedbd;fill-opacity:0.07100591;stroke:#000000;stroke-width:1;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="g4180-1"
|
||||||
|
inkscape:export-xdpi="90"
|
||||||
|
inkscape:export-ydpi="90">
|
||||||
|
<rect
|
||||||
|
y="159.53206"
|
||||||
|
x="71.884163"
|
||||||
|
height="57.37455"
|
||||||
|
width="199.5174"
|
||||||
|
id="rect3336-5"
|
||||||
|
style="fill:#afedbd;fill-opacity:0.07100591;fill-rule:evenodd;stroke:#000000;stroke-width:0.76066536;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="opacity:0.98999999;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000096;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 89.521568,665.9365 0,-9.62039 -70.476631,0 -0.1366,-12.79628 0.13472,-12.79627 70.478511,0 0,-9.6204 24.067782,22.41667 z"
|
||||||
|
id="path34982"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccc" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="35.742157"
|
||||||
|
y="647.38458"
|
||||||
|
id="text4196"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4198"
|
||||||
|
x="35.742157"
|
||||||
|
y="647.38458"
|
||||||
|
style="font-size:10px">AXI SLAVE</tspan></text>
|
||||||
|
<rect
|
||||||
|
style="opacity:1;fill:#d7d7d7;fill-opacity:0.35294118;fill-rule:nonzero;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||||
|
id="rect4204"
|
||||||
|
width="72.5"
|
||||||
|
height="122.5"
|
||||||
|
x="139.0587"
|
||||||
|
y="591.32355" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="174.79601"
|
||||||
|
y="650.0296"
|
||||||
|
id="text4206"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4208"
|
||||||
|
x="174.79601"
|
||||||
|
y="650.0296"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle">REGISTER</tspan><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="174.79601"
|
||||||
|
y="662.5296"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
id="tspan4251">MAP</tspan></text>
|
||||||
|
<g
|
||||||
|
id="g4357"
|
||||||
|
transform="translate(-13.89132,-73.70117)">
|
||||||
|
<rect
|
||||||
|
y="797.44434"
|
||||||
|
x="152.72948"
|
||||||
|
height="122.5"
|
||||||
|
width="72.5"
|
||||||
|
id="rect4204-3"
|
||||||
|
style="opacity:1;fill:#d7d7d7;fill-opacity:0.35294118;fill-rule:nonzero;stroke:#000000;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text4206-2"
|
||||||
|
y="842.50775"
|
||||||
|
x="189.01248"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
id="tspan4251-9"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="842.50775"
|
||||||
|
x="190.72147"
|
||||||
|
sodipodi:role="line">JESD LINK </tspan><tspan
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="855.00775"
|
||||||
|
x="189.01248"
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4171">TO DMA</tspan><tspan
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="867.50775"
|
||||||
|
x="190.72147"
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4173">DATA </tspan><tspan
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="880.00775"
|
||||||
|
x="190.72147"
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4175">ORDERING </tspan><tspan
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="892.50775"
|
||||||
|
x="189.01248"
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4369" /></text>
|
||||||
|
</g>
|
||||||
|
<flowRoot
|
||||||
|
xml:space="preserve"
|
||||||
|
id="flowRoot4272"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"><flowRegion
|
||||||
|
id="flowRegion4274"><rect
|
||||||
|
id="rect4276"
|
||||||
|
width="183.35606"
|
||||||
|
height="283.76535"
|
||||||
|
x="-27.830832"
|
||||||
|
y="74.488403" /></flowRegion><flowPara
|
||||||
|
id="flowPara4278" /></flowRoot> <text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:40px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="274.52353"
|
||||||
|
y="600.3385"
|
||||||
|
id="text4295"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4297"
|
||||||
|
x="274.52353"
|
||||||
|
y="600.3385" /></text>
|
||||||
|
<g
|
||||||
|
id="g4362"
|
||||||
|
transform="translate(-72.906712,199.45373)">
|
||||||
|
<rect
|
||||||
|
y="445.14008"
|
||||||
|
x="300.43127"
|
||||||
|
height="122.2474"
|
||||||
|
width="88.072769"
|
||||||
|
id="rect4204-2"
|
||||||
|
style="opacity:1;fill:#d7d7d7;fill-opacity:0.35294118;fill-rule:nonzero;stroke:#000000;stroke-width:2.75260305;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1" />
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text4206-0"
|
||||||
|
y="479.70892"
|
||||||
|
x="344.77353"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
id="tspan4251-95"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="479.70892"
|
||||||
|
x="346.48251"
|
||||||
|
sodipodi:role="line">ADC </tspan><tspan
|
||||||
|
id="tspan4322"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="492.20892"
|
||||||
|
x="344.77353"
|
||||||
|
sodipodi:role="line">DATA</tspan><tspan
|
||||||
|
id="tspan4324"
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="504.70892"
|
||||||
|
x="344.77353"
|
||||||
|
sodipodi:role="line">PROCESSING</tspan><tspan
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="517.20892"
|
||||||
|
x="344.77353"
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4177">&</tspan><tspan
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="529.70892"
|
||||||
|
x="346.48251"
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4179">PRBS </tspan><tspan
|
||||||
|
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-family:sans-serif;-inkscape-font-specification:'sans-serif Bold';text-align:center;text-anchor:middle"
|
||||||
|
y="542.20892"
|
||||||
|
x="344.77353"
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4181">MONITORING</tspan></text>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="opacity:0.98999999;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000096;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 89.412808,802.21745 0,-9.62039 -70.476631,0 -0.1366,-12.79628 0.13472,-12.79627 70.478511,0 0,-9.6204 24.067782,22.41667 z"
|
||||||
|
id="path34982-9"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccc" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="42.579056"
|
||||||
|
y="784.05139"
|
||||||
|
id="text4196-2"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4198-0"
|
||||||
|
x="42.579056"
|
||||||
|
y="784.05139"
|
||||||
|
style="font-size:10px">JESD FIFO</tspan></text>
|
||||||
|
<path
|
||||||
|
style="opacity:0.98999999;fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:#000096;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||||
|
d="m 407.61789,720.28356 0,-9.62039 -70.47663,0 -0.1366,-12.79628 0.13472,-12.79627 70.47851,0 0,-9.6204 24.06778,22.41667 z"
|
||||||
|
id="path34982-4"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="ccccccccc" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-style:normal;font-weight:normal;font-size:10px;line-height:125%;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
x="353.8385"
|
||||||
|
y="701.73163"
|
||||||
|
id="text4196-0"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan4198-8"
|
||||||
|
x="353.8385"
|
||||||
|
y="701.73163"
|
||||||
|
style="font-size:10px">DMA FIFO</tspan></text>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 15 KiB |
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 62 KiB |
|
@ -0,0 +1,165 @@
|
||||||
|
.. _axi_ad9671:
|
||||||
|
|
||||||
|
AXI AD9671
|
||||||
|
================================================================================
|
||||||
|
|
||||||
|
.. hdl-component-diagram::
|
||||||
|
|
||||||
|
The :git-hdl:`AXI AD9671 <library/axi_ad9671>` IP core
|
||||||
|
can be used to interface the :adi:`AD9671` Octal Ultrasound AFE with digital
|
||||||
|
demodulator.
|
||||||
|
An AXI Memory Map interface is used for configuration.
|
||||||
|
Data is received from Xilinx JESD IP.
|
||||||
|
|
||||||
|
More about the generic framework interfacing ADCs can be read in :ref:`axi_adc`.
|
||||||
|
|
||||||
|
Features
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
* AXI based configuration
|
||||||
|
* PRBS monitoring (PN9 and PN23)
|
||||||
|
* Altera Quartus compatible
|
||||||
|
* Vivado compatible
|
||||||
|
|
||||||
|
Files
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. list-table::
|
||||||
|
:header-rows: 1
|
||||||
|
|
||||||
|
* - Name
|
||||||
|
- Description
|
||||||
|
* - :git-hdl:`library/axi_ad9671/axi_ad9671.v`
|
||||||
|
- Verilog source for the AXI AD9671.
|
||||||
|
* - :git-hdl:`library/common/up_adc_common.v`
|
||||||
|
- Verilog source for the ADC Common regmap.
|
||||||
|
* - :git-hdl:`library/common/up_adc_channel.v`
|
||||||
|
- Verilog source for the ADC Channel regmap.
|
||||||
|
|
||||||
|
Block Diagram
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. image:: block_diagram.svg
|
||||||
|
:width: 600
|
||||||
|
:alt: AXI AD9671 block diagram
|
||||||
|
|
||||||
|
Configuration Parameters
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. hdl-parameters::
|
||||||
|
|
||||||
|
* - ID
|
||||||
|
- Core ID should be unique for each IP in the system
|
||||||
|
* - FPGA_TECHNOLOGY
|
||||||
|
- Used to select between devices, Altera devices are also supprted.
|
||||||
|
* - QUAD_OR_DUAL_N
|
||||||
|
- Selects if 4 lanes (1) or 2 lanes (0) are connected
|
||||||
|
|
||||||
|
Interface
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. hdl-interfaces::
|
||||||
|
|
||||||
|
* - rx_clk
|
||||||
|
- JESD clock rate / 40
|
||||||
|
* - rx_data
|
||||||
|
- RX data from the JESD core. 128 bit wide for QUAD operation, and 64 bit
|
||||||
|
for DUAL operation
|
||||||
|
* - rx_valid
|
||||||
|
- Placeholder for interfaces. Assume data is always valid
|
||||||
|
* - rx_ready
|
||||||
|
- Always ready
|
||||||
|
* - adc_clk
|
||||||
|
- Loopback of the tx_clk. most of the modules of the core run on this
|
||||||
|
clock
|
||||||
|
* - adc_valid
|
||||||
|
- ADC valid, used to read new data from the DMA. Each bit applies to one
|
||||||
|
channel
|
||||||
|
* - adc_enable
|
||||||
|
- Set when the channel is enabled, activated by software. Each bit applies
|
||||||
|
to one channel
|
||||||
|
* - adc_data
|
||||||
|
- Data for all channels
|
||||||
|
* - adc_dovf
|
||||||
|
- Data overflow input
|
||||||
|
* - adc_sync_in
|
||||||
|
- Starts the synchronization procedure. Comes from the master IP
|
||||||
|
* - adc_sync_out
|
||||||
|
- Starts the synchronization procedure. Sent to the slave IPs
|
||||||
|
* - adc_raddr_in
|
||||||
|
- Read address. All IPs are sending data from the same memory location.
|
||||||
|
Comes from the master IP
|
||||||
|
* - adc_raddr_out
|
||||||
|
- Read address. All IPs are sending data from the same memory location.
|
||||||
|
Sent to the slave IPs
|
||||||
|
* - s_axi
|
||||||
|
- Standard AXI Slave Memory Map interface
|
||||||
|
|
||||||
|
Detailed Architecture
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. image:: detailed_architecture.svg
|
||||||
|
:width: 800
|
||||||
|
:alt: AXI AD9671 detailed architecture
|
||||||
|
|
||||||
|
Detailed Description
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The top module, axi_ad9671, instantiates:
|
||||||
|
|
||||||
|
* the interface module
|
||||||
|
* the channel processing module
|
||||||
|
* the ADC common register map
|
||||||
|
* the AXI handling interface
|
||||||
|
|
||||||
|
The interface module, axi_ad9671_if, takes the data from the Xilinx JESD IP
|
||||||
|
and splits it into channels. In order to synchronize several AD9671 chips, a
|
||||||
|
FIFO is used and a comparison mechanism with a start code.
|
||||||
|
|
||||||
|
The data from the interface module is processed by the adc channel module.
|
||||||
|
The channel module implements:
|
||||||
|
|
||||||
|
* a PRBS monitor
|
||||||
|
* data format conversion
|
||||||
|
* the ADC CHANNEL register map
|
||||||
|
|
||||||
|
Register Map
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
.. hdl-regmap::
|
||||||
|
:name: COMMON
|
||||||
|
:no-type-info:
|
||||||
|
|
||||||
|
.. hdl-regmap::
|
||||||
|
:name: ADC_COMMON
|
||||||
|
:no-type-info:
|
||||||
|
|
||||||
|
.. hdl-regmap::
|
||||||
|
:name: ADC_CHANNEL
|
||||||
|
:no-type-info:
|
||||||
|
|
||||||
|
Design Guidelines
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
The control of the :adi:`AD9671` chip is done through a SPI interface,
|
||||||
|
which is needed at system level.
|
||||||
|
|
||||||
|
The design should use a DMA to move the data from the output of the IP to
|
||||||
|
memory.
|
||||||
|
|
||||||
|
If the data needs to be processed in HDL before moved to the memory, it can be
|
||||||
|
done at the output of the IP (at system level) or inside of the adc channel
|
||||||
|
module (at IP level).
|
||||||
|
|
||||||
|
References
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
* :git-hdl:`library/axi_ad9671`
|
||||||
|
* :adi:`AD9671`
|
||||||
|
* :git-linux:`/`
|
||||||
|
* :ref:`jesd204`
|
||||||
|
* :adi:`Analog Device's JESD204B Survival Guide <media/en/technical-documentation/technical-articles/JESD204B-Survival-Guide.pdf>`
|
||||||
|
* :intel:`JESD204B Intel FPGA IP User Guide <content/dam/support/us/en/programmable/support-resources/bulk-container/pdfs/literature/ug/archives/ug-jesd204b-18-1.pdf>`
|
||||||
|
* :xilinx:`Xilinx Vivado JESD IP documentation <support/documentation/ip_documentation/jesd204/v6_0/pg066-jesd204.pdf>`
|
||||||
|
* :intel:`Arria 5 Transceivers <content/www/us/en/docs/programmable/683573/current/transceiver-architecture-in-arria-v-devices.html>`
|
||||||
|
* :xilinx:`7 Series Transceivers <support/documentation/user_guides/ug476_7Series_Transceivers.pdf>`
|
Loading…
Reference in New Issue