From b0447ca07bbcf90afc6d1ef55641c14b64078846 Mon Sep 17 00:00:00 2001 From: unknown <mathieu.bossart@imt-atlantique.net> Date: Wed, 26 Mar 2025 12:23:15 +0100 Subject: [PATCH] Rendu v1 --- docs/compte-rendu.md | 48 + docs/img/FSM.drawio | 879 ++- docs/img/OperativeUnit.drawio | 1540 +++-- tp_vivado/proj/ECG.cache/sim/ssm.db | 11 + tp_vivado/proj/ECG.cache/wt/project.wpc | 3 + tp_vivado/proj/ECG.cache/wt/xsim.wdf | 4 + tp_vivado/proj/ECG.hw/ECG.lpr | 7 + tp_vivado/proj/ECG.ip_user_files/README.txt | 1 + .../ip/clk_wiz_0/clk_wiz_0.vho | 103 + .../proj/ECG.sim/sim_1/behav/xsim/compile.bat | 27 + .../ECG.sim/sim_1/behav/xsim/elaborate.bat | 26 + .../ECG.sim/sim_1/behav/xsim/elaborate.log | 19 + .../ECG.sim/sim_1/behav/xsim/simulate.bat | 26 + .../ECG.sim/sim_1/behav/xsim/simulate.log | 1 + .../ECG.sim/sim_1/behav/xsim/tb_firUnit.tcl | 11 + .../sim_1/behav/xsim/tb_firUnit_behav.wdb | Bin 0 -> 36768 bytes .../sim_1/behav/xsim/tb_firUnit_vhdl.prj | 9 + .../proj/ECG.sim/sim_1/behav/xsim/xelab.pb | Bin 0 -> 1963 bytes .../tb_firUnit_behav/Compile_Options.txt | 1 + .../tb_firUnit_behav/TempBreakPointFile.txt | 1 + .../tb_firUnit_behav/obj/xsim_0.win64.obj | Bin 0 -> 23363 bytes .../xsim.dir/tb_firUnit_behav/obj/xsim_1.c | 143 + .../tb_firUnit_behav/obj/xsim_1.win64.obj | Bin 0 -> 4199 bytes .../xsim/xsim.dir/tb_firUnit_behav/xsim.dbg | Bin 0 -> 17640 bytes .../xsim/xsim.dir/tb_firUnit_behav/xsim.mem | Bin 0 -> 4746 bytes .../xsim/xsim.dir/tb_firUnit_behav/xsim.reloc | Bin 0 -> 1963 bytes .../xsim/xsim.dir/tb_firUnit_behav/xsim.rlx | 12 + .../xsim/xsim.dir/tb_firUnit_behav/xsim.rtti | Bin 0 -> 903 bytes .../xsim.dir/tb_firUnit_behav/xsim.svtype | Bin 0 -> 12 bytes .../xsim/xsim.dir/tb_firUnit_behav/xsim.type | Bin 0 -> 7424 bytes .../xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg | Bin 0 -> 84288 bytes .../tb_firUnit_behav/xsimSettings.ini | 50 + .../xsim.dir/tb_firUnit_behav/xsimcrash.log | 0 .../xsim/xsim.dir/tb_firUnit_behav/xsimk.exe | Bin 0 -> 83293 bytes .../xsim.dir/tb_firUnit_behav/xsimkernel.log | 7 + .../xsim.dir/xil_defaultlib/controlunit.vdb | Bin 0 -> 14548 bytes .../xsim/xsim.dir/xil_defaultlib/firunit.vdb | Bin 0 -> 15686 bytes .../xsim.dir/xil_defaultlib/operativeunit.vdb | Bin 0 -> 34694 bytes .../xsim.dir/xil_defaultlib/tb_firunit.vdb | Bin 0 -> 6154 bytes .../xil_defaultlib/xil_defaultlib.rlx | 8 + .../proj/ECG.sim/sim_1/behav/xsim/xsim.ini | 489 ++ .../ECG.sim/sim_1/behav/xsim/xsim.ini.bak | 489 ++ .../proj/ECG.sim/sim_1/behav/xsim/xvhdl.log | 0 .../proj/ECG.sim/sim_1/behav/xsim/xvhdl.pb | 4 + tp_vivado/proj/ECG.xpr | 302 + tp_vivado/proj/cleanup.cmd | 21 + tp_vivado/proj/cleanup.sh | 15 + tp_vivado/proj/create_project.tcl | 111 + .../src/constraints/NexysVideo_Master.xdc | 365 ++ tp_vivado/src/hdl/TWICtl.vhd | 571 ++ tp_vivado/src/hdl/audioProc.v | 231 + tp_vivado/src/hdl/audio_init.v | 246 + tp_vivado/src/hdl/controlUnit.vhd | 183 + tp_vivado/src/hdl/debounce.v | 108 + tp_vivado/src/hdl/fir.vhd | 93 + tp_vivado/src/hdl/firUnit.vhd | 162 + tp_vivado/src/hdl/i2s_ctl.vhd | 296 + tp_vivado/src/hdl/operativeUnit.vhd | 374 ++ tp_vivado/src/hdl/processingUnitIP.v | 3270 +++++++++++ tp_vivado/src/hdl/tb_firUnit.vhd | 87 + tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.dcp | Bin 0 -> 12528 bytes .../src/ip/clk_wiz_0/clk_wiz_0.upgrade_log | 332 ++ tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.v | 100 + tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.vho | 103 + tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xci | 525 ++ tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xdc | 59 + tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xml | 4933 +++++++++++++++++ .../src/ip/clk_wiz_0/clk_wiz_0_board.xdc | 2 + .../src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v | 215 + tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc | 56 + .../src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v | 278 + .../ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl | 218 + tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_stub.v | 24 + .../src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl | 33 + .../clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt | 115 + 75 files changed, 16451 insertions(+), 896 deletions(-) create mode 100644 tp_vivado/proj/ECG.cache/sim/ssm.db create mode 100644 tp_vivado/proj/ECG.cache/wt/project.wpc create mode 100644 tp_vivado/proj/ECG.cache/wt/xsim.wdf create mode 100644 tp_vivado/proj/ECG.hw/ECG.lpr create mode 100644 tp_vivado/proj/ECG.ip_user_files/README.txt create mode 100644 tp_vivado/proj/ECG.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/compile.bat create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/elaborate.bat create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/elaborate.log create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/simulate.bat create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/simulate.log create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit.tcl create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xelab.pb create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/Compile_Options.txt create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/TempBreakPointFile.txt create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.svtype create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimcrash.log create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk.exe create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.ini create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.ini.bak create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xvhdl.log create mode 100644 tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xvhdl.pb create mode 100644 tp_vivado/proj/ECG.xpr create mode 100644 tp_vivado/proj/cleanup.cmd create mode 100644 tp_vivado/proj/cleanup.sh create mode 100644 tp_vivado/proj/create_project.tcl create mode 100644 tp_vivado/src/constraints/NexysVideo_Master.xdc create mode 100644 tp_vivado/src/hdl/TWICtl.vhd create mode 100644 tp_vivado/src/hdl/audioProc.v create mode 100644 tp_vivado/src/hdl/audio_init.v create mode 100644 tp_vivado/src/hdl/controlUnit.vhd create mode 100644 tp_vivado/src/hdl/debounce.v create mode 100644 tp_vivado/src/hdl/fir.vhd create mode 100644 tp_vivado/src/hdl/firUnit.vhd create mode 100644 tp_vivado/src/hdl/i2s_ctl.vhd create mode 100644 tp_vivado/src/hdl/operativeUnit.vhd create mode 100644 tp_vivado/src/hdl/processingUnitIP.v create mode 100644 tp_vivado/src/hdl/tb_firUnit.vhd create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.dcp create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.upgrade_log create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.v create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.vho create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xci create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xdc create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xml create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_board.xdc create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_stub.v create mode 100644 tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl create mode 100644 tp_vivado/src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt diff --git a/docs/compte-rendu.md b/docs/compte-rendu.md index 30ffa40..c7ed9b3 100644 --- a/docs/compte-rendu.md +++ b/docs/compte-rendu.md @@ -19,3 +19,51 @@ mainfont: sans-serif ## Remarques (Notez toute information qui vous semble pertinente) + +Succession de 3 filtres : FIR -> IIR -> FIR + +Pour notre filtre on calcule $x_k \rightarrow y_k \rightarrow z_k \rightarrow r_k$ avec $x_k$ l'entrée + +$$y_k = \sum_{i=0}^{94}x_{k-i} \times h_i$$ + +$$z_k = \sum_{i=0}^2 y_{k-i}\times b_i - \sum_{i=1}^2 z_{k-i}\times a_i$$ + +$$r_k = \sum_{i=0}^{10} z_{k-i} \times g_i$$ + +## Code de chaque filtre + +### Baseline + +``` +Fs=500 +Fn=Fs/2 +fBaseLine=fir1(128, 5/Fn, 'high'); +``` + +### Coupe-bande basique + +``` +Fs=500 +Fn=Fs/2 +f50Hz=fir1(100, [45 55]/Fn, 'stop'); +``` + +### Pei Tseng Notch + +``` +Fs=500 +Fn=Fs/2 +[b, a]=pei_tseng_notch(50/Fn, 10/Fn); +``` + +### Parks McClellan + +``` +Fs=500 +Fn=Fs/2 +Fpass=50; +Fstop=60; +F =[0 Fpass Fstop Fn]/(Fn) +A =[1 1 0 0] +fLP =remez(10, F, A) +``` \ No newline at end of file diff --git a/docs/img/FSM.drawio b/docs/img/FSM.drawio index 2451a53..3f98edd 100644 --- a/docs/img/FSM.drawio +++ b/docs/img/FSM.drawio @@ -1,470 +1,409 @@ -<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64; rv:135.0) Gecko/20100101 Firefox/135.0" version="26.0.16"> - <diagram name="Page-1" id="lufUWjv2mjaYaQ6cVEt1"> - <mxGraphModel dx="4516" dy="2744" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> - <root> - <mxCell id="0" /> - <mxCell id="1" parent="0" /> - <mxCell id="bw7OO0sNot4gaAuLXok9-1" value="" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> - <mxGeometry x="279" y="-754" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-2" value="<font style="font-size: 21px;" face="Ubuntu Mono">Wait Sample</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> - <mxGeometry x="289" y="-744" width="140" height="60" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-3" value="Store" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> - <mxGeometry x="279" y="-634" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-5" value="Processing<br>Loop" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> - <mxGeometry x="279" y="-514" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-6" value="Output" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> - <mxGeometry x="279" y="-394" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-7" value="Wait End<br>Sample" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> - <mxGeometry x="279" y="806" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-8" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" target="bw7OO0sNot4gaAuLXok9-3" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="359.0000000000002" y="-674" as="sourcePoint" /> - <mxPoint x="649" y="-194" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-9" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="bw7OO0sNot4gaAuLXok9-5" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="358.76" y="-554" as="sourcePoint" /> - <mxPoint x="358.76" y="-474" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-10" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="bw7OO0sNot4gaAuLXok9-6" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="358.76" y="-434" as="sourcePoint" /> - <mxPoint x="359" y="-394" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-11" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="bw7OO0sNot4gaAuLXok9-7" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="359.0000000000002" y="766" as="sourcePoint" /> - <mxPoint x="358.76" y="846" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-14" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="339" y="-654" as="sourcePoint" /> - <mxPoint x="379" y="-654" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-17" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 1</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="bw7OO0sNot4gaAuLXok9-14" vertex="1" connectable="0"> - <mxGeometry x="0.564" relative="1" as="geometry"> - <mxPoint x="10" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-6" value="<font style="font-size: 16px;" face="Ubuntu Mono">Filtre BaseLine</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="bw7OO0sNot4gaAuLXok9-14"> - <mxGeometry x="0.564" relative="1" as="geometry"> - <mxPoint x="-339" y="180" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-26" value="<font style="font-size: 14px;" face="Ubuntu Mono">Filtre Pei Tseng Notch</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="bw7OO0sNot4gaAuLXok9-14"> - <mxGeometry x="0.564" relative="1" as="geometry"> - <mxPoint x="-366" y="905" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-30" value="<font style="font-size: 14px;" face="Ubuntu Mono">Coupe-bande basique</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="bw7OO0sNot4gaAuLXok9-14"> - <mxGeometry x="0.564" relative="1" as="geometry"> - <mxPoint x="-349" y="540" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-50" value="<font style="font-size: 14px;" face="Ubuntu Mono">Filtre Park McClellan</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="bw7OO0sNot4gaAuLXok9-14"> - <mxGeometry x="0.564" relative="1" as="geometry"> - <mxPoint x="-366" y="1265" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-15" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="339" y="-414" as="sourcePoint" /> - <mxPoint x="379" y="-414" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-16" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="339" y="906" as="sourcePoint" /> - <mxPoint x="379" y="906" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-18" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" vertex="1" connectable="0"> - <mxGeometry x="379.00279069767436" y="-414" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-19" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 3</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" vertex="1" connectable="0"> - <mxGeometry x="379.0027906976743" y="906" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-20" value="" style="curved=1;endArrow=block;html=1;rounded=0;endFill=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="bw7OO0sNot4gaAuLXok9-1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="389" y="-804" as="sourcePoint" /> - <mxPoint x="499" y="-704" as="targetPoint" /> - <Array as="points"> - <mxPoint x="369" y="-794" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-21" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Rst = '1'</span></font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> - <mxGeometry x="389.00279069767436" y="-804" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-23" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = '0'<br>InitAddress = '0'<br>IncrAddress = '0'<br>InitSum = '0'<br>LoadSum = '0'<br>LoadOutput = '1'<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;container=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> - <mxGeometry x="519" y="-414" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-24" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="-354.23" as="sourcePoint" /> - <mxPoint x="519" y="-354.23" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-33" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> - <mxGeometry x="519" y="-774" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-34" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="-714.19" as="sourcePoint" /> - <mxPoint x="519" y="-714.19" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-30" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> - <mxGeometry x="519" y="-654" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-31" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="-594.19" as="sourcePoint" /> - <mxPoint x="519" y="-594.19" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-25" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> - <mxGeometry x="519" y="-534" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-27" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="-474.19000000000005" as="sourcePoint" /> - <mxPoint x="519" y="-474.19000000000005" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-36" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> - <mxGeometry x="519" y="786" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="bw7OO0sNot4gaAuLXok9-37" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="845.81" as="sourcePoint" /> - <mxPoint x="519" y="845.81" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-2" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="188" y="-596" as="sourcePoint" /> - <mxPoint x="185" y="-357" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-4" value="<font style="font-size: 18px;">Condition 1 : Nouveau sample en entrée</font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> - <mxGeometry x="-585" y="-819" width="343" height="30" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-7" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="185" y="-354" as="sourcePoint" /> - <mxPoint x="278" y="-354" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-8" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="185" y="-597" as="sourcePoint" /> - <mxPoint x="278" y="-597" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-9" value="Store" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="279" y="-273" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-10" value="Processing<br>Loop" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="279" y="-153" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-11" value="Output" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="279" y="-33" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-12" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" target="lj9iRBx5GJdBK-l1-GKZ-9" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="359.0000000000002" y="-313" as="sourcePoint" /> - <mxPoint x="649" y="167" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-13" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" target="lj9iRBx5GJdBK-l1-GKZ-10" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="358.76" y="-193" as="sourcePoint" /> - <mxPoint x="358.76" y="-113" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-14" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" target="lj9iRBx5GJdBK-l1-GKZ-11" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="358.76" y="-73" as="sourcePoint" /> - <mxPoint x="359" y="-33" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-15" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="339" y="-293" as="sourcePoint" /> - <mxPoint x="379" y="-293" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-16" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 1</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="lj9iRBx5GJdBK-l1-GKZ-15"> - <mxGeometry x="0.564" relative="1" as="geometry"> - <mxPoint x="10" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-18" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="339" y="-53" as="sourcePoint" /> - <mxPoint x="379" y="-53" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-19" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="1"> - <mxGeometry x="379.00279069767436" y="-53" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-20" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = '0'<br>InitAddress = '0'<br>IncrAddress = '0'<br>InitSum = '0'<br>LoadSum = '0'<br>LoadOutput = '1'<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;container=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="519" y="-53" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-21" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="6.769999999999982" as="sourcePoint" /> - <mxPoint x="519" y="6.769999999999982" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-22" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="519" y="-293" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-23" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="-233.19000000000005" as="sourcePoint" /> - <mxPoint x="519" y="-233.19000000000005" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-24" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="519" y="-173" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-25" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="-113.19000000000005" as="sourcePoint" /> - <mxPoint x="519" y="-113.19000000000005" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-27" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="188" y="-233" as="sourcePoint" /> - <mxPoint x="185" y="6" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-28" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="185" y="9" as="sourcePoint" /> - <mxPoint x="278" y="9" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-29" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="185" y="-234" as="sourcePoint" /> - <mxPoint x="278" y="-234" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-31" value="Store" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="279" y="86" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-32" value="Processing<br>Loop" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="279" y="206" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-33" value="Output" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="279" y="326" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-34" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" target="lj9iRBx5GJdBK-l1-GKZ-31" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="359.0000000000002" y="46" as="sourcePoint" /> - <mxPoint x="649" y="526" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-35" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" target="lj9iRBx5GJdBK-l1-GKZ-32" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="358.76" y="166" as="sourcePoint" /> - <mxPoint x="358.76" y="246" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-36" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" target="lj9iRBx5GJdBK-l1-GKZ-33" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="358.76" y="286" as="sourcePoint" /> - <mxPoint x="359" y="326" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-37" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="339" y="66" as="sourcePoint" /> - <mxPoint x="379" y="66" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-38" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 1</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="lj9iRBx5GJdBK-l1-GKZ-37"> - <mxGeometry x="0.564" relative="1" as="geometry"> - <mxPoint x="10" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-39" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="339" y="306" as="sourcePoint" /> - <mxPoint x="379" y="306" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-40" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="1"> - <mxGeometry x="379.00279069767436" y="306" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-41" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = '0'<br>InitAddress = '0'<br>IncrAddress = '0'<br>InitSum = '0'<br>LoadSum = '0'<br>LoadOutput = '1'<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;container=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="519" y="306" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-42" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="365.77" as="sourcePoint" /> - <mxPoint x="519" y="365.77" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-43" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="519" y="66" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-44" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="125.80999999999995" as="sourcePoint" /> - <mxPoint x="519" y="125.80999999999995" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-45" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="519" y="186" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-46" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="245.80999999999995" as="sourcePoint" /> - <mxPoint x="519" y="245.80999999999995" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-47" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="188" y="126" as="sourcePoint" /> - <mxPoint x="185" y="365" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-48" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="185" y="368" as="sourcePoint" /> - <mxPoint x="278" y="368" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-49" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="185" y="125" as="sourcePoint" /> - <mxPoint x="278" y="125" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-51" value="Store" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="279" y="446" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-52" value="Processing<br>Loop" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="279" y="566" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-53" value="Output" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" vertex="1" parent="1"> - <mxGeometry x="279" y="686" width="160" height="80" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-54" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" edge="1" target="lj9iRBx5GJdBK-l1-GKZ-51" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="359.0000000000002" y="406" as="sourcePoint" /> - <mxPoint x="649" y="886" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-55" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" target="lj9iRBx5GJdBK-l1-GKZ-52" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="358.76" y="526" as="sourcePoint" /> - <mxPoint x="358.76" y="606" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-56" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" edge="1" target="lj9iRBx5GJdBK-l1-GKZ-53" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="358.76" y="646" as="sourcePoint" /> - <mxPoint x="359" y="686" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-57" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="339" y="426" as="sourcePoint" /> - <mxPoint x="379" y="426" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-58" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 1</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="lj9iRBx5GJdBK-l1-GKZ-57"> - <mxGeometry x="0.564" relative="1" as="geometry"> - <mxPoint x="10" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-59" value="" style="endArrow=none;html=1;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="339" y="666" as="sourcePoint" /> - <mxPoint x="379" y="666" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-60" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" vertex="1" connectable="0" parent="1"> - <mxGeometry x="379.00279069767436" y="666" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-61" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = '0'<br>InitAddress = '0'<br>IncrAddress = '0'<br>InitSum = '0'<br>LoadSum = '0'<br>LoadOutput = '1'<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;container=0;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="519" y="666" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-62" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="725.77" as="sourcePoint" /> - <mxPoint x="519" y="725.77" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-63" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="519" y="426" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-64" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="485.80999999999995" as="sourcePoint" /> - <mxPoint x="519" y="485.80999999999995" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-65" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift =&nbsp;<br>InitAddress =&nbsp;<br>IncrAddress =&nbsp;<br>InitSum =&nbsp;<br>LoadSum =&nbsp;<br>LoadOutput =&nbsp;<br></font>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" vertex="1" parent="1"> - <mxGeometry x="519" y="546" width="240" height="110" as="geometry" /> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-66" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="439" y="605.81" as="sourcePoint" /> - <mxPoint x="519" y="605.81" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-67" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="188" y="486" as="sourcePoint" /> - <mxPoint x="185" y="725" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-68" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="185" y="728" as="sourcePoint" /> - <mxPoint x="278" y="728" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-69" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;" edge="1" parent="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="185" y="485" as="sourcePoint" /> - <mxPoint x="278" y="485" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-70" value="" style="curved=1;endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" edge="1" parent="1" source="bw7OO0sNot4gaAuLXok9-7" target="bw7OO0sNot4gaAuLXok9-1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="359" y="888.28" as="sourcePoint" /> - <mxPoint x="302.43145750507574" y="-740.0042712474619" as="targetPoint" /> - <Array as="points"> - <mxPoint x="359" y="1064" /> - <mxPoint x="-143" y="747" /> - <mxPoint x="-197" y="-103" /> - <mxPoint x="105" y="-849" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="lj9iRBx5GJdBK-l1-GKZ-72" value="<font style="font-size: 18px;">Condition 2 : <br></font>" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> - <mxGeometry x="-585" y="-779" width="343" height="30" as="geometry" /> - </mxCell> - </root> - </mxGraphModel> - </diagram> -</mxfile> +<mxfile host="65bd71144e"> + <diagram name="Page-1" id="lufUWjv2mjaYaQ6cVEt1"> + <mxGraphModel dx="1105" dy="2311" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="1169" pageHeight="827" background="none" math="0" shadow="0" adaptiveColors="auto"> + <root> + <mxCell id="0"/> + <mxCell id="1" parent="0"/> + <mxCell id="bw7OO0sNot4gaAuLXok9-1" value="" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="-754" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-2" value="<font style="font-size: 21px;" face="Ubuntu Mono">Wait Sample</font>" style="ellipse;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="289" y="-744" width="140" height="60" as="geometry"/> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-3" value="Store_x" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="-634" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-5" value="Processing<br>Loop_y" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="-514" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-7" value="Wait End<br>Sample" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="449" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-8" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" target="bw7OO0sNot4gaAuLXok9-3" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="359.0000000000002" y="-674" as="sourcePoint"/> + <mxPoint x="649" y="-194" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-9" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="bw7OO0sNot4gaAuLXok9-5" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="358.76" y="-554" as="sourcePoint"/> + <mxPoint x="358.76" y="-474" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-10" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="358.76" y="-434" as="sourcePoint"/> + <mxPoint x="359" y="-394" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-11" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="bw7OO0sNot4gaAuLXok9-7" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="359.0000000000002" y="409" as="sourcePoint"/> + <mxPoint x="358.76" y="489" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-14" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="339" y="-654" as="sourcePoint"/> + <mxPoint x="379" y="-654" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-17" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 1</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="bw7OO0sNot4gaAuLXok9-14" vertex="1" connectable="0"> + <mxGeometry x="0.564" relative="1" as="geometry"> + <mxPoint x="10" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-6" value="<font style="font-size: 16px;" face="Ubuntu Mono">Filtre BaseLine</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="bw7OO0sNot4gaAuLXok9-14" vertex="1" connectable="0"> + <mxGeometry x="0.564" relative="1" as="geometry"> + <mxPoint x="-309" y="117" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-26" value="<font style="font-size: 14px;" face="Ubuntu Mono">Filtre Pei Tseng Notch</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="bw7OO0sNot4gaAuLXok9-14" vertex="1" connectable="0"> + <mxGeometry x="0.564" relative="1" as="geometry"> + <mxPoint x="-334" y="509" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-30" value="<font style="font-size: 14px;" face="Ubuntu Mono">Coupe-bande basique</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="bw7OO0sNot4gaAuLXok9-14" vertex="1" connectable="0"> + <mxGeometry x="0.564" relative="1" as="geometry"> + <mxPoint x="-331" y="459" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-50" value="<font style="font-size: 14px;" face="Ubuntu Mono">Filtre Park McClellan</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="bw7OO0sNot4gaAuLXok9-14" vertex="1" connectable="0"> + <mxGeometry x="0.564" relative="1" as="geometry"> + <mxPoint x="-338" y="779" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-15" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="339" y="-414" as="sourcePoint"/> + <mxPoint x="379" y="-414" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-16" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="339" y="549" as="sourcePoint"/> + <mxPoint x="379" y="549" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-18" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" vertex="1" connectable="0"> + <mxGeometry x="379.00279069767436" y="-414" as="geometry"/> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-19" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 6</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" vertex="1" connectable="0"> + <mxGeometry x="379.0027906976743" y="549" as="geometry"/> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-20" value="" style="curved=1;endArrow=block;html=1;rounded=0;endFill=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="bw7OO0sNot4gaAuLXok9-1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="389" y="-804" as="sourcePoint"/> + <mxPoint x="499" y="-704" as="targetPoint"/> + <Array as="points"> + <mxPoint x="369" y="-794"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-21" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Rst = '1'</span></font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];" parent="1" vertex="1" connectable="0"> + <mxGeometry x="389.00279069767436" y="-804" as="geometry"/> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-33" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '0', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '0', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '0', '0')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="-769" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-34" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="-714.19" as="sourcePoint"/> + <mxPoint x="519" y="-714.19" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-31" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="-594.19" as="sourcePoint"/> + <mxPoint x="519" y="-594.19" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-27" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="-474.19000000000005" as="sourcePoint"/> + <mxPoint x="519" y="-474.19000000000005" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="bw7OO0sNot4gaAuLXok9-37" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="488.80999999999995" as="sourcePoint"/> + <mxPoint x="519" y="488.80999999999995" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-8" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="bw7OO0sNot4gaAuLXok9-5" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="185" y="-597" as="sourcePoint"/> + <mxPoint x="278" y="-597" as="targetPoint"/> + <Array as="points"> + <mxPoint x="174" y="-474"/> + <mxPoint x="174" y="-597"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-53" value="Output" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="329" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-62" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="368.77" as="sourcePoint"/> + <mxPoint x="519" y="368.77" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-70" value="" style="curved=1;endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;" parent="1" source="bw7OO0sNot4gaAuLXok9-7" target="bw7OO0sNot4gaAuLXok9-1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="359" y="888.28" as="sourcePoint"/> + <mxPoint x="302.43145750507574" y="-740.0042712474619" as="targetPoint"/> + <Array as="points"> + <mxPoint x="359" y="672"/> + <mxPoint x="1" y="445"/> + <mxPoint x="-75" y="-373"/> + <mxPoint x="105" y="-849"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="24" value="<div><font face="Verdana">Note :&nbsp;</font></div><div><font face="Verdana">On peut avoir des vecteurs pour des situations qui dépendent du filtre dans lequel on est.</font></div><div><br></div><div><font face="Verdana">Exemple:</font></div><div><font face="Verdana">"Filtre = ('1', '0', '0')" signifie que nous sommes dans la situation où nous calculons le premier filtre</font></div><div><font face="Verdana"><br></font></div><div><font face="Verdana">Les vecteurs sont de taille 3 ou 4 et on a :</font></div><div><font face="Verdana">- Le premier élément désigne le filtre BaseLine</font></div><div><font face="Verdana">- Le second élément désigne le Filtre coupe-bande basique</font></div><div><span style="font-family: Verdana; background-color: transparent;">- Le troisième élément désigne le filtre Park McClellan</span><br></div><div><span style="font-family: Verdana; background-color: transparent;">Pour les vecteurs de taille 3.</span></div><div><span style="font-family: Verdana; background-color: transparent;"><br></span></div><div><span style="font-family: Verdana; background-color: transparent;">On a un vecteur de taille 4 uniquement dans le cas ou nous sommes dans le filtre Coupe-bande et Pei</span></div><div><span style="font-family: Verdana; background-color: transparent;">Tseng Notch ce qui nous permettra de choisir entre le registre A et B pour les coefficients</span></div><div><span style="font-family: Verdana; background-color: transparent;"><br></span></div><div><span style="font-family: Verdana; background-color: transparent;">Exemple:</span></div><div><span style="font-family: Verdana; background-color: transparent;">"Filtre_coef = ('0', '0', '1', '0')" signifie que nous choisissons le registre A</span></div>" style="text;html=1;align=left;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=#b85450;fillColor=#f8cecc;" parent="1" vertex="1"> + <mxGeometry x="-19" y="-1099" width="634" height="270" as="geometry"/> + </mxCell> + <mxCell id="25" value="" style="group" parent="1" vertex="1" connectable="0"> + <mxGeometry x="1159" y="-779" width="343" height="258" as="geometry"/> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-4" value="<font style="font-size: 18px;">Condition 1 : Nouveau sample en entrée</font>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="25" vertex="1"> + <mxGeometry width="343" height="30" as="geometry"/> + </mxCell> + <mxCell id="lj9iRBx5GJdBK-l1-GKZ-72" value="<font style="font-size: 18px;">Condition 2 : Coefficients multipliés<br></font>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="25" vertex="1"> + <mxGeometry y="40" width="343" height="30" as="geometry"/> + </mxCell> + <mxCell id="2" value="<font style="font-size: 18px;">Condition 3 : Coefficients multipliés<br></font>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="25" vertex="1"> + <mxGeometry y="85" width="343" height="30" as="geometry"/> + </mxCell> + <mxCell id="3" value="<font style="font-size: 18px;">Condition 4 : Coefficients multipliés<br></font>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="25" vertex="1"> + <mxGeometry y="133" width="343" height="30" as="geometry"/> + </mxCell> + <mxCell id="4" value="<font style="font-size: 18px;">Condition 5 : Coefficients multipliés<br></font>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="25" vertex="1"> + <mxGeometry y="183" width="343" height="30" as="geometry"/> + </mxCell> + <mxCell id="5" value="<font style="font-size: 18px;">Condition 6 : Attente d'un nouveau sample<br></font>" style="text;html=1;align=left;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="25" vertex="1"> + <mxGeometry y="228" width="343" height="30" as="geometry"/> + </mxCell> + <mxCell id="67" value="Store_y" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="-393" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="68" value="Processing<br>Loop_z_b" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="-273" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="69" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" target="68" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="358.76" y="-313" as="sourcePoint"/> + <mxPoint x="358.76" y="-233" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="70" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="358.76" y="-193" as="sourcePoint"/> + <mxPoint x="359" y="-153" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="71" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="339" y="188" as="sourcePoint"/> + <mxPoint x="379" y="188" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="72" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" vertex="1" connectable="0"> + <mxGeometry x="379.00279069767436" y="188" as="geometry"/> + </mxCell> + <mxCell id="73" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="-353.19000000000005" as="sourcePoint"/> + <mxPoint x="519" y="-353.19000000000005" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="74" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="-233.19000000000005" as="sourcePoint"/> + <mxPoint x="519" y="-233.19000000000005" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="75" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;edgeStyle=orthogonalEdgeStyle;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" parent="1" source="111" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="185" y="-356" as="sourcePoint"/> + <mxPoint x="278" y="-356" as="targetPoint"/> + <Array as="points"> + <mxPoint x="174" y="8"/> + <mxPoint x="174" y="-356"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="94" value="Processing<br>Loop_r" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="209" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="96" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="358.76" y="289" as="sourcePoint"/> + <mxPoint x="359" y="329" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="97" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="339" y="309" as="sourcePoint"/> + <mxPoint x="379" y="309" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="98" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" vertex="1" connectable="0"> + <mxGeometry x="379.00279069767436" y="309" as="geometry"/> + </mxCell> + <mxCell id="100" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="248.80999999999995" as="sourcePoint"/> + <mxPoint x="519" y="248.80999999999995" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="101" value="" style="endArrow=none;dashed=1;html=1;dashPattern=1 3;strokeWidth=2;rounded=0;edgeStyle=orthogonalEdgeStyle;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="168" y="126" as="sourcePoint"/> + <mxPoint x="278" y="126" as="targetPoint"/> + <Array as="points"> + <mxPoint x="279" y="126"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="111" value="Processing<br>Loop_z_a" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="-32" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="112" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="358.76" y="48" as="sourcePoint"/> + <mxPoint x="359" y="88" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="113" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="7.809999999999945" as="sourcePoint"/> + <mxPoint x="519" y="7.809999999999945" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="118" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('0', '0', '0')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('0', '0', '0', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="-769" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="142" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('1', '0', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('1', '0', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '0', '0')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '1'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="-649" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="143" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('1', '0', '0')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('1', '0', '0', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="-649" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="144" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '0', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '0', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('1', '0', '0')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '1'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="-528" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="145" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('1', '0', '0')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('1', '0', '0', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="-528" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="146" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '1', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '1', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '0', '0')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '1'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="-408" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="147" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('0', '0', '0')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('0', '0', '0', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="-408" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="148" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '0', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '0', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '1', '0')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '1'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="-286" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="149" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('0', '1', '0')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('0', '1', '0', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="-286" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="150" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '0', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '0', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '0', '1')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '1'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="-47" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="151" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('0', '0', '1')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('0', '0', '1', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="-47" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="154" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '0', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '0', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '0', '1')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '1'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="195" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="155" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('0', '0', '1')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('0', '0', '0', '1')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="195" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="172" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '0', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '0', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '0', '0')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '1'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="316" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="173" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('0', '0', '0')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('0', '0', '0', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="316" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="174" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '0', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '0', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '0', '0')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="436" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="175" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('0', '0', '0')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('0', '0', '0', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="436" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="178" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="339" y="68" as="sourcePoint"/> + <mxPoint x="379" y="68" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="179" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" vertex="1" connectable="0"> + <mxGeometry x="379.00279069767436" y="68" as="geometry"/> + </mxCell> + <mxCell id="180" value="Store_z" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="89" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="181" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="128.80999999999995" as="sourcePoint"/> + <mxPoint x="519" y="128.80999999999995" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="182" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '0', '1')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '0', '1')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '0', '0')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '1'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="74" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="183" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('0', '0', '0')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('0', '0', '0', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="74" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="189" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="339" y="-173" as="sourcePoint"/> + <mxPoint x="379" y="-173" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="190" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" vertex="1" connectable="0"> + <mxGeometry x="379.00279069767436" y="-173" as="geometry"/> + </mxCell> + <mxCell id="191" value="InitAdress" style="ellipse;whiteSpace=wrap;html=1;fontSize=21;fontFamily=Ubuntu Mono;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="279" y="-152" width="160" height="80" as="geometry"/> + </mxCell> + <mxCell id="192" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="358.76" y="-72" as="sourcePoint"/> + <mxPoint x="359" y="-32" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="193" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="339" y="-52" as="sourcePoint"/> + <mxPoint x="379" y="-52" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="194" value="<font style="font-size: 15px;" face="Ubuntu Mono">Condition 2</font>" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];labelBackgroundColor=none;labelBorderColor=none;fontStyle=2" parent="1" vertex="1" connectable="0"> + <mxGeometry x="379.00279069767436" y="-52" as="geometry"/> + </mxCell> + <mxCell id="195" value="" style="endArrow=block;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;endFill=1;dashed=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="439" y="-112.19000000000005" as="sourcePoint"/> + <mxPoint x="519" y="-112.19000000000005" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="196" value="<font style="font-size: 15px;" face="Ubuntu Mono">LoadShift = ('0', '0', '0')</font><br style="color: rgb(63, 63, 63); scrollbar-color: light-dark(#e2e2e2, #4b4b4b)<br/>					light-dark(#fbfbfb, var(--dark-panel-color)); font-family: &quot;Ubuntu Mono&quot;; font-size: 15px;"><div><font style="font-size: 15px;" face="Ubuntu Mono">InitAddress = ('0', '1', '0')</font><br></div><div><font style="font-size: 15px;" face="Ubuntu Mono">IncrAddress = ('0', '0', '0')</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">InitSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadSum = '0'</font></div><div><font style="font-size: 15px;" face="Ubuntu Mono">LoadOutput = '0'</font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="519" y="-166" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="197" value="<font face="Ubuntu Mono"><span style="font-size: 15px;">Filtre = ('0', '0', '0')</span></font><div><font face="Ubuntu Mono"><span style="font-size: 15px;">FiltreCoef = ('0', '0', '0', '0')</span></font></div>" style="rounded=0;whiteSpace=wrap;html=1;align=left;fontStyle=2;fillColor=#f5f5f5;strokeColor=#666666;fontColor=#333333;" parent="1" vertex="1"> + <mxGeometry x="770" y="-166" width="240" height="110" as="geometry"/> + </mxCell> + <mxCell id="199" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="358.76" y="170" as="sourcePoint"/> + <mxPoint x="359" y="210" as="targetPoint"/> + </mxGeometry> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> \ No newline at end of file diff --git a/docs/img/OperativeUnit.drawio b/docs/img/OperativeUnit.drawio index 92ef8ac..5f60e40 100644 --- a/docs/img/OperativeUnit.drawio +++ b/docs/img/OperativeUnit.drawio @@ -1,426 +1,1114 @@ -<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (X11; Linux x86_64; rv:135.0) Gecko/20100101 Firefox/135.0" version="26.0.16"> - <diagram name="Page-1" id="HnFJvu7xD7cCTyxCgidn"> - <mxGraphModel dx="1673" dy="958" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> - <root> - <mxCell id="0" /> - <mxCell id="1" parent="0" /> - <mxCell id="uwrRxOYGmB2LabIKb8In-1" value="<font face="Ubuntu Mono">Address<br style="font-size: 17px;">Generator</font>" style="rounded=0;whiteSpace=wrap;html=1;fontSize=17;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" parent="1" vertex="1"> - <mxGeometry x="340" y="40" width="120" height="80" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-2" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> - <mxGeometry x="340" y="90" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-3" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;" parent="1" target="uwrRxOYGmB2LabIKb8In-1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="300" y="60" as="sourcePoint" /> - <mxPoint x="550" y="160" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-4" value="I_initAddress" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="uwrRxOYGmB2LabIKb8In-3" vertex="1" connectable="0"> - <mxGeometry x="0.45" y="1" relative="1" as="geometry"> - <mxPoint x="-29" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-5" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="300" y="79.83" as="sourcePoint" /> - <mxPoint x="340" y="79.83" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-6" value="I_incrAddress" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="uwrRxOYGmB2LabIKb8In-5" vertex="1" connectable="0"> - <mxGeometry x="0.45" y="1" relative="1" as="geometry"> - <mxPoint x="-29" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-7" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="460" y="60" as="sourcePoint" /> - <mxPoint x="500" y="60" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-8" value="O_processingDone" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="uwrRxOYGmB2LabIKb8In-7" vertex="1" connectable="0"> - <mxGeometry x="0.45" y="1" relative="1" as="geometry"> - <mxPoint x="11" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-9" value="Samples" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> - <mxGeometry x="160" y="200" width="120" height="280" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-11" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="160" y="280" as="sourcePoint" /> - <mxPoint x="280" y="280" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-12" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="160" y="240" as="sourcePoint" /> - <mxPoint x="280" y="240" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-13" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="160" y="440" as="sourcePoint" /> - <mxPoint x="280" y="440" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-14" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;" parent="1" vertex="1"> - <mxGeometry x="190" y="330" width="280" height="20" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-15" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="280" y="220" as="sourcePoint" /> - <mxPoint x="320" y="220" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-17" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="280" y="260" as="sourcePoint" /> - <mxPoint x="320" y="260" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-18" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="280" y="460" as="sourcePoint" /> - <mxPoint x="320" y="460" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-21" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="300" y="440" as="sourcePoint" /> - <mxPoint x="300" y="280" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-25" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="219.89" y="430" as="sourcePoint" /> - <mxPoint x="219.89" y="460" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-28" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="219.94" y="230" as="sourcePoint" /> - <mxPoint x="219.94" y="260" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-29" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="219.94" y="270" as="sourcePoint" /> - <mxPoint x="219.94" y="300" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-30" value="Coefficients" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> - <mxGeometry x="520" y="200" width="120" height="280" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-31" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="520" y="280" as="sourcePoint" /> - <mxPoint x="640" y="280" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-32" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="520" y="240" as="sourcePoint" /> - <mxPoint x="640" y="240" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-33" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="520" y="440" as="sourcePoint" /> - <mxPoint x="640" y="440" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-34" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;strokeWidth=2;" parent="1" vertex="1"> - <mxGeometry x="330" y="330" width="280" height="20" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-35" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="520" y="220" as="sourcePoint" /> - <mxPoint x="480" y="220" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-38" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="500" y="440" as="sourcePoint" /> - <mxPoint x="500" y="280" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-42" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="520" y="260" as="sourcePoint" /> - <mxPoint x="480" y="260" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-43" value="" style="endArrow=block;html=1;rounded=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="520" y="460" as="sourcePoint" /> - <mxPoint x="480" y="460" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-45" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="uwrRxOYGmB2LabIKb8In-1" target="uwrRxOYGmB2LabIKb8In-14" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="160" as="sourcePoint" /> - <mxPoint x="440" y="160" as="targetPoint" /> - <Array as="points"> - <mxPoint x="400" y="160" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-46" value="SR_ReadAddress" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="uwrRxOYGmB2LabIKb8In-45" vertex="1" connectable="0"> - <mxGeometry x="0.45" y="1" relative="1" as="geometry"> - <mxPoint x="41" y="-51" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-47" value="" style="endArrow=block;html=1;rounded=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endFill=1;" parent="1" target="uwrRxOYGmB2LabIKb8In-34" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="120" as="sourcePoint" /> - <mxPoint x="340" y="220" as="targetPoint" /> - <Array as="points"> - <mxPoint x="400" y="160" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-49" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" target="uwrRxOYGmB2LabIKb8In-50" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="340" y="339.71" as="sourcePoint" /> - <mxPoint x="380" y="339.71" as="targetPoint" /> - <Array as="points"> - <mxPoint x="350" y="340" /> - <mxPoint x="350" y="490" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-50" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> - <mxGeometry x="360" y="500" width="80" height="80" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-51" value="" style="endArrow=block;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-34" target="uwrRxOYGmB2LabIKb8In-50" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="350" y="349.71" as="sourcePoint" /> - <mxPoint x="382" y="542" as="targetPoint" /> - <Array as="points"> - <mxPoint x="450" y="340" /> - <mxPoint x="450" y="490" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-52" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-50" target="uwrRxOYGmB2LabIKb8In-50" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="420" y="610" as="sourcePoint" /> - <mxPoint x="470" y="560" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-53" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-50" target="uwrRxOYGmB2LabIKb8In-50" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="382" y="598" as="sourcePoint" /> - <mxPoint x="438" y="542" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-54" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> - <mxGeometry x="360" y="650" width="80" height="80" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-55" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-50" target="uwrRxOYGmB2LabIKb8In-54" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="400" y="620" as="sourcePoint" /> - <mxPoint x="360" y="710" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-56" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-54" target="uwrRxOYGmB2LabIKb8In-54" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="438" y="568" as="sourcePoint" /> - <mxPoint x="382" y="512" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-57" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-54" target="uwrRxOYGmB2LabIKb8In-54" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="450" y="700" as="sourcePoint" /> - <mxPoint x="370" y="700" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-58" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;" parent="1" vertex="1"> - <mxGeometry x="160" y="660" width="120" height="60" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-59" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> - <mxGeometry x="160" y="690" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-63" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> - <mxGeometry x="160" y="450" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-64" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-58" target="uwrRxOYGmB2LabIKb8In-54" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="410" y="580" as="sourcePoint" /> - <mxPoint x="340" y="650" as="targetPoint" /> - <Array as="points"> - <mxPoint x="220" y="620" /> - <mxPoint x="330" y="620" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-65" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-54" target="uwrRxOYGmB2LabIKb8In-58" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="230" y="670" as="sourcePoint" /> - <mxPoint x="382" y="672" as="targetPoint" /> - <Array as="points"> - <mxPoint x="400" y="770" /> - <mxPoint x="270" y="770" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-67" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;" parent="1" target="uwrRxOYGmB2LabIKb8In-68" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="399.97" y="730" as="sourcePoint" /> - <mxPoint x="399.97" y="810" as="targetPoint" /> - <Array as="points"> - <mxPoint x="400" y="790" /> - <mxPoint x="420" y="810" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-68" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;rotation=90;strokeWidth=2;" parent="1" vertex="1"> - <mxGeometry x="480" y="780" width="120" height="60" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-69" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> - <mxGeometry x="510" y="840" width="10" height="20" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-70" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=0.007;exitDx=0;exitDy=0;exitPerimeter=0;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-68" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="570" y="809.98" as="sourcePoint" /> - <mxPoint x="650" y="810" as="targetPoint" /> - <Array as="points" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-71" value="O_Y" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="1" vertex="1" connectable="0"> - <mxGeometry x="650.0017647058825" y="810.0000000000002" as="geometry" /> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-72" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" target="uwrRxOYGmB2LabIKb8In-9" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="150" y="120" as="sourcePoint" /> - <mxPoint x="250" y="170" as="targetPoint" /> - <Array as="points"> - <mxPoint x="220" y="120" /> - <mxPoint x="230" y="120" /> - <mxPoint x="250" y="140" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-74" value="I_inputSample" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;" parent="uwrRxOYGmB2LabIKb8In-72" vertex="1" connectable="0"> - <mxGeometry x="-0.9128" y="-1" relative="1" as="geometry"> - <mxPoint x="-7" y="-1" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-73" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" target="uwrRxOYGmB2LabIKb8In-9" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="150" y="150" as="sourcePoint" /> - <mxPoint x="190" y="190" as="targetPoint" /> - <Array as="points"> - <mxPoint x="180" y="150" /> - <mxPoint x="190" y="160" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-76" value="I_loadShift" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-73" vertex="1" connectable="0"> - <mxGeometry x="-0.7861" relative="1" as="geometry"> - <mxPoint x="-9" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-77" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="130" y="630" as="sourcePoint" /> - <mxPoint x="170" y="660" as="targetPoint" /> - <Array as="points"> - <mxPoint x="160" y="630" /> - <mxPoint x="170" y="640" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-78" value="I_loadSum" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-77" vertex="1" connectable="0"> - <mxGeometry x="-0.7298" y="1" relative="1" as="geometry"> - <mxPoint x="-9" y="1" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-79" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" target="uwrRxOYGmB2LabIKb8In-58" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="130" y="610" as="sourcePoint" /> - <mxPoint x="170" y="641" as="targetPoint" /> - <Array as="points"> - <mxPoint x="170" y="610" /> - <mxPoint x="190" y="630" /> - </Array> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-80" value="I_initSum" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-79" vertex="1" connectable="0"> - <mxGeometry x="-0.7298" y="1" relative="1" as="geometry"> - <mxPoint x="-13" y="1" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-81" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="130" y="830" as="sourcePoint" /> - <mxPoint x="510" y="830" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-82" value="I_loadY" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-81" vertex="1" connectable="0"> - <mxGeometry x="-0.9221" y="-1" relative="1" as="geometry"> - <mxPoint x="-15" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-83" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="590" y="820" as="sourcePoint" /> - <mxPoint x="610" y="800" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-84" value="8" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="uwrRxOYGmB2LabIKb8In-83" vertex="1" connectable="0"> - <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> - <mxPoint x="5" y="-4" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-85" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="440" y="820" as="sourcePoint" /> - <mxPoint x="460" y="800" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-86" value="20" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="uwrRxOYGmB2LabIKb8In-85" vertex="1" connectable="0"> - <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> - <mxPoint x="5" y="-4" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-87" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="390" y="620" as="sourcePoint" /> - <mxPoint x="410" y="600" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-88" value="16" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="uwrRxOYGmB2LabIKb8In-87" vertex="1" connectable="0"> - <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> - <mxPoint x="5" y="-4" as="offset" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-89" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> - <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="180" y="130" as="sourcePoint" /> - <mxPoint x="200" y="110" as="targetPoint" /> - </mxGeometry> - </mxCell> - <mxCell id="uwrRxOYGmB2LabIKb8In-90" value="8" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="uwrRxOYGmB2LabIKb8In-89" vertex="1" connectable="0"> - <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> - <mxPoint x="5" y="-4" as="offset" /> - </mxGeometry> - </mxCell> - </root> - </mxGraphModel> - </diagram> -</mxfile> +<mxfile host="65bd71144e"> + <diagram name="Page-1" id="HnFJvu7xD7cCTyxCgidn"> + <mxGraphModel dx="2957" dy="1546" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0"> + <root> + <mxCell id="0"/> + <mxCell id="1" parent="0"/> + <mxCell id="332" value="" style="edgeStyle=none;html=1;" parent="1" source="uwrRxOYGmB2LabIKb8In-1" target="327" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-1" value="<font face="Ubuntu Mono">Address<br style="font-size: 17px;">Generator_z_b</font>" style="rounded=0;whiteSpace=wrap;html=1;fontSize=17;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="-550" y="-660" width="120" height="80" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-2" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="-550" y="-610" width="10" height="20" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-3" value="" style="endArrow=block;html=1;rounded=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endFill=1;" parent="1" target="uwrRxOYGmB2LabIKb8In-1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-560" y="-740" as="sourcePoint"/> + <mxPoint x="-340" y="-540" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-530" y="-740"/> + <mxPoint x="-520" y="-730"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-4" value="I_initAddress_z_b" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0;rotation=0;" parent="uwrRxOYGmB2LabIKb8In-3" vertex="1" connectable="0"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-41" y="-49" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-5" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endFill=1;" parent="1" target="uwrRxOYGmB2LabIKb8In-1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-560" y="-770" as="sourcePoint"/> + <mxPoint x="-550" y="-620.1700000000001" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-510" y="-770"/> + <mxPoint x="-490" y="-750"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-6" value="I_incrAddress_z_b" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="uwrRxOYGmB2LabIKb8In-5" vertex="1" connectable="0"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-71" y="-64" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-9" value="Samples X" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="-10" y="-280" width="120" height="280" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-11" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-10" y="-200" as="sourcePoint"/> + <mxPoint x="110" y="-200" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-12" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-10" y="-240" as="sourcePoint"/> + <mxPoint x="110" y="-240" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-13" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-10" y="-40" as="sourcePoint"/> + <mxPoint x="110" y="-40" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-14" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="20" y="-150" width="280" height="20" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-15" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="110" y="-260" as="sourcePoint"/> + <mxPoint x="150" y="-260" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-17" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="110" y="-220" as="sourcePoint"/> + <mxPoint x="150" y="-220" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-18" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="110" y="-20" as="sourcePoint"/> + <mxPoint x="150" y="-20" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-21" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="130" y="-40" as="sourcePoint"/> + <mxPoint x="130" y="-200" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-25" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="49.889999999999986" y="-50" as="sourcePoint"/> + <mxPoint x="49.889999999999986" y="-20" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-28" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="49.94" y="-250" as="sourcePoint"/> + <mxPoint x="49.94" y="-220" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-29" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="49.94" y="-210" as="sourcePoint"/> + <mxPoint x="49.94" y="-180" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-30" value="Coefficients H" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="690" y="-280" width="120" height="280" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-31" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="-200" as="sourcePoint"/> + <mxPoint x="810" y="-200" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-32" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="-240" as="sourcePoint"/> + <mxPoint x="810" y="-240" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-33" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="-40" as="sourcePoint"/> + <mxPoint x="810" y="-40" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-34" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=-90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="330" y="-30" width="280" height="20" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-49" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="164" target="uwrRxOYGmB2LabIKb8In-50" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="340" y="339.71" as="sourcePoint"/> + <mxPoint x="380" y="339.71" as="targetPoint"/> + <Array as="points"> + <mxPoint x="350" y="-10"/> + <mxPoint x="350" y="300"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-50" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> + <mxGeometry x="360" y="310" width="80" height="80" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-51" value="" style="endArrow=block;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-34" target="uwrRxOYGmB2LabIKb8In-50" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="350" y="349.71" as="sourcePoint"/> + <mxPoint x="382" y="542" as="targetPoint"/> + <Array as="points"> + <mxPoint x="450" y="-10"/> + <mxPoint x="450" y="300"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-52" value="" style="endArrow=none;html=1;rounded=0;entryX=1;entryY=0;entryDx=0;entryDy=0;exitX=0;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-50" target="uwrRxOYGmB2LabIKb8In-50" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="420" y="610" as="sourcePoint"/> + <mxPoint x="470" y="560" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-53" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0;entryDx=0;entryDy=0;exitX=1;exitY=1;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-50" target="uwrRxOYGmB2LabIKb8In-50" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="382" y="598" as="sourcePoint"/> + <mxPoint x="438" y="542" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-54" value="" style="ellipse;whiteSpace=wrap;html=1;aspect=fixed;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> + <mxGeometry x="360" y="650" width="80" height="80" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-55" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-50" target="uwrRxOYGmB2LabIKb8In-54" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="400" y="620" as="sourcePoint"/> + <mxPoint x="360" y="710" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-56" value="" style="endArrow=none;html=1;rounded=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-54" target="uwrRxOYGmB2LabIKb8In-54" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="438" y="568" as="sourcePoint"/> + <mxPoint x="382" y="512" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-57" value="" style="endArrow=none;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;fillColor=#d5e8d4;strokeColor=#82b366;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-54" target="uwrRxOYGmB2LabIKb8In-54" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="450" y="700" as="sourcePoint"/> + <mxPoint x="370" y="700" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-58" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="160" y="660" width="120" height="60" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-59" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> + <mxGeometry x="160" y="690" width="10" height="20" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-63" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> + <mxGeometry x="-10" y="-30" width="10" height="20" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-64" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-58" target="uwrRxOYGmB2LabIKb8In-54" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="410" y="580" as="sourcePoint"/> + <mxPoint x="340" y="650" as="targetPoint"/> + <Array as="points"> + <mxPoint x="220" y="620"/> + <mxPoint x="330" y="620"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-65" value="" style="endArrow=block;html=1;rounded=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" source="uwrRxOYGmB2LabIKb8In-54" target="uwrRxOYGmB2LabIKb8In-58" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="230" y="670" as="sourcePoint"/> + <mxPoint x="382" y="672" as="targetPoint"/> + <Array as="points"> + <mxPoint x="400" y="770"/> + <mxPoint x="270" y="770"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-67" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endFill=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;" parent="1" target="uwrRxOYGmB2LabIKb8In-68" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="399.97" y="730" as="sourcePoint"/> + <mxPoint x="399.97" y="810" as="targetPoint"/> + <Array as="points"> + <mxPoint x="400" y="790"/> + <mxPoint x="420" y="810"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-68" value="" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;rotation=90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="480" y="780" width="120" height="60" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-69" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> + <mxGeometry x="510" y="840" width="10" height="20" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-71" value="O_Y" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="1" vertex="1" connectable="0"> + <mxGeometry x="730.0017647058826" y="810.0000000000002" as="geometry"/> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-72" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.75;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" target="uwrRxOYGmB2LabIKb8In-9" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-20" y="-360" as="sourcePoint"/> + <mxPoint x="80" y="-310" as="targetPoint"/> + <Array as="points"> + <mxPoint x="50" y="-360"/> + <mxPoint x="60" y="-360"/> + <mxPoint x="80" y="-340"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-74" value="I_inputSample" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;" parent="uwrRxOYGmB2LabIKb8In-72" vertex="1" connectable="0"> + <mxGeometry x="-0.9128" y="-1" relative="1" as="geometry"> + <mxPoint x="-7" y="-1" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-73" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" target="uwrRxOYGmB2LabIKb8In-9" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-190" y="-300" as="sourcePoint"/> + <mxPoint x="20" y="-290" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-110" y="-300"/> + <mxPoint y="-300"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-76" value="I_loadShift_x" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-73" vertex="1" connectable="0"> + <mxGeometry x="-0.7861" relative="1" as="geometry"> + <mxPoint x="-33" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="279" value="I_loadShift_y" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-73" vertex="1" connectable="0"> + <mxGeometry x="-0.7861" relative="1" as="geometry"> + <mxPoint x="-33" y="320" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="280" value="I_loadShift_z" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-73" vertex="1" connectable="0"> + <mxGeometry x="-0.7861" relative="1" as="geometry"> + <mxPoint x="-33" y="530" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-77" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="130" y="630" as="sourcePoint"/> + <mxPoint x="170" y="660" as="targetPoint"/> + <Array as="points"> + <mxPoint x="160" y="630"/> + <mxPoint x="170" y="640"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-78" value="I_loadSum" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-77" vertex="1" connectable="0"> + <mxGeometry x="-0.7298" y="1" relative="1" as="geometry"> + <mxPoint x="-9" y="1" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-79" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;" parent="1" target="uwrRxOYGmB2LabIKb8In-58" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="130" y="610" as="sourcePoint"/> + <mxPoint x="170" y="641" as="targetPoint"/> + <Array as="points"> + <mxPoint x="170" y="610"/> + <mxPoint x="190" y="630"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-80" value="I_initSum" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-79" vertex="1" connectable="0"> + <mxGeometry x="-0.7298" y="1" relative="1" as="geometry"> + <mxPoint x="-13" y="1" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-81" value="" style="endArrow=classic;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="270" y="830" as="sourcePoint"/> + <mxPoint x="510" y="830" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-82" value="I_loadY" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontSize=14;fontFamily=Ubuntu Mono;" parent="uwrRxOYGmB2LabIKb8In-81" vertex="1" connectable="0"> + <mxGeometry x="-0.9221" y="-1" relative="1" as="geometry"> + <mxPoint x="-15" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-83" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="590" y="820" as="sourcePoint"/> + <mxPoint x="610" y="800" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-84" value="11" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="uwrRxOYGmB2LabIKb8In-83" vertex="1" connectable="0"> + <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> + <mxPoint x="5" y="-4" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-85" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="440" y="820" as="sourcePoint"/> + <mxPoint x="460" y="800" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-86" value="29" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="uwrRxOYGmB2LabIKb8In-85" vertex="1" connectable="0"> + <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> + <mxPoint x="5" y="-4" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-87" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="390" y="510" as="sourcePoint"/> + <mxPoint x="410" y="490" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-88" value="22" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="uwrRxOYGmB2LabIKb8In-87" vertex="1" connectable="0"> + <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> + <mxPoint x="5" y="-4" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-89" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="10" y="-350" as="sourcePoint"/> + <mxPoint x="30" y="-370" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="uwrRxOYGmB2LabIKb8In-90" value="11" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="uwrRxOYGmB2LabIKb8In-89" vertex="1" connectable="0"> + <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> + <mxPoint x="-5" y="-4" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="135" value="" style="endArrow=classic;html=1;rounded=0;exitX=0.5;exitY=0;exitDx=0;exitDy=0;" parent="1" source="uwrRxOYGmB2LabIKb8In-68" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="590" y="810" as="sourcePoint"/> + <mxPoint x="720" y="810" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="137" value="Samples Y" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="-10" y="40" width="120" height="160" as="geometry"/> + </mxCell> + <mxCell id="138" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-10" y="159.52" as="sourcePoint"/> + <mxPoint x="110" y="159.52" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="139" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-10" y="80" as="sourcePoint"/> + <mxPoint x="110" y="80" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="141" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="75" y="115" width="170" height="20" as="geometry"/> + </mxCell> + <mxCell id="142" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="110" y="60" as="sourcePoint"/> + <mxPoint x="150" y="60" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="143" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="110" y="119.47000000000003" as="sourcePoint"/> + <mxPoint x="150" y="119.47000000000003" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="144" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="110" y="180" as="sourcePoint"/> + <mxPoint x="150" y="180" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="147" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="49.75999999999999" y="70" as="sourcePoint"/> + <mxPoint x="49.75999999999999" y="100" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="148" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="49.75999999999999" y="150" as="sourcePoint"/> + <mxPoint x="49.75999999999999" y="180" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="149" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> + <mxGeometry x="-10" y="170" width="10" height="20" as="geometry"/> + </mxCell> + <mxCell id="157" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" target="137" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-190" y="20" as="sourcePoint"/> + <mxPoint x="-10" y="130" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-110" y="20"/> + <mxPoint x="-10" y="20"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="164" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="190" y="-30" width="280" height="20" as="geometry"/> + </mxCell> + <mxCell id="175" value="Samples Z" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="-10" y="250" width="120" height="280" as="geometry"/> + </mxCell> + <mxCell id="176" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-10" y="330" as="sourcePoint"/> + <mxPoint x="110" y="330" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="177" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-10" y="290" as="sourcePoint"/> + <mxPoint x="110" y="290" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="178" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-10" y="490" as="sourcePoint"/> + <mxPoint x="110" y="490" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="258" style="edgeStyle=none;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;rounded=0;curved=0;" parent="1" source="179" target="164" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="270" y="390"/> + <mxPoint x="270" y="-20"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="179" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="20" y="380" width="280" height="20" as="geometry"/> + </mxCell> + <mxCell id="180" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="110" y="270" as="sourcePoint"/> + <mxPoint x="150" y="270" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="181" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="110" y="310" as="sourcePoint"/> + <mxPoint x="150" y="310" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="182" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="110" y="510" as="sourcePoint"/> + <mxPoint x="150" y="510" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="183" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="130" y="490" as="sourcePoint"/> + <mxPoint x="130" y="330" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="184" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="49.889999999999986" y="480" as="sourcePoint"/> + <mxPoint x="49.889999999999986" y="510" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="185" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="49.94" y="280" as="sourcePoint"/> + <mxPoint x="49.94" y="310" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="186" value="" style="endArrow=block;html=1;rounded=0;endFill=1;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="49.94" y="320" as="sourcePoint"/> + <mxPoint x="49.94" y="350" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="187" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" parent="1" vertex="1"> + <mxGeometry x="-10" y="500" width="10" height="20" as="geometry"/> + </mxCell> + <mxCell id="188" value="" style="endArrow=block;html=1;rounded=0;endFill=1;entryX=0.25;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-190" y="230" as="sourcePoint"/> + <mxPoint x="20" y="250" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-110" y="230"/> + <mxPoint x="-10" y="230"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="202" value="<font data-font-src="https://fonts.cdnfonts.com/css/cmu-serif-italic" face="CMU"><i>z<sub><font style="font-size: 10px;">0</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="70" y="250" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="203" value="<font data-font-src="https://fonts.cdnfonts.com/css/cmu-serif-italic" face="CMU"><i>z<sub><font style="font-size: 10px;">10</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="70" y="490" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="204" value="<font data-font-src="https://fonts.cdnfonts.com/css/cmu-serif-italic" face="CMU"><i>y<sub><font style="font-size: 10px;">0</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="70" y="40" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="205" value="<font data-font-src="https://fonts.cdnfonts.com/css/cmu-serif-italic" face="CMU"><i>y<span style="font-size: 10px;">2</span></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="70" y="160" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="207" value="<font face="CMU"><i>x<sub><font style="font-size: 10px;">0</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="70" y="-280" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="208" value="<font face="CMU"><i>x<sub><font style="font-size: 10px;">94</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="70" y="-40" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="213" value="Coefficients B" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="690" y="40" width="120" height="160" as="geometry"/> + </mxCell> + <mxCell id="214" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="160" as="sourcePoint"/> + <mxPoint x="810" y="160" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="215" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="80" as="sourcePoint"/> + <mxPoint x="810" y="80" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="217" value="Coefficients A" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="690" y="240" width="120" height="160" as="geometry"/> + </mxCell> + <mxCell id="218" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="360" as="sourcePoint"/> + <mxPoint x="810" y="360" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="219" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="280" as="sourcePoint"/> + <mxPoint x="810" y="280" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="220" value="Coefficients G" style="rounded=0;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;strokeWidth=2;fontFamily=Ubuntu Mono;fontSize=17;" parent="1" vertex="1"> + <mxGeometry x="690" y="440" width="120" height="280" as="geometry"/> + </mxCell> + <mxCell id="221" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="520" as="sourcePoint"/> + <mxPoint x="810" y="520" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="222" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="480" as="sourcePoint"/> + <mxPoint x="810" y="480" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="223" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="680" as="sourcePoint"/> + <mxPoint x="810" y="680" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="225" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;direction=west;" parent="1" vertex="1"> + <mxGeometry x="500" y="-150" width="280" height="20" as="geometry"/> + </mxCell> + <mxCell id="226" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="-260" as="sourcePoint"/> + <mxPoint x="650" y="-260" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="227" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="-220" as="sourcePoint"/> + <mxPoint x="650" y="-220" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="228" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="-20" as="sourcePoint"/> + <mxPoint x="650" y="-20" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="229" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="670" y="-40" as="sourcePoint"/> + <mxPoint x="670" y="-200" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="261" style="edgeStyle=none;shape=connector;curved=0;rounded=0;jumpStyle=arc;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="230" target="uwrRxOYGmB2LabIKb8In-34" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="530" y="580"/> + <mxPoint x="530" y="-20"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="230" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;direction=west;" parent="1" vertex="1"> + <mxGeometry x="500" y="570" width="280" height="20" as="geometry"/> + </mxCell> + <mxCell id="231" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="460" as="sourcePoint"/> + <mxPoint x="650" y="460" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="232" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="500" as="sourcePoint"/> + <mxPoint x="650" y="500" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="233" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="700" as="sourcePoint"/> + <mxPoint x="650" y="700" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="234" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="670" y="680" as="sourcePoint"/> + <mxPoint x="670" y="520" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="235" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;direction=west;" parent="1" vertex="1"> + <mxGeometry x="555" y="315" width="170" height="20" as="geometry"/> + </mxCell> + <mxCell id="237" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="260" as="sourcePoint"/> + <mxPoint x="650" y="260" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="238" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="390" as="sourcePoint"/> + <mxPoint x="650" y="390" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="240" value="" style="shape=trapezoid;perimeter=trapezoidPerimeter;whiteSpace=wrap;html=1;fixedSize=1;rotation=90;strokeWidth=2;direction=west;" parent="1" vertex="1"> + <mxGeometry x="555" y="115" width="170" height="20" as="geometry"/> + </mxCell> + <mxCell id="241" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="60" as="sourcePoint"/> + <mxPoint x="650" y="60" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="242" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="190" as="sourcePoint"/> + <mxPoint x="650" y="190" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="245" value="" style="endArrow=block;html=1;rounded=0;entryX=0;entryY=0.25;entryDx=0;entryDy=0;endFill=1;strokeWidth=2;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="690" y="124.5" as="sourcePoint"/> + <mxPoint x="650" y="124.5" as="targetPoint"/> + <Array as="points"/> + </mxGeometry> + </mxCell> + <mxCell id="250" value="<font face="CMU"><i>h<sub><font style="font-size: 10px;">0</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="690" y="-280" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="251" value="<font face="CMU"><i>h<sub><font style="font-size: 10px;">94</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="690" y="-40" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="252" value="<font face="CMU"><i>b<sub><font style="font-size: 10px;">0</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="690" y="40" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="253" value="<font face="CMU"><i>b<sub><font style="font-size: 10px;">2</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="690" y="160" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="254" value="<font face="CMU"><i>a<sub><font style="font-size: 10px;">1</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="690" y="240" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="255" value="<font face="CMU"><i>a<sub><font style="font-size: 10px;">2</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="690" y="360" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="256" value="<font face="CMU"><i>g<sub><font style="font-size: 10px;">0</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="690" y="440" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="257" value="<font face="CMU"><i>g<sub><font style="font-size: 10px;">10</font></sub></i></font>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=20;" parent="1" vertex="1"> + <mxGeometry x="690" y="680" width="40" height="40" as="geometry"/> + </mxCell> + <mxCell id="259" style="edgeStyle=none;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;rounded=0;curved=0;jumpStyle=arc;jumpSize=6;startArrow=none;startFill=0;" parent="1" source="141" target="164" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="270" y="125"/> + <mxPoint x="270" y="-20"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="260" style="edgeStyle=none;shape=connector;curved=0;rounded=0;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;jumpStyle=arc;" parent="1" source="uwrRxOYGmB2LabIKb8In-14" target="164" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="270" y="-140"/> + <mxPoint x="270" y="-20"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="262" style="edgeStyle=none;shape=connector;curved=0;rounded=0;jumpStyle=arc;html=1;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="235" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="480" y="-20" as="targetPoint"/> + <Array as="points"> + <mxPoint x="530" y="325"/> + <mxPoint x="530" y="-20"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="263" style="edgeStyle=none;shape=connector;curved=0;rounded=0;jumpStyle=arc;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="240" target="uwrRxOYGmB2LabIKb8In-34" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="530" y="125"/> + <mxPoint x="530" y="-20"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="264" style="edgeStyle=none;shape=connector;curved=0;rounded=0;jumpStyle=arc;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;endArrow=classic;" parent="1" source="225" target="uwrRxOYGmB2LabIKb8In-34" edge="1"> + <mxGeometry relative="1" as="geometry"> + <Array as="points"> + <mxPoint x="530" y="-140"/> + <mxPoint x="530" y="-20"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="267" value="I_Filtre" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="1" vertex="1" connectable="0"> + <mxGeometry x="389.99999999999994" y="-250.00000000000006" as="geometry"/> + </mxCell> + <mxCell id="268" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;edgeStyle=none;jumpStyle=arc;curved=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" target="164" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="370" y="-240" as="sourcePoint"/> + <mxPoint x="400" y="-210" as="targetPoint"/> + <Array as="points"> + <mxPoint x="370" y="-210"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="269" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;edgeStyle=none;jumpStyle=arc;curved=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="430" y="-280" as="sourcePoint"/> + <mxPoint x="470" y="-150" as="targetPoint"/> + <Array as="points"> + <mxPoint x="430" y="-210"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="270" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;edgeStyle=none;jumpStyle=arc;curved=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" target="137" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="400" y="790" as="sourcePoint"/> + <mxPoint x="-60" y="560" as="targetPoint"/> + <Array as="points"> + <mxPoint x="380" y="810"/> + <mxPoint x="-140" y="810"/> + <mxPoint x="-140" y="10"/> + <mxPoint y="10"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="271" value="" style="endArrow=classic;html=1;rounded=0;strokeColor=default;align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=11;fontColor=default;labelBackgroundColor=default;edgeStyle=none;jumpStyle=arc;curved=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" parent="1" target="175" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="400" y="790" as="sourcePoint"/> + <mxPoint x="36" y="36" as="targetPoint"/> + <Array as="points"> + <mxPoint x="380" y="810"/> + <mxPoint x="-140" y="810"/> + <mxPoint x="-140" y="220"/> + <mxPoint y="220"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="272" value="O_Y" style="edgeLabel;html=1;align=left;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="1" vertex="1" connectable="0"> + <mxGeometry x="-129.99823529411742" y="-9.999999999999773" as="geometry"/> + </mxCell> + <mxCell id="275" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="280" y="-10" as="sourcePoint"/> + <mxPoint x="300" y="-30" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="276" value="11" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="275" vertex="1" connectable="0"> + <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> + <mxPoint x="-5" y="-4" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="277" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="500" y="-10" as="sourcePoint"/> + <mxPoint x="520" y="-30" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="278" value="11" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="277" vertex="1" connectable="0"> + <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> + <mxPoint x="-15" y="-4" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="299" style="html=1;rounded=0;curved=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" parent="1" source="289" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="-920" y="-540" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-960" y="-560"/> + <mxPoint x="-940" y="-540"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="289" value="<font face="Ubuntu Mono">Address<br style="font-size: 17px;">Generator_y</font>" style="rounded=0;whiteSpace=wrap;html=1;fontSize=17;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="-1050" y="-660" width="120" height="80" as="geometry"/> + </mxCell> + <mxCell id="290" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="-1050" y="-610" width="10" height="20" as="geometry"/> + </mxCell> + <mxCell id="291" value="" style="endArrow=block;html=1;rounded=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endFill=1;" parent="1" target="289" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-1060" y="-740" as="sourcePoint"/> + <mxPoint x="-840" y="-540" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-1030" y="-740"/> + <mxPoint x="-1020" y="-730"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="292" value="I_initAddress_y" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0;rotation=0;" parent="291" vertex="1" connectable="0"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-41" y="-49" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="293" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endFill=1;" parent="1" target="289" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-1060" y="-770" as="sourcePoint"/> + <mxPoint x="-1050" y="-620.1700000000001" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-1010" y="-770"/> + <mxPoint x="-990" y="-750"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="294" value="I_incrAddress_y" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="293" vertex="1" connectable="0"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-71" y="-64" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="301" style="html=1;rounded=0;curved=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="-410" y="-540" as="targetPoint"/> + <mxPoint x="-450" y="-580" as="sourcePoint"/> + <Array as="points"> + <mxPoint x="-450" y="-560"/> + <mxPoint x="-430" y="-540"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="302" value="<span style="color: rgb(0, 0, 0); font-family: &quot;Ubuntu Mono&quot;; font-size: 14px; text-align: right; background-color: rgb(255, 255, 255);">O_processingDone_y</span>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> + <mxGeometry x="-930" y="-552" width="140" height="30" as="geometry"/> + </mxCell> + <mxCell id="303" value="<span style="color: rgb(0, 0, 0); font-family: &quot;Ubuntu Mono&quot;; font-size: 14px; text-align: right; background-color: rgb(255, 255, 255);">O_processingDone_z_b</span>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> + <mxGeometry x="-421" y="-552" width="160" height="30" as="geometry"/> + </mxCell> + <mxCell id="304" value="<font face="Ubuntu Mono">Address<br style="font-size: 17px;">Generator_z_a</font>" style="rounded=0;whiteSpace=wrap;html=1;fontSize=17;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="-800" y="-660" width="120" height="80" as="geometry"/> + </mxCell> + <mxCell id="305" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="-800" y="-610" width="10" height="20" as="geometry"/> + </mxCell> + <mxCell id="306" value="" style="endArrow=block;html=1;rounded=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endFill=1;" parent="1" target="304" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-810" y="-740" as="sourcePoint"/> + <mxPoint x="-590" y="-540" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-780" y="-740"/> + <mxPoint x="-770" y="-730"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="307" value="I_initAddress_z_a" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0;rotation=0;" parent="306" vertex="1" connectable="0"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-41" y="-49" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="308" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endFill=1;" parent="1" target="304" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-810" y="-770" as="sourcePoint"/> + <mxPoint x="-800" y="-620.1700000000001" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-760" y="-770"/> + <mxPoint x="-740" y="-750"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="309" value="I_incrAddress_z_a" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="308" vertex="1" connectable="0"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-71" y="-64" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="310" style="html=1;rounded=0;curved=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="-660" y="-540" as="targetPoint"/> + <mxPoint x="-700" y="-580" as="sourcePoint"/> + <Array as="points"> + <mxPoint x="-700" y="-560"/> + <mxPoint x="-680" y="-540"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="311" value="<span style="color: rgb(0, 0, 0); font-family: &quot;Ubuntu Mono&quot;; font-size: 14px; text-align: right; background-color: rgb(255, 255, 255);">O_processingDone_z_a</span>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> + <mxGeometry x="-671" y="-552" width="160" height="30" as="geometry"/> + </mxCell> + <mxCell id="312" value="" style="endArrow=none;html=1;rounded=0;" parent="1" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-150" y="310" as="sourcePoint"/> + <mxPoint x="-130" y="290" as="targetPoint"/> + </mxGeometry> + </mxCell> + <mxCell id="313" value="11" style="edgeLabel;html=1;align=left;verticalAlign=bottom;resizable=0;points=[];labelPosition=right;verticalLabelPosition=top;" parent="312" vertex="1" connectable="0"> + <mxGeometry x="0.5519" y="1" relative="1" as="geometry"> + <mxPoint x="5" y="-4" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="314" value="I_Filtre_coef" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="1" vertex="1" connectable="0"> + <mxGeometry x="469.99999999999994" y="-270.00000000000006" as="geometry"/> + </mxCell> + <mxCell id="316" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.arrow;dy=0;dx=10;notch=10;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> + <mxGeometry x="-1283.75" y="-500" width="67.5" height="30" as="geometry"/> + </mxCell> + <mxCell id="317" value="<font face="Ubuntu Mono">Address<br style="font-size: 17px;">Generator_x</font>" style="rounded=0;whiteSpace=wrap;html=1;fontSize=17;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;" parent="1" vertex="1"> + <mxGeometry x="-1310" y="-660" width="120" height="80" as="geometry"/> + </mxCell> + <mxCell id="318" value="" style="triangle;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;" parent="1" vertex="1"> + <mxGeometry x="-1310" y="-610" width="10" height="20" as="geometry"/> + </mxCell> + <mxCell id="319" style="html=1;rounded=0;curved=0;exitX=0.75;exitY=1;exitDx=0;exitDy=0;" parent="1" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="-1170" y="-540" as="targetPoint"/> + <mxPoint x="-1210" y="-580" as="sourcePoint"/> + <Array as="points"> + <mxPoint x="-1210" y="-560"/> + <mxPoint x="-1190" y="-540"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="320" value="<span style="color: rgb(0, 0, 0); font-family: &quot;Ubuntu Mono&quot;; font-size: 14px; text-align: right; background-color: rgb(255, 255, 255);">O_processingDone_x</span>" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;" parent="1" vertex="1"> + <mxGeometry x="-1180" y="-552" width="140" height="30" as="geometry"/> + </mxCell> + <mxCell id="321" value="" style="endArrow=block;html=1;rounded=0;entryX=0.25;entryY=0;entryDx=0;entryDy=0;endFill=1;" parent="1" target="317" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-1320" y="-740" as="sourcePoint"/> + <mxPoint x="-1100" y="-540" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-1290" y="-740"/> + <mxPoint x="-1280" y="-730"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="322" value="I_initAddress_x" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0;rotation=0;" parent="321" vertex="1" connectable="0"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-41" y="-49" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="323" value="" style="endArrow=block;html=1;rounded=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endFill=1;" parent="1" target="317" edge="1"> + <mxGeometry width="50" height="50" relative="1" as="geometry"> + <mxPoint x="-1320" y="-770" as="sourcePoint"/> + <mxPoint x="-1310" y="-620.1700000000001" as="targetPoint"/> + <Array as="points"> + <mxPoint x="-1270" y="-770"/> + <mxPoint x="-1250" y="-750"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="324" value="I_incrAddress_x" style="edgeLabel;html=1;align=right;verticalAlign=middle;resizable=0;points=[];fontFamily=Ubuntu Mono;fontSize=14;fontStyle=0" parent="323" vertex="1" connectable="0"> + <mxGeometry x="0.45" y="1" relative="1" as="geometry"> + <mxPoint x="-71" y="-64" as="offset"/> + </mxGeometry> + </mxCell> + <mxCell id="325" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.arrow;dy=0;dx=10;notch=10;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="-1030" y="-500" width="67.5" height="30" as="geometry"/> + </mxCell> + <mxCell id="326" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.arrow;dy=0;dx=10;notch=10;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> + <mxGeometry x="-780" y="-500" width="67.5" height="30" as="geometry"/> + </mxCell> + <mxCell id="327" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.arrow;dy=0;dx=10;notch=10;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1"> + <mxGeometry x="-523.75" y="-500" width="67.5" height="30" as="geometry"/> + </mxCell> + <mxCell id="329" style="edgeStyle=none;html=1;entryX=0.512;entryY=0.055;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="317" target="316" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="330" style="edgeStyle=none;html=1;entryX=0.587;entryY=-0.038;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="289" target="325" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="331" style="edgeStyle=none;html=1;entryX=0.583;entryY=-0.014;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="304" target="326" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="338" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;rounded=0;curved=0;" parent="1" source="334" target="179" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="210" y="260" as="targetPoint"/> + <Array as="points"> + <mxPoint x="406" y="-300"/> + <mxPoint x="250" y="-190"/> + <mxPoint x="250" y="180"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="334" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.arrow;dy=0;dx=10;notch=10;fillColor=#ffe6cc;strokeColor=#d79b00;" parent="1" vertex="1"> + <mxGeometry x="372.5" y="-350" width="67.5" height="30" as="geometry"/> + </mxCell> + <mxCell id="341" style="edgeStyle=none;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="335" target="235" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="344" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="335" target="179" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="335" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.arrow;dy=0;dx=10;notch=10;fillColor=#d5e8d4;strokeColor=#82b366;" parent="1" vertex="1"> + <mxGeometry x="372.5" y="-470" width="67.5" height="30" as="geometry"/> + </mxCell> + <mxCell id="342" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="336" target="141" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="343" style="edgeStyle=none;html=1;entryX=1;entryY=0.25;entryDx=0;entryDy=0;" parent="1" source="336" target="240" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="336" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.arrow;dy=0;dx=10;notch=10;fillColor=#e1d5e7;strokeColor=#9673a6;" parent="1" vertex="1"> + <mxGeometry x="372.5" y="-560" width="67.5" height="30" as="geometry"/> + </mxCell> + <mxCell id="345" style="edgeStyle=none;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="337" target="uwrRxOYGmB2LabIKb8In-14" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="346" style="edgeStyle=none;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" parent="1" source="337" target="225" edge="1"> + <mxGeometry relative="1" as="geometry"/> + </mxCell> + <mxCell id="337" value="" style="html=1;shadow=0;dashed=0;align=center;verticalAlign=middle;shape=mxgraph.arrows2.arrow;dy=0;dx=10;notch=10;fillColor=#f8cecc;strokeColor=#b85450;" parent="1" vertex="1"> + <mxGeometry x="372.5" y="-650" width="67.5" height="30" as="geometry"/> + </mxCell> + <mxCell id="339" style="edgeStyle=none;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;rounded=0;curved=0;" parent="1" target="230" edge="1"> + <mxGeometry relative="1" as="geometry"> + <mxPoint x="656.0000000000009" y="260" as="targetPoint"/> + <mxPoint x="410" y="-320" as="sourcePoint"/> + <Array as="points"> + <mxPoint x="410.0000000000009" y="-300"/> + <mxPoint x="566.0000000000009" y="-190"/> + <mxPoint x="566" y="390"/> + </Array> + </mxGeometry> + </mxCell> + <mxCell id="348" value="1:10" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=19;" vertex="1" parent="1"> + <mxGeometry x="810" y="-160" width="60" height="40" as="geometry"/> + </mxCell> + <mxCell id="349" value="2:9" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=19;" vertex="1" parent="1"> + <mxGeometry x="815" y="100" width="50" height="40" as="geometry"/> + </mxCell> + <mxCell id="350" value="2:9" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=19;" vertex="1" parent="1"> + <mxGeometry x="815" y="300" width="50" height="40" as="geometry"/> + </mxCell> + <mxCell id="351" value="1:10" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontSize=19;" vertex="1" parent="1"> + <mxGeometry x="810" y="560" width="60" height="40" as="geometry"/> + </mxCell> + </root> + </mxGraphModel> + </diagram> +</mxfile> \ No newline at end of file diff --git a/tp_vivado/proj/ECG.cache/sim/ssm.db b/tp_vivado/proj/ECG.cache/sim/ssm.db new file mode 100644 index 0000000..8724fa8 --- /dev/null +++ b/tp_vivado/proj/ECG.cache/sim/ssm.db @@ -0,0 +1,11 @@ +################################################################################ +# DONOT REMOVE THIS FILE +# Unified simulation database file for selected simulation model for IP +# +# File: ssm.db (Wed Mar 26 11:21:43 2025) +# +# This file is generated by the unified simulation automation and contains the +# selected simulation model information for the IP/BD instances. +# DONOT REMOVE THIS FILE +################################################################################ +clk_wiz_0, diff --git a/tp_vivado/proj/ECG.cache/wt/project.wpc b/tp_vivado/proj/ECG.cache/wt/project.wpc new file mode 100644 index 0000000..0161c5d --- /dev/null +++ b/tp_vivado/proj/ECG.cache/wt/project.wpc @@ -0,0 +1,3 @@ +version:1 +6d6f64655f636f756e7465727c4755494d6f6465:6 +eof: diff --git a/tp_vivado/proj/ECG.cache/wt/xsim.wdf b/tp_vivado/proj/ECG.cache/wt/xsim.wdf new file mode 100644 index 0000000..51d5206 --- /dev/null +++ b/tp_vivado/proj/ECG.cache/wt/xsim.wdf @@ -0,0 +1,4 @@ +version:1 +7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f6d6f6465:6265686176696f72616c:00:00 +7873696d:7873696d5c636f6d6d616e645f6c696e655f6f7074696f6e73:2d73696d5f74797065:64656661756c743a3a:00:00 +eof:2427094519 diff --git a/tp_vivado/proj/ECG.hw/ECG.lpr b/tp_vivado/proj/ECG.hw/ECG.lpr new file mode 100644 index 0000000..9f2f4bc --- /dev/null +++ b/tp_vivado/proj/ECG.hw/ECG.lpr @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Product Version: Vivado v2024.2 (64-bit) --> +<!-- --> +<!-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. --> +<!-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. --> + +<labtools version="1" minor="0"/> diff --git a/tp_vivado/proj/ECG.ip_user_files/README.txt b/tp_vivado/proj/ECG.ip_user_files/README.txt new file mode 100644 index 0000000..023052c --- /dev/null +++ b/tp_vivado/proj/ECG.ip_user_files/README.txt @@ -0,0 +1 @@ +The files in this directory structure are automatically generated and managed by Vivado. Editing these files is not recommended. diff --git a/tp_vivado/proj/ECG.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho b/tp_vivado/proj/ECG.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho new file mode 100644 index 0000000..c6b126b --- /dev/null +++ b/tp_vivado/proj/ECG.ip_user_files/ip/clk_wiz_0/clk_wiz_0.vho @@ -0,0 +1,103 @@ +-- +-- (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved. +-- +-- This file contains confidential and proprietary information +-- of Xilinx, Inc. and is protected under U.S. and +-- international copyright and other intellectual property +-- laws. +-- +-- DISCLAIMER +-- This disclaimer is not a license and does not grant any +-- rights to the materials distributed herewith. Except as +-- otherwise provided in a valid license issued to you by +-- Xilinx, and to the maximum extent permitted by applicable +-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +-- (2) Xilinx shall not be liable (whether in contract or tort, +-- including negligence, or under any other theory of +-- liability) for any loss or damage of any kind or nature +-- related to, arising under or in connection with these +-- materials, including for any direct, or any indirect, +-- special, incidental, or consequential loss or damage +-- (including loss of data, profits, goodwill, or any type of +-- loss or damage suffered as a result of any action brought +-- by a third party) even if such damage or loss was +-- reasonably foreseeable or Xilinx had been advised of the +-- possibility of the same. +-- +-- CRITICAL APPLICATIONS +-- Xilinx products are not designed or intended to be fail- +-- safe, or for use in any application requiring fail-safe +-- performance, such as life-support or safety devices or +-- systems, Class III medical devices, nuclear facilities, +-- applications related to the deployment of airbags, or any +-- other applications that could lead to death, personal +-- injury, or severe property or environmental damage +-- (individually and collectively, "Critical +-- Applications"). Customer assumes the sole risk and +-- liability of any use of Xilinx products in Critical +-- Applications, subject only to applicable laws and +-- regulations governing limitations on product liability. +-- +-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +-- PART OF THIS FILE AT ALL TIMES. +-- +------------------------------------------------------------------------------ +-- User entered comments +------------------------------------------------------------------------------ +-- None +-- +------------------------------------------------------------------------------ +-- Output Output Phase Duty Cycle Pk-to-Pk Phase +-- Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps) +------------------------------------------------------------------------------ +-- CLK_OUT1___100.000______0.000______50.0______151.366____132.063 +-- CLK_OUT2___200.000______0.000______50.0______132.221____132.063 +-- CLK_OUT3____12.000______0.000______50.0______231.952____132.063 +-- CLK_OUT4____50.000______0.000______50.0______174.353____132.063 +-- +------------------------------------------------------------------------------ +-- Input Clock Freq (MHz) Input Jitter (UI) +------------------------------------------------------------------------------ +-- __primary_________100.000____________0.010 + + +-- The following code must appear in the VHDL architecture header: +------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG +component clk_wiz_0 +port + (-- Clock in ports + clk_in1 : in std_logic; + -- Clock out ports + clk_out1 : out std_logic; + clk_out2 : out std_logic; + clk_out3 : out std_logic; + clk_out4 : out std_logic; + -- Status and control signals + reset : in std_logic; + locked : out std_logic + ); +end component; + +-- COMP_TAG_END ------ End COMPONENT Declaration ------------ +-- The following code must appear in the VHDL architecture +-- body. Substitute your own instance name and net names. +------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG +your_instance_name : clk_wiz_0 + port map ( + + -- Clock in ports + clk_in1 => clk_in1, + -- Clock out ports + clk_out1 => clk_out1, + clk_out2 => clk_out2, + clk_out3 => clk_out3, + clk_out4 => clk_out4, + -- Status and control signals + reset => reset, + locked => locked + ); +-- INST_TAG_END ------ End INSTANTIATION Template ------------ diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/compile.bat b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/compile.bat new file mode 100644 index 0000000..76ef341 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/compile.bat @@ -0,0 +1,27 @@ +@echo off +REM **************************************************************************** +REM Vivado (TM) v2024.2 (64-bit) +REM +REM Filename : compile.bat +REM Simulator : AMD Vivado Simulator +REM Description : Script for compiling the simulation design source files +REM +REM Generated by Vivado on Wed Mar 26 12:19:40 +0100 2025 +REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 +REM +REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +REM Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +REM +REM usage: compile.bat +REM +REM **************************************************************************** +REM compile VHDL design sources +echo "xvhdl --incr --relax -prj tb_firUnit_vhdl.prj" +call xvhdl --incr --relax -prj tb_firUnit_vhdl.prj -log xvhdl.log +call type xvhdl.log > compile.log +if "%errorlevel%"=="1" goto END +if "%errorlevel%"=="0" goto SUCCESS +:END +exit 1 +:SUCCESS +exit 0 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/elaborate.bat b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/elaborate.bat new file mode 100644 index 0000000..17aad06 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/elaborate.bat @@ -0,0 +1,26 @@ +@echo off +REM **************************************************************************** +REM Vivado (TM) v2024.2 (64-bit) +REM +REM Filename : elaborate.bat +REM Simulator : AMD Vivado Simulator +REM Description : Script for elaborating the compiled design +REM +REM Generated by Vivado on Wed Mar 26 12:19:42 +0100 2025 +REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 +REM +REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +REM Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +REM +REM usage: elaborate.bat +REM +REM **************************************************************************** +REM elaborate design +echo "xelab --incr --debug typical --relax --mt 2 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit -log elaborate.log" +call xelab --incr --debug typical --relax --mt 2 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit -log elaborate.log +if "%errorlevel%"=="0" goto SUCCESS +if "%errorlevel%"=="1" goto END +:END +exit 1 +:SUCCESS +exit 0 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/elaborate.log b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/elaborate.log new file mode 100644 index 0000000..515bcc8 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/elaborate.log @@ -0,0 +1,19 @@ +Vivado Simulator v2024.2.0 +Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +Running: C:/Xilinx/Vivado/2024.2/bin/unwrapped/win64.o/xelab.exe --incr --debug typical --relax --mt 2 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit -log elaborate.log +Using 2 slave threads. +Starting static elaboration +Completed static elaboration +Starting simulation data flow analysis +Completed simulation data flow analysis +Time Resolution for simulation is 1ps +Compiling package std.standard +Compiling package std.textio +Compiling package ieee.std_logic_1164 +Compiling package ieee.numeric_std +Compiling architecture archi_operativeunit of entity xil_defaultlib.controlUnit [controlunit_default] +Compiling architecture arch_operativeunit of entity xil_defaultlib.operativeUnit [operativeunit_default] +Compiling architecture archi_firunit of entity xil_defaultlib.firUnit [firunit_default] +Compiling architecture archi_tb_firunit of entity xil_defaultlib.tb_firunit +Built simulation snapshot tb_firUnit_behav diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/simulate.bat b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/simulate.bat new file mode 100644 index 0000000..2cdac6a --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/simulate.bat @@ -0,0 +1,26 @@ +@echo off +REM **************************************************************************** +REM Vivado (TM) v2024.2 (64-bit) +REM +REM Filename : simulate.bat +REM Simulator : AMD Vivado Simulator +REM Description : Script for simulating the design by launching the simulator +REM +REM Generated by Vivado on Wed Mar 26 11:45:26 +0100 2025 +REM SW Build 5239630 on Fri Nov 08 22:35:27 MST 2024 +REM +REM Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. +REM Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. +REM +REM usage: simulate.bat +REM +REM **************************************************************************** +REM simulate design +echo "xsim tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch tb_firUnit.tcl -log simulate.log" +call xsim tb_firUnit_behav -key {Behavioral:sim_1:Functional:tb_firUnit} -tclbatch tb_firUnit.tcl -log simulate.log +if "%errorlevel%"=="0" goto SUCCESS +if "%errorlevel%"=="1" goto END +:END +exit 1 +:SUCCESS +exit 0 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/simulate.log b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/simulate.log new file mode 100644 index 0000000..3a14ee6 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/simulate.log @@ -0,0 +1 @@ +Time resolution is 1 ps diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit.tcl b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit.tcl new file mode 100644 index 0000000..1094e45 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit.tcl @@ -0,0 +1,11 @@ +set curr_wave [current_wave_config] +if { [string length $curr_wave] == 0 } { + if { [llength [get_objects]] > 0} { + add_wave / + set_property needs_save false [current_wave_config] + } else { + send_msg_id Add_Wave-1 WARNING "No top level signals found. Simulator will start without a wave window. If you want to open a wave window go to 'File->New Waveform Configuration' or type 'create_wave_config' in the TCL console." + } +} + +run 1000ns diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit_behav.wdb new file mode 100644 index 0000000000000000000000000000000000000000..240b87084ebcaadb40beb13f3f474994f3ffdcc7 GIT binary patch literal 36768 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 literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj new file mode 100644 index 0000000..0107b4e --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/tb_firUnit_vhdl.prj @@ -0,0 +1,9 @@ +# compile vhdl design source files +vhdl xil_defaultlib \ +"../../../../../src/hdl/controlUnit.vhd" \ +"../../../../../src/hdl/operativeUnit.vhd" \ +"../../../../../src/hdl/firUnit.vhd" \ +"../../../../../src/hdl/tb_firUnit.vhd" \ + +# Do not sort compile order +nosort diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xelab.pb b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xelab.pb new file mode 100644 index 0000000000000000000000000000000000000000..cb33821cb848f406541364fbad7d42619dbd4469 GIT binary patch literal 1963 zcmd<`<ziDUR!}YG5@3;HHZe5N;w;Y0EzL<R$uBYz;t~kUEK5wuR|tlSadUB&85tOv z=o#r5M6sI~>l#~{n`bZ-uvD;2U}O+r;+n<C#SAtM*`!*oYUlid%A(Blj1mPyOA9ky zBLgENg^0|Y%)AO61<$->Jq5>{9EBi|f?|cB)Z)~lveXnkE`%<S29Pcj1;>=K#JuFx z6b0YR<f429m(;S%<kVt3rXV}7g^7zNs5CDxGcVl==51qRV`RskXXHA==xn7Aah*OS z2=pPI)=$dJ(=W{{FG?&ZNKMf%&&)G3(aYDbNX<!1(o3yKRnXPV%u6m((A7;zO)5=S zD5)&SOis*E(A6zU%}K0K(ACW?Q7}@_^--wE%!yA)O-n4zDapx90*Mr-CYKhaW)^_h z6$QBpy1K=Ai3P<O`6UV^N%3i!MWK0_CGknA8Hr_Ry7dt93c5M@=?Wm{<QFBDr0Riq zka#jNu|y6CCob{O;>^5s1=V7O;+({?RE3g^qSV9`NJ=m^H%AT<W-dk}s414lsHVsS zmn0UIfD9@wNi4}shTEN)p9fA<#wJEcMnO$6wLmt-nM>9=Ker$!wInq~0f#Y07RYH6 zVvMn+8L~0HT<QqNKvHaGex5=~Vo9PxT26ksLSkNGPGxZ>)QcvDSloq@mi@RiklaPk zL?d%c3=@qlO_7}##HAXNnVSkq;rThGB_QXe<rgVH^Bjnq3D1qjCMHP68L@IP8x|Bp zJZ@rUfNZKa7ca=2pxgwCPe`y^AUnoLj7y{-F*!RiJyoH&Bt@^dBrz`~u_y&%oT&kd zBRvTlC&DF!Y+OldMM-8pR>Oh_8z##o4Kpk=H8oYQxFjV$CqF$iIo{CF%mk~c{)A1H z;*vlyHLo-`wJ0+=zPJRtuO~4QHZzthI<Y7@BeNtmxumoxRRPS2&o4+VN-W7NOD)aI zEK$f$Q%KD#$t<Zv&!oxuc_l^pIiOsu5Dn#kbij&%SgbysN`$i#xZ=PrL3S3gu7W!r z;x0Isu*+JAaG5`sFNVu9L1h`pc-%n+E$kGc(=v-dD)9$V1>uNu=5oa14oI;HvH-VJ z5NfbSPdJyXQ)y;S333*O7u(=^P>R{e+yXfx3vmfR3<ZTaq&$ZhZER_RoU8e`xLos6 N6oOKd^NUgh7y;%yPpkj{ literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/Compile_Options.txt b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/Compile_Options.txt new file mode 100644 index 0000000..693a583 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/Compile_Options.txt @@ -0,0 +1 @@ +--incr --debug "typical" --relax --mt "2" -L "xil_defaultlib" -L "secureip" -L "xpm" --snapshot "tb_firUnit_behav" "xil_defaultlib.tb_firUnit" -log "elaborate.log" diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/TempBreakPointFile.txt b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/TempBreakPointFile.txt new file mode 100644 index 0000000..fdbc612 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/TempBreakPointFile.txt @@ -0,0 +1 @@ +Breakpoint File Version 1.0 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj new file mode 100644 index 0000000000000000000000000000000000000000..b6f966d32aafbe63ee11f11e889cf95722c61ea4 GIT binary patch literal 23363 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 literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c new file mode 100644 index 0000000..9d9d7cc --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.c @@ -0,0 +1,143 @@ +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ Copyright (c) 2003-2020 Xilinx, Inc. */ +/* / / All Right Reserved. */ +/* /---/ /\ */ +/* \ \ / \ */ +/* \___\/\___\ */ +/**********************************************************************/ + +#if defined(_WIN32) + #include "stdio.h" + #define IKI_DLLESPEC __declspec(dllimport) +#else + #define IKI_DLLESPEC +#endif +#include "iki.h" +#include <string.h> +#include <math.h> +#ifdef __GNUC__ +#include <stdlib.h> +#else +#include <malloc.h> +#define alloca _alloca +#endif +/**********************************************************************/ +/* ____ ____ */ +/* / /\/ / */ +/* /___/ \ / */ +/* \ \ \/ */ +/* \ \ Copyright (c) 2003-2020 Xilinx, Inc. */ +/* / / All Right Reserved. */ +/* /---/ /\ */ +/* \ \ / \ */ +/* \___\/\___\ */ +/**********************************************************************/ + +#if defined(_WIN32) + #include "stdio.h" + #define IKI_DLLESPEC __declspec(dllimport) +#else + #define IKI_DLLESPEC +#endif +#include "iki.h" +#include <string.h> +#include <math.h> +#ifdef __GNUC__ +#include <stdlib.h> +#else +#include <malloc.h> +#define alloca _alloca +#endif +typedef void (*funcp)(char *, char *); +extern int main(int, char**); +IKI_DLLESPEC extern void execute_25(char*, char *); +IKI_DLLESPEC extern void execute_26(char*, char *); +IKI_DLLESPEC extern void execute_27(char*, char *); +IKI_DLLESPEC extern void execute_28(char*, char *); +IKI_DLLESPEC extern void execute_31(char*, char *); +IKI_DLLESPEC extern void execute_32(char*, char *); +IKI_DLLESPEC extern void execute_33(char*, char *); +IKI_DLLESPEC extern void execute_34(char*, char *); +IKI_DLLESPEC extern void execute_35(char*, char *); +IKI_DLLESPEC extern void execute_36(char*, char *); +IKI_DLLESPEC extern void execute_37(char*, char *); +IKI_DLLESPEC extern void execute_38(char*, char *); +IKI_DLLESPEC extern void execute_39(char*, char *); +IKI_DLLESPEC extern void execute_40(char*, char *); +IKI_DLLESPEC extern void execute_41(char*, char *); +IKI_DLLESPEC extern void execute_42(char*, char *); +IKI_DLLESPEC extern void execute_43(char*, char *); +IKI_DLLESPEC extern void execute_44(char*, char *); +IKI_DLLESPEC extern void execute_45(char*, char *); +IKI_DLLESPEC extern void execute_48(char*, char *); +IKI_DLLESPEC extern void execute_49(char*, char *); +IKI_DLLESPEC extern void execute_50(char*, char *); +IKI_DLLESPEC extern void execute_51(char*, char *); +IKI_DLLESPEC extern void execute_52(char*, char *); +IKI_DLLESPEC extern void execute_53(char*, char *); +IKI_DLLESPEC extern void execute_54(char*, char *); +IKI_DLLESPEC extern void execute_55(char*, char *); +IKI_DLLESPEC extern void execute_56(char*, char *); +IKI_DLLESPEC extern void execute_57(char*, char *); +IKI_DLLESPEC extern void execute_58(char*, char *); +IKI_DLLESPEC extern void execute_59(char*, char *); +IKI_DLLESPEC extern void execute_60(char*, char *); +IKI_DLLESPEC extern void execute_61(char*, char *); +IKI_DLLESPEC extern void execute_62(char*, char *); +IKI_DLLESPEC extern void execute_63(char*, char *); +IKI_DLLESPEC extern void transaction_0(char*, char*, unsigned, unsigned, unsigned); +IKI_DLLESPEC extern void vhdl_transfunc_eventcallback(char*, char*, unsigned, unsigned, unsigned, char *); +funcp funcTab[37] = {(funcp)execute_25, (funcp)execute_26, (funcp)execute_27, (funcp)execute_28, (funcp)execute_31, (funcp)execute_32, (funcp)execute_33, (funcp)execute_34, (funcp)execute_35, (funcp)execute_36, (funcp)execute_37, (funcp)execute_38, (funcp)execute_39, (funcp)execute_40, (funcp)execute_41, (funcp)execute_42, (funcp)execute_43, (funcp)execute_44, (funcp)execute_45, (funcp)execute_48, (funcp)execute_49, (funcp)execute_50, (funcp)execute_51, (funcp)execute_52, (funcp)execute_53, (funcp)execute_54, (funcp)execute_55, (funcp)execute_56, (funcp)execute_57, (funcp)execute_58, (funcp)execute_59, (funcp)execute_60, (funcp)execute_61, (funcp)execute_62, (funcp)execute_63, (funcp)transaction_0, (funcp)vhdl_transfunc_eventcallback}; +const int NumRelocateId= 37; + +void relocate(char *dp) +{ + iki_relocate(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc", (void **)funcTab, 37); + iki_vhdl_file_variable_register(dp + 16080); + iki_vhdl_file_variable_register(dp + 16136); + + + /*Populate the transaction function pointer field in the whole net structure */ +} + +void sensitize(char *dp) +{ + iki_sensitize(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc"); +} + +void simulate(char *dp) +{ + iki_schedule_processes_at_time_zero(dp, "xsim.dir/tb_firUnit_behav/xsim.reloc"); + // Initialize Verilog nets in mixed simulation, for the cases when the value at time 0 should be propagated from the mixed language Vhdl net + iki_execute_processes(); + + // Schedule resolution functions for the multiply driven Verilog nets that have strength + // Schedule transaction functions for the singly driven Verilog nets that have strength + +} +#include "iki_bridge.h" +void relocate(char *); + +void sensitize(char *); + +void simulate(char *); + +extern SYSTEMCLIB_IMP_DLLSPEC void local_register_implicit_channel(int, char*); +extern SYSTEMCLIB_IMP_DLLSPEC int xsim_argc_copy ; +extern SYSTEMCLIB_IMP_DLLSPEC char** xsim_argv_copy ; + +int main(int argc, char **argv) +{ + iki_heap_initialize("ms", "isimmm", 0, 2147483648) ; + iki_set_xsimdir_location_if_remapped(argc, argv) ; + iki_set_sv_type_file_path_name("xsim.dir/tb_firUnit_behav/xsim.svtype"); + iki_set_crvs_dump_file_path_name("xsim.dir/tb_firUnit_behav/xsim.crvsdump"); + void* design_handle = iki_create_design("xsim.dir/tb_firUnit_behav/xsim.mem", (void *)relocate, (void *)sensitize, (void *)simulate, (void*)0, 0, isimBridge_getWdbWriter(), 0, argc, argv); + iki_set_rc_trial_count(100); + (void) design_handle; + return iki_simulate_design(); +} diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj new file mode 100644 index 0000000000000000000000000000000000000000..36cceccaa0489ae81dd2723bb94a6285d34321a1 GIT binary patch literal 4199 zcmYdkV`l(?BkT+eULXbo3xi%sYDEc{4IvyD85ndJ85q8>K=|Se3=9ek0SS63i6w~; zAutJ2m&3%saElepWl&{cU~phaIG~qQTnrJxO*SwD9MCI5HE;t11H&3-R6Pz10S<Z< zsOmHr7#L!pZiA_IU@&mdD?n9ez`(%J!otAd1MxBg57>PM4*DiAT@c!Vfq`KQhIs)F zVZk2FZ!|nQPdn}edCjL6>`#wgQINL(VA7+v`+^+<gGaY1SnQfdZ#RcM1H=Do6Fi!a zXhg>y2AhDa11y0l3^5KO3AQ()^R!3jwHF{`9d|M?Ff=&s0I@xKML}-y=;hU6U|@jg z^6323c@xU)<puc~&WV64f(mt(sCab7s5l&VQLzA<*Xg2SaNI=&6s8Ow$6ZtuK%zdq zyix!E|M%%-wfX=5zelg=$A2J-w*hY4&J;KkYI5_Di0HV(6OaJNq)|+M2vihj=IW(n z7U`EH#iwN!h2~|J#3!X@B$nxeWr|XB@{<`di!*a`a~X1r85qE#xYZYzl~fj_G7wak zTvS$^Qkq*p$h_RtTn2EShxw3^jhTVXiOGO5fq{XMg^_{935f>DErQ5_)VqKP1_lNY z9nHW1&YK{*f`NfS1ms2r1_l#G1_l`h1_pO$XDbDb3JbG%GZWqN%sgWw-QujAEZw5i zGD95&r_#)v5{0Bn1>ej(_i){CGZTe^qWrAX<PuE<Gd&|c0|p@m1_n+B1_l-eNd^W6 zUNB3Zfq?;3uCXxaGB7YmfW^GwvVjZ?V6`j^NpP_Y1_lNxu(~`31_o&`tAzpLLKcSU zaCP(GtR)N#46<N#>lqjr<iM<LaM?W!3=AMwurM5ki=70Qv>=zBXJBAZ1nUrDgt=LQ zk%2)8ET+uJz@Q9fX)-b}sDN3Z00k8dj0_wM3=C=v3=E760t^fc>R=YghoC&p$N<XV znqV;yUkl6vl^NP#7N}4Fl`M=5pi&VOHjE4&3=9l<VA%i$1_pgF3skUxbTKj{FfcF} zg2g}~WCUgvFfcF}gIS>X1QoZ844|?DR7x^3bTBY5n1N*{FfcHfgIO~e7#KiyGcqh- zU|_HWi>+W_V6XzSKsAFkm<1{XZNRJp3=9mmVAcr+1_nDY>jDD<gFTpa16<aF!r%b| z1A`-23{;ppfmt6I7#N(vtRK)c$Oux(;0hMwU}Ru$1G5Ae85rEbEKt~k!hw-Nfsuj1 z6D$S_aZuI5%mAu9AS_VW^D{6oFoRPxL<|%Q5Edw9Lu5hm0TBbGa0m+&GZ0x&j6%df zaRgz3Vg(|rmzJ3W%Euu4|NUoRNM{7){CGpXWRM61gA0em60kB*oHH>(#L-ERiJ&|P zR>M%7nOmBZSdt3Li4c+8#7t0fX8^?`L<G6D05X)B5tL6sc?n@Qa!Y{;6dH^gjHqP= z0|Rm^0aWQTgA79$0cIh$5I|wf%m_*oU@16(+&TbN(9DdWFoR2j8OSXIHn4j@X_p5q zhfILV2M`||;*6ji0OBEVT4`Q#NFu0AU|<0G3xpy050uwIE`*4Hasf;iL<E$wP(`v~ zTn30)3=H)cA}diu;^Sel0TNaKyMTe=D2M~a5WDU}c_0cR!i5yJ5D|S0kuVIA5)6?Z z43U)>B8TB3Fc+S~5V?sV@&rTVJ%-3H3=vj{XTYT<ged@_kVK?0MAR@u3^7D(Fhtxj zM1n9xVlhNAFhq(mMCvd^Ix$41V2I4e5LtyGvK2$*0EWnE43TRXA`dY{-e8D)#}Hux zWou9(WPqgvUJMZl3=w4v5j_kMOAHYg43Qudk$h$b21se5QdL#OP@I}qoLQ1tm5MCr zSDG6HYEvbaq<W?>#K&jm7Q|;}XU4<JQiM=hMoLaRs2GkfODxJvOv*`(FG@|%EG|hc zLehw^1);MzIU_ZtG$%E_peR2%wYWI7I6ko?z9cg@HNGmfC?838YDH>tX$g`-B)N># z#De(Dyv&l!#2k<>kjzgli3e2&DVas_Ir+(nC7Jno@tJAyMX9-o1qG?d{whu_i7zgT z2ek?zekn*S$%xNO%uPkI38V<rB8&$$32`VZ&dhZx%1lX5jZaT42~SB1FUmv>h~%Qw z#FEtbl+@zP^gJ}fi<09@iZT;(;*;}B^Gc8<p_LI#8!SAGOc~%zGX&Ed!L)!gjSUe@ zBLveJ!8AcI5#|~r%r!=sYm8*BC0v_{0fLFJ%>-ea3BooLgl#4W+e{GVnjp+IMVM=f zFxM1et|`J?Q-ryu2y;ylzA#1j!W3bfDZ(~0gl%RB+sqKQnHe*b6eZ>rCnkealmP=c Z3xI_{wPJi~S!!NMa$-(SQetv80{}?edwu`_ literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.dbg new file mode 100644 index 0000000000000000000000000000000000000000..40c1943b01851ced4ffcc01aa6e99d6aa0d4e65c GIT binary patch literal 17640 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 literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.mem new file mode 100644 index 0000000000000000000000000000000000000000..824ec524056afb6e64e5662c7658009549776ecd GIT binary patch literal 4746 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 IEWdR=0ID!YqyPW_ literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.reloc new file mode 100644 index 0000000000000000000000000000000000000000..832c3ae4e619ee3b0406357353c4a272ecbbcfe7 GIT binary patch literal 1963 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 H%JLxqR6#ze literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx new file mode 100644 index 0000000..b4d92e1 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rlx @@ -0,0 +1,12 @@ + +{ + crc : 3343777929024806533 , + ccp_crc : 0 , + cmdline : " --incr --debug typical --relax --mt 2 -L xil_defaultlib -L secureip -L xpm --snapshot tb_firUnit_behav xil_defaultlib.tb_firUnit" , + buildDate : "Nov 8 2024" , + buildTime : "22:36:57" , + linkCmd : "C:\\Xilinx\\Vivado\\2024.2\\data\\..\\tps\\mingw\\6.2.0\\win64.o\\nt\\bin\\gcc.exe -Wa,-W -O -Wl,--stack,104857600 -o \"xsim.dir/tb_firUnit_behav/xsimk.exe\" \"xsim.dir/tb_firUnit_behav/obj/xsim_0.win64.obj\" \"xsim.dir/tb_firUnit_behav/obj/xsim_1.win64.obj\" -L\"C:\\Xilinx\\Vivado\\2024.2\\lib\\win64.o\" -lxv_simulator_kernel -lxv_simbridge_kernel" , + aggregate_nets : + [ + ] +} \ No newline at end of file diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.rtti new file mode 100644 index 0000000000000000000000000000000000000000..658a3b63e8814748be2f346d2049650cc20084aa GIT binary patch literal 903 zcma#Z%*o8FQ1A@S%vA`93~*I&^Yn35FfcG=U|=}^=y5tX0|SFTGXsMc0|Nsy1H*#g z5SMr#e|Jx31||juFlJ_8VBln6U{DWLXHbt&XHYj#XHYj(XHbt)XHXAUXHfT1XHfT0 zXHeHwXJBMtVDLsVDU>p!6c`v7SQ!`=_&J7z208kGox{Mu!0`Y7|NkJX92poG1dtsa zALi;D;vWQ7$jGn&>>iLpkY7MFNHYlk`~Uy{-2eaoZ-cruB)+&Lu_P6&52Tirfq?-O zGU1M%A@RYEz5zb248bA(L9X!;3;{v@&aT11o__A}KK}jz@sUuONDP^%ct-|LKhF?H zmmt^RU@X#3P_0oIazPCKp&<dGAq-#_xca%kTmkZhIn3Lh?tZQ=U`G?<S!HNwX6BWo zrl%Ig8ykVOGB7YS{Qv*I9%M2o?mz)rl$xGdT#{PkmYI_pUjbGIvH=t<AZ2XOqyY-b zI0goAFmr)8(6|8wEmor{@frmRd64l$8C8YXD3B4@jDn>oPrndXcUMS40XZC&qBKAp t1_p*AD7_a---Xh0AVV1#7_LBRZjhT97#Q@RbS0EN0;Tyuxrc#)0RUoVtbzal literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.svtype b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.svtype new file mode 100644 index 0000000000000000000000000000000000000000..afe268b949b6573452c27d3ab530278d3133843d GIT binary patch literal 12 Kcmd;JKmY&$Yyb%W literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.type new file mode 100644 index 0000000000000000000000000000000000000000..a912ad1e6e2b938975fd34f4129584ad25cbd2b7 GIT binary patch literal 7424 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 FJ^-m=iiH3G literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsim.xdbg new file mode 100644 index 0000000000000000000000000000000000000000..585b6b7a5364b5770f630bf9ce452aff5c2832a2 GIT binary patch literal 84288 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 b7QR0~9bRbr8k@WXsKbj#-hzO91XLaX)=RK_ literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini new file mode 100644 index 0000000..359171a --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimSettings.ini @@ -0,0 +1,50 @@ +[General] +ARRAY_DISPLAY_LIMIT=512 +RADIX=hex +TIME_UNIT=ns +TRACE_LIMIT=2147483647 +VHDL_ENTITY_SCOPE_FILTER=true +VHDL_PACKAGE_SCOPE_FILTER=false +VHDL_BLOCK_SCOPE_FILTER=true +VHDL_PROCESS_SCOPE_FILTER=false +VHDL_PROCEDURE_SCOPE_FILTER=false +VERILOG_MODULE_SCOPE_FILTER=true +VERILOG_PACKAGE_SCOPE_FILTER=false +VERILOG_BLOCK_SCOPE_FILTER=false +VERILOG_TASK_SCOPE_FILTER=false +VERILOG_PROCESS_SCOPE_FILTER=false +INPUT_OBJECT_FILTER=true +OUTPUT_OBJECT_FILTER=true +INOUT_OBJECT_FILTER=true +INTERNAL_OBJECT_FILTER=true +CONSTANT_OBJECT_FILTER=true +VARIABLE_OBJECT_FILTER=true +INPUT_PROTOINST_FILTER=true +OUTPUT_PROTOINST_FILTER=true +INOUT_PROTOINST_FILTER=true +INTERNAL_PROTOINST_FILTER=true +CONSTANT_PROTOINST_FILTER=true +VARIABLE_PROTOINST_FILTER=true +SCOPE_NAME_COLUMN_WIDTH=140 +SCOPE_DESIGN_UNIT_COLUMN_WIDTH=193 +SCOPE_BLOCK_TYPE_COLUMN_WIDTH=102 +OBJECT_NAME_COLUMN_WIDTH=223 +OBJECT_VALUE_COLUMN_WIDTH=59 +OBJECT_DATA_TYPE_COLUMN_WIDTH=90 +PROCESS_NAME_COLUMN_WIDTH=75 +PROCESS_TYPE_COLUMN_WIDTH=75 +FRAME_INDEX_COLUMN_WIDTH=75 +FRAME_NAME_COLUMN_WIDTH=75 +FRAME_FILE_NAME_COLUMN_WIDTH=75 +FRAME_LINE_NUM_COLUMN_WIDTH=75 +LOCAL_NAME_COLUMN_WIDTH=75 +LOCAL_VALUE_COLUMN_WIDTH=75 +LOCAL_DATA_TYPE_COLUMN_WIDTH=0 +PROTO_NAME_COLUMN_WIDTH=0 +PROTO_VALUE_COLUMN_WIDTH=0 +INPUT_LOCAL_FILTER=1 +OUTPUT_LOCAL_FILTER=1 +INOUT_LOCAL_FILTER=1 +INTERNAL_LOCAL_FILTER=1 +CONSTANT_LOCAL_FILTER=1 +VARIABLE_LOCAL_FILTER=1 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimcrash.log b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimcrash.log new file mode 100644 index 0000000..e69de29 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk.exe b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimk.exe new file mode 100644 index 0000000000000000000000000000000000000000..8da1558e1852cc743cd7c737bebd5d2a5185f5af GIT binary patch literal 83293 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 V50?$Or8y;;1v#K$541v<0RXiCBxe8s literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log new file mode 100644 index 0000000..2eae4ff --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/tb_firUnit_behav/xsimkernel.log @@ -0,0 +1,7 @@ +Running: xsim.dir/tb_firUnit_behav/xsimk.exe -simmode gui -wdb tb_firUnit_behav.wdb -simrunnum 0 -socket 49669 +Design successfully loaded +Design Loading Memory Usage: 28544 KB (Peak: 28544 KB) +Design Loading CPU Usage: 764 ms +Simulation completed +Simulation Memory Usage: 29308 KB (Peak: 29308 KB) +Simulation CPU Usage: 827 ms diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/controlunit.vdb new file mode 100644 index 0000000000000000000000000000000000000000..61b4cdc4b0f8d2428f91981c4661f311c52119d8 GIT binary patch literal 14548 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 M1qcI!186@Z0Fq0syZ`_I literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/firunit.vdb new file mode 100644 index 0000000000000000000000000000000000000000..3dcce5736927d7a2762a5b811787dd25ad5e3bf7 GIT binary patch literal 15686 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 literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/operativeunit.vdb new file mode 100644 index 0000000000000000000000000000000000000000..523ecbacf1e1c8f44aee8286ad17d0dcb1f69c72 GIT binary patch literal 34694 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	^Jw@$QHsl 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 S319+R6@UaG*g+^qo*4kee@-?4 literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/tb_firunit.vdb new file mode 100644 index 0000000000000000000000000000000000000000..a4f866972d247f799be9c445af3021f454a40c5c GIT binary patch literal 6154 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 literal 0 HcmV?d00001 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx new file mode 100644 index 0000000..54e8b15 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.dir/xil_defaultlib/xil_defaultlib.rlx @@ -0,0 +1,8 @@ +0.7 +2020.2 +Nov 8 2024 +22:36:57 +C:/Users/Mouthieu.MB-TUF/Documents/cours-et-projets/imt/medcon/tp-ecg-etudiant-m23bossa/tp_vivado/src/hdl/controlUnit.vhd,1742987636,vhdl,C:/Users/Mouthieu.MB-TUF/Documents/cours-et-projets/imt/medcon/tp-ecg-etudiant-m23bossa/tp_vivado/src/hdl/firUnit.vhd,,,controlunit,,,,,,,, +C:/Users/Mouthieu.MB-TUF/Documents/cours-et-projets/imt/medcon/tp-ecg-etudiant-m23bossa/tp_vivado/src/hdl/firUnit.vhd,1742984448,vhdl,C:/Users/Mouthieu.MB-TUF/Documents/cours-et-projets/imt/medcon/tp-ecg-etudiant-m23bossa/tp_vivado/src/hdl/tb_firUnit.vhd,,,firunit,,,,,,,, +C:/Users/Mouthieu.MB-TUF/Documents/cours-et-projets/imt/medcon/tp-ecg-etudiant-m23bossa/tp_vivado/src/hdl/operativeUnit.vhd,1742987971,vhdl,C:/Users/Mouthieu.MB-TUF/Documents/cours-et-projets/imt/medcon/tp-ecg-etudiant-m23bossa/tp_vivado/src/hdl/firUnit.vhd,,,operativeunit,,,,,,,, +C:/Users/Mouthieu.MB-TUF/Documents/cours-et-projets/imt/medcon/tp-ecg-etudiant-m23bossa/tp_vivado/src/hdl/tb_firUnit.vhd,1742984692,vhdl,,,,tb_firunit,,,,,,,, diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.ini b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.ini new file mode 100644 index 0000000..e2f5709 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.ini @@ -0,0 +1,489 @@ +std=$RDI_DATADIR/xsim/vhdl/std +ieee=$RDI_DATADIR/xsim/vhdl/ieee +ieee_proposed=$RDI_DATADIR/xsim/vhdl/ieee_proposed +vl=$RDI_DATADIR/xsim/vhdl/vl +synopsys=$RDI_DATADIR/xsim/vhdl/synopsys +uvm=$RDI_DATADIR/xsim/system_verilog/uvm +secureip=$RDI_DATADIR/xsim/verilog/secureip +unisim=$RDI_DATADIR/xsim/vhdl/unisim +unimacro=$RDI_DATADIR/xsim/vhdl/unimacro +unifast=$RDI_DATADIR/xsim/vhdl/unifast +unisims_ver=$RDI_DATADIR/xsim/verilog/unisims_ver +unimacro_ver=$RDI_DATADIR/xsim/verilog/unimacro_ver +unifast_ver=$RDI_DATADIR/xsim/verilog/unifast_ver +simprims_ver=$RDI_DATADIR/xsim/verilog/simprims_ver +cpri_v8_12_0=$RDI_DATADIR/xsim/ip/cpri_v8_12_0 +sim_ipc_multi_intf_v1_0=$RDI_DATADIR/xsim/ip/sim_ipc_multi_intf_v1_0 +axis_ila_txns_cntr_v1_0_0=$RDI_DATADIR/xsim/ip/axis_ila_txns_cntr_v1_0_0 +an_lt_v1_0_14=$RDI_DATADIR/xsim/ip/an_lt_v1_0_14 +axi_chip2chip_v5_0_24=$RDI_DATADIR/xsim/ip/axi_chip2chip_v5_0_24 +g709_fec_v2_4_11=$RDI_DATADIR/xsim/ip/g709_fec_v2_4_11 +audio_formatter_v1_0_15=$RDI_DATADIR/xsim/ip/audio_formatter_v1_0_15 +ats_switch_v1_0_12=$RDI_DATADIR/xsim/ip/ats_switch_v1_0_12 +xbip_pipe_v3_0_10=$RDI_DATADIR/xsim/ip/xbip_pipe_v3_0_10 +v_gamma_lut_v1_1_13=$RDI_DATADIR/xsim/ip/v_gamma_lut_v1_1_13 +vrf_fft_v1_0_0=$RDI_DATADIR/xsim/ip/vrf_fft_v1_0_0 +v_hdmi_tx1_v1_0_10=$RDI_DATADIR/xsim/ip/v_hdmi_tx1_v1_0_10 +pci32_v5_0_13=$RDI_DATADIR/xsim/ip/pci32_v5_0_13 +axi_mm2s_mapper_v1_1_32=$RDI_DATADIR/xsim/ip/axi_mm2s_mapper_v1_1_32 +axis_data_fifo_v1_1_34=$RDI_DATADIR/xsim/ip/axis_data_fifo_v1_1_34 +mailbox_v2_1_18=$RDI_DATADIR/xsim/ip/mailbox_v2_1_18 +lib_cdc_v1_0_3=$RDI_DATADIR/xsim/ip/lib_cdc_v1_0_3 +sdfec_ld_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/sdfec_ld_wrapper_v1_0_0 +v_tc_v6_1_14=$RDI_DATADIR/xsim/ip/v_tc_v6_1_14 +tcc_encoder_3gpplte_v4_0_20=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpplte_v4_0_20 +axis_ila_intf_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_intf_v1_0_2 +axi_lite_ipif_v3_0=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0 +vitis_net_p4_v2_2_0=$RDI_DATADIR/xsim/ip/vitis_net_p4_v2_2_0 +generic_baseblocks_v2_1_2=$RDI_DATADIR/xsim/ip/generic_baseblocks_v2_1_2 +ten_gig_eth_mac_v15_1_12=$RDI_DATADIR/xsim/ip/ten_gig_eth_mac_v15_1_12 +hdmi_gt_controller_v1_0_13=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v1_0_13 +v_frmbuf_rd_v3_0_0=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v3_0_0 +fifo_generator_v13_1_5=$RDI_DATADIR/xsim/ip/fifo_generator_v13_1_5 +dfx_bitstream_monitor_v1_0_6=$RDI_DATADIR/xsim/ip/dfx_bitstream_monitor_v1_0_6 +rs_toolbox_v9_0_14=$RDI_DATADIR/xsim/ip/rs_toolbox_v9_0_14 +perf_axi_tg_v1_0_15=$RDI_DATADIR/xsim/ip/perf_axi_tg_v1_0_15 +xbip_utils_v3_0_14=$RDI_DATADIR/xsim/ip/xbip_utils_v3_0_14 +dptx_v1_0_5=$RDI_DATADIR/xsim/ip/dptx_v1_0_5 +rs_decoder_v9_0_23=$RDI_DATADIR/xsim/ip/rs_decoder_v9_0_23 +dsp_macro_v1_0_7=$RDI_DATADIR/xsim/ip/dsp_macro_v1_0_7 +axi_vdma_v6_3_21=$RDI_DATADIR/xsim/ip/axi_vdma_v6_3_21 +axi_lite_ipif_v3_0_4=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0_4 +qdriv_pl_v1_0_14=$RDI_DATADIR/xsim/ip/qdriv_pl_v1_0_14 +axis_data_fifo_v2_0_15=$RDI_DATADIR/xsim/ip/axis_data_fifo_v2_0_15 +audio_tpg_v1_0_2=$RDI_DATADIR/xsim/ip/audio_tpg_v1_0_2 +noc_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nsu_sim_v1_0_0 +axi_i3c_v1_0_2=$RDI_DATADIR/xsim/ip/axi_i3c_v1_0_2 +axi_sg_v4_1_19=$RDI_DATADIR/xsim/ip/axi_sg_v4_1_19 +mipi_csi2_rx_ctrl_v1_0_11=$RDI_DATADIR/xsim/ip/mipi_csi2_rx_ctrl_v1_0_11 +hdmi_acr_ctrl_v1_0_3=$RDI_DATADIR/xsim/ip/hdmi_acr_ctrl_v1_0_3 +xxv_ethernet_v4_1_13=$RDI_DATADIR/xsim/ip/xxv_ethernet_v4_1_13 +hw_trace=$RDI_DATADIR/xsim/ip/hw_trace +ernic_v4_2_0=$RDI_DATADIR/xsim/ip/ernic_v4_2_0 +rama_v1_1_19_lib=$RDI_DATADIR/xsim/ip/rama_v1_1_19_lib +rfdace5_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/rfdace5_wrapper_v1_0_0 +tsn_temac_v1_0_12=$RDI_DATADIR/xsim/ip/tsn_temac_v1_0_12 +tri_mode_ethernet_mac_v9_0_35=$RDI_DATADIR/xsim/ip/tri_mode_ethernet_mac_v9_0_35 +axi_jtag_v1_0_2=$RDI_DATADIR/xsim/ip/axi_jtag_v1_0_2 +ieee802d3_200g_rs_fec_v2_0_12=$RDI_DATADIR/xsim/ip/ieee802d3_200g_rs_fec_v2_0_12 +fast_adapter_v1_0_10=$RDI_DATADIR/xsim/ip/fast_adapter_v1_0_10 +hdmi_gt_controller_v2_0_0=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v2_0_0 +xdfe_ofdm_v2_2_0=$RDI_DATADIR/xsim/ip/xdfe_ofdm_v2_2_0 +ptp_1588_timer_syncer_v2_0_6=$RDI_DATADIR/xsim/ip/ptp_1588_timer_syncer_v2_0_6 +vfb_v1_0_27=$RDI_DATADIR/xsim/ip/vfb_v1_0_27 +blk_mem_gen_v8_3_7=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_3_7 +vcu2_v1_0_0=$RDI_DATADIR/xsim/ip/vcu2_v1_0_0 +shell_utils_addr_remap_v1_0_12=$RDI_DATADIR/xsim/ip/shell_utils_addr_remap_v1_0_12 +oddr_v1_0_4=$RDI_DATADIR/xsim/ip/oddr_v1_0_4 +sim_trig_v1_0_13=$RDI_DATADIR/xsim/ip/sim_trig_v1_0_13 +v_hdmi_phy1_v1_0_13=$RDI_DATADIR/xsim/ip/v_hdmi_phy1_v1_0_13 +displayport_v7_0_25=$RDI_DATADIR/xsim/ip/displayport_v7_0_25 +cordic_v6_0_23=$RDI_DATADIR/xsim/ip/cordic_v6_0_23 +axi_crossbar_v2_1_34=$RDI_DATADIR/xsim/ip/axi_crossbar_v2_1_34 +proc_sys_reset_v5_0_16=$RDI_DATADIR/xsim/ip/proc_sys_reset_v5_0_16 +polar_v1_1_5=$RDI_DATADIR/xsim/ip/polar_v1_1_5 +xscl=$RDI_DATADIR/xsim/ip/xscl +xtlm_simple_interconnect_v1_0=$RDI_DATADIR/xsim/ip/xtlm_simple_interconnect_v1_0 +v_scenechange_v1_1_6=$RDI_DATADIR/xsim/ip/v_scenechange_v1_1_6 +func_emu_util_v1_0=$RDI_DATADIR/xsim/ip/func_emu_util_v1_0 +ldpc_v2_0_16=$RDI_DATADIR/xsim/ip/ldpc_v2_0_16 +switch_core_top_v1_0_17=$RDI_DATADIR/xsim/ip/switch_core_top_v1_0_17 +v_frmbuf_wr_v2_5_3=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_5_3 +bs_switch_v1_0_4=$RDI_DATADIR/xsim/ip/bs_switch_v1_0_4 +audio_clock_recovery_unit_v1_0_5=$RDI_DATADIR/xsim/ip/audio_clock_recovery_unit_v1_0_5 +xdfe_resampler_v1_0_10=$RDI_DATADIR/xsim/ip/xdfe_resampler_v1_0_10 +sd_fec_v1_1_15=$RDI_DATADIR/xsim/ip/sd_fec_v1_1_15 +fifo_generator_v13_2_11=$RDI_DATADIR/xsim/ip/fifo_generator_v13_2_11 +axi_timebase_wdt_v3_0_25=$RDI_DATADIR/xsim/ip/axi_timebase_wdt_v3_0_25 +psx_vip_v1_0_6=$RDI_DATADIR/xsim/ip/psx_vip_v1_0_6 +axi_memory_init_v1_0_14=$RDI_DATADIR/xsim/ip/axi_memory_init_v1_0_14 +emc_common_v3_0_8=$RDI_DATADIR/xsim/ip/emc_common_v3_0_8 +ieee802d3_rs_fec_v2_0_24=$RDI_DATADIR/xsim/ip/ieee802d3_rs_fec_v2_0_24 +axi_bram_ctrl_v4_0_15=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_0_15 +v_vcresampler_v1_1_13=$RDI_DATADIR/xsim/ip/v_vcresampler_v1_1_13 +v_csc_v1_1_13=$RDI_DATADIR/xsim/ip/v_csc_v1_1_13 +axi_lmb_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/axi_lmb_bridge_v1_0_3 +zynq_ultra_ps_e_vip_v1_0_19=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_vip_v1_0_19 +axi_cdma_v4_1_33=$RDI_DATADIR/xsim/ip/axi_cdma_v4_1_33 +v_dp_axi4s_vid_out_v1_0_9=$RDI_DATADIR/xsim/ip/v_dp_axi4s_vid_out_v1_0_9 +i2s_receiver_v1_0_9=$RDI_DATADIR/xsim/ip/i2s_receiver_v1_0_9 +rld3_pl_v1_0_15=$RDI_DATADIR/xsim/ip/rld3_pl_v1_0_15 +axi_firewall_v1_2_8=$RDI_DATADIR/xsim/ip/axi_firewall_v1_2_8 +axis_ila_ct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_ct_v1_0_1 +cpm5n_v1_0_9=$RDI_DATADIR/xsim/ip/cpm5n_v1_0_9 +hdcp22_cipher_dp_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp22_cipher_dp_v1_0_2 +lut_buffer_v2_0_1=$RDI_DATADIR/xsim/ip/lut_buffer_v2_0_1 +axis_switch_v1_1_33=$RDI_DATADIR/xsim/ip/axis_switch_v1_1_33 +axis_switch_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_switch_sc_v1_1 +mipi_dphy_v4_3_13=$RDI_DATADIR/xsim/ip/mipi_dphy_v4_3_13 +msm_adapters=$RDI_DATADIR/xsim/ip/msm_adapters +msm_cpp=$RDI_DATADIR/xsim/ip/msm_cpp +iomodule_v3_1_11=$RDI_DATADIR/xsim/ip/iomodule_v3_1_11 +fc32_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/fc32_rs_fec_v1_0_28 +mammoth_transcode_v1_0_2=$RDI_DATADIR/xsim/ip/mammoth_transcode_v1_0_2 +aie_ps_v1_0=$RDI_DATADIR/xsim/ip/aie_ps_v1_0 +axi_hwicap_v3_0_37=$RDI_DATADIR/xsim/ip/axi_hwicap_v3_0_37 +g709_rs_decoder_v2_2_15=$RDI_DATADIR/xsim/ip/g709_rs_decoder_v2_2_15 +axi_stream_monitor_v1_1_1=$RDI_DATADIR/xsim/ip/axi_stream_monitor_v1_1_1 +axis_itct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_itct_v1_0_1 +tmr_voter_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_voter_v1_0_7 +lmb_v10_v3_0=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0 +mdm_riscv_v1_0_3=$RDI_DATADIR/xsim/ip/mdm_riscv_v1_0_3 +axis_mem_v1_0_2=$RDI_DATADIR/xsim/ip/axis_mem_v1_0_2 +amm_axi_bridge_v1_0_19=$RDI_DATADIR/xsim/ip/amm_axi_bridge_v1_0_19 +videoaxi4s_bridge_v1_0_7=$RDI_DATADIR/xsim/ip/videoaxi4s_bridge_v1_0_7 +axis_accelerator_adapter_v2_1_19=$RDI_DATADIR/xsim/ip/axis_accelerator_adapter_v2_1_19 +axi_master_burst_v2_0_9=$RDI_DATADIR/xsim/ip/axi_master_burst_v2_0_9 +vrf_channelizer_v1_0_0=$RDI_DATADIR/xsim/ip/vrf_channelizer_v1_0_0 +uhdsdi_gt_v2_1_5=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_1_5 +v_deinterlacer_v5_1_6=$RDI_DATADIR/xsim/ip/v_deinterlacer_v5_1_6 +noc_hbm_v1_0_1=$RDI_DATADIR/xsim/ip/noc_hbm_v1_0_1 +in_system_ibert_v1_0_23=$RDI_DATADIR/xsim/ip/in_system_ibert_v1_0_23 +axi_pcie_v2_9_12=$RDI_DATADIR/xsim/ip/axi_pcie_v2_9_12 +axi_epu_v1_0_6=$RDI_DATADIR/xsim/ip/axi_epu_v1_0_6 +floating_point_v7_0_24=$RDI_DATADIR/xsim/ip/floating_point_v7_0_24 +v_axi4s_vid_out_v4_0_19=$RDI_DATADIR/xsim/ip/v_axi4s_vid_out_v4_0_19 +v_multi_scaler_v1_2_7=$RDI_DATADIR/xsim/ip/v_multi_scaler_v1_2_7 +axis_dbg_sync_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_sync_v1_0_1 +can_v5_1_5=$RDI_DATADIR/xsim/ip/can_v5_1_5 +axis_cap_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/axis_cap_ctrl_v1_0_1 +xdfe_cc_filter_v1_1_5=$RDI_DATADIR/xsim/ip/xdfe_cc_filter_v1_1_5 +anlt_subcore_ip_v1_0_2=$RDI_DATADIR/xsim/ip/anlt_subcore_ip_v1_0_2 +v_smpte_uhdsdi_tx_v1_0_5=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_tx_v1_0_5 +xlslice_v1_0_4=$RDI_DATADIR/xsim/ip/xlslice_v1_0_4 +noc2_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nmu_sim_v1_0_0 +tmr_sem_v1_0_27=$RDI_DATADIR/xsim/ip/tmr_sem_v1_0_27 +axi_ahblite_bridge_v3_0_30=$RDI_DATADIR/xsim/ip/axi_ahblite_bridge_v3_0_30 +xtlm_trace_model_v1_0=$RDI_DATADIR/xsim/ip/xtlm_trace_model_v1_0 +hdcp_keymngmt_blk_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp_keymngmt_blk_v1_0_2 +util_idelay_ctrl_v1_0_4=$RDI_DATADIR/xsim/ip/util_idelay_ctrl_v1_0_4 +axi_uart16550_v2_0_35=$RDI_DATADIR/xsim/ip/axi_uart16550_v2_0_35 +ecc_v2_0_17=$RDI_DATADIR/xsim/ip/ecc_v2_0_17 +v_frmbuf_rd_v2_2_12=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_2_12 +axi_data_fifo_v2_1_32=$RDI_DATADIR/xsim/ip/axi_data_fifo_v2_1_32 +xdfe_equalizer_v1_0_10=$RDI_DATADIR/xsim/ip/xdfe_equalizer_v1_0_10 +axi_mcdma_v1_2_0=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_2_0 +versal_cips_ps_vip_v1_0_11=$RDI_DATADIR/xsim/ip/versal_cips_ps_vip_v1_0_11 +emb_mem_gen_v1_0_10=$RDI_DATADIR/xsim/ip/emb_mem_gen_v1_0_10 +mdm_v3_2=$RDI_DATADIR/xsim/ip/mdm_v3_2 +displayport_v8_1_10=$RDI_DATADIR/xsim/ip/displayport_v8_1_10 +tcc_encoder_3gpp_v5_0_23=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpp_v5_0_23 +pcie_qdma_mailbox_v1_0_8=$RDI_DATADIR/xsim/ip/pcie_qdma_mailbox_v1_0_8 +v_frmbuf_rd_v2_5_3=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_5_3 +util_vector_logic_v2_0_4=$RDI_DATADIR/xsim/ip/util_vector_logic_v2_0_4 +axis_dwidth_converter_v1_1_32=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_v1_1_32 +axi4svideo_bridge_v1_0_19=$RDI_DATADIR/xsim/ip/axi4svideo_bridge_v1_0_19 +util_ff_v1_0_4=$RDI_DATADIR/xsim/ip/util_ff_v1_0_4 +sim_xdma_cpp_v1=$RDI_DATADIR/xsim/ip/sim_xdma_cpp_v1 +microblaze_riscv_v1_0_3=$RDI_DATADIR/xsim/ip/microblaze_riscv_v1_0_3 +cpri_v8_11_22=$RDI_DATADIR/xsim/ip/cpri_v8_11_22 +v_vid_in_axi4s_v5_0_5=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v5_0_5 +dprx_v1_0_5=$RDI_DATADIR/xsim/ip/dprx_v1_0_5 +shell_utils_build_info_v2_0_0=$RDI_DATADIR/xsim/ip/shell_utils_build_info_v2_0_0 +util_reduced_logic_v2_0_6=$RDI_DATADIR/xsim/ip/util_reduced_logic_v2_0_6 +axi_pcie3_v3_0_32=$RDI_DATADIR/xsim/ip/axi_pcie3_v3_0_32 +v_smpte_uhdsdi_rx_v1_0_4=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_rx_v1_0_4 +axi_datamover_v5_1_35=$RDI_DATADIR/xsim/ip/axi_datamover_v5_1_35 +interlaken_v2_4_19=$RDI_DATADIR/xsim/ip/interlaken_v2_4_19 +nvmeha_v1_0_14=$RDI_DATADIR/xsim/ip/nvmeha_v1_0_14 +av_pat_gen_v2_0_2=$RDI_DATADIR/xsim/ip/av_pat_gen_v2_0_2 +bfr_ft_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/bfr_ft_wrapper_v1_0_0 +axis_mu_v1_0_1=$RDI_DATADIR/xsim/ip/axis_mu_v1_0_1 +zynq_ultra_ps_e_v3_3_14=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_v3_3_14 +stm_v1_0=$RDI_DATADIR/xsim/ip/stm_v1_0 +v_hdmi_rx_v3_0_5=$RDI_DATADIR/xsim/ip/v_hdmi_rx_v3_0_5 +ethernet_1_10_25g_v2_7_18=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_7_18 +v_tpg_v8_2_6=$RDI_DATADIR/xsim/ip/v_tpg_v8_2_6 +qdma_v5_0_12=$RDI_DATADIR/xsim/ip/qdma_v5_0_12 +pci64_v5_0_12=$RDI_DATADIR/xsim/ip/pci64_v5_0_12 +v_uhdsdi_vidgen_v1_0_3=$RDI_DATADIR/xsim/ip/v_uhdsdi_vidgen_v1_0_3 +jesd204c_v4_3_0=$RDI_DATADIR/xsim/ip/jesd204c_v4_3_0 +axi_timer_v2_0_35=$RDI_DATADIR/xsim/ip/axi_timer_v2_0_35 +c_compare_v12_0_10=$RDI_DATADIR/xsim/ip/c_compare_v12_0_10 +axi_clock_converter_v2_1_32=$RDI_DATADIR/xsim/ip/axi_clock_converter_v2_1_32 +axi_protocol_converter_v2_1_33=$RDI_DATADIR/xsim/ip/axi_protocol_converter_v2_1_33 +axi_dma_v7_1_34=$RDI_DATADIR/xsim/ip/axi_dma_v7_1_34 +pl_fileio_v1_0_0=$RDI_DATADIR/xsim/ip/pl_fileio_v1_0_0 +dfx_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/dfx_decoupler_v1_0_11 +axi_sideband_util_v1_0_17=$RDI_DATADIR/xsim/ip/axi_sideband_util_v1_0_17 +tmr_manager_v1_0_13=$RDI_DATADIR/xsim/ip/tmr_manager_v1_0_13 +fec_5g_common_v1_1_5=$RDI_DATADIR/xsim/ip/fec_5g_common_v1_1_5 +axi_ethernetlite_v3_0_32=$RDI_DATADIR/xsim/ip/axi_ethernetlite_v3_0_32 +lib_bmg_v1_0_18=$RDI_DATADIR/xsim/ip/lib_bmg_v1_0_18 +high_speed_selectio_wiz_v3_6_10=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_6_10 +c_shift_ram_v12_0_18=$RDI_DATADIR/xsim/ip/c_shift_ram_v12_0_18 +axi_pmon_v1_0_2=$RDI_DATADIR/xsim/ip/axi_pmon_v1_0_2 +v_vid_in_axi4s_v4_0_11=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v4_0_11 +uhdsdi_gt_v2_2_0=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_2_0 +v_tpg_v8_1_12=$RDI_DATADIR/xsim/ip/v_tpg_v8_1_12 +noc2_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nsu_sim_v1_0_0 +axi_gpio_v2_0_35=$RDI_DATADIR/xsim/ip/axi_gpio_v2_0_35 +axis_interconnect_v1_1_24=$RDI_DATADIR/xsim/ip/axis_interconnect_v1_1_24 +adc_dac_if_phy_v1_0_0=$RDI_DATADIR/xsim/ip/adc_dac_if_phy_v1_0_0 +xilinx_vip=$RDI_DATADIR/xsim/ip/xilinx_vip +noc_ncrb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_ncrb_v1_0_0 +c_addsub_v12_0_19=$RDI_DATADIR/xsim/ip/c_addsub_v12_0_19 +sem_ultra_v3_1_27=$RDI_DATADIR/xsim/ip/sem_ultra_v3_1_27 +v_dual_splitter_v1_0_11=$RDI_DATADIR/xsim/ip/v_dual_splitter_v1_0_11 +v_warp_init_v1_1_5=$RDI_DATADIR/xsim/ip/v_warp_init_v1_1_5 +mipi_csi2_tx_ctrl_v1_0_6=$RDI_DATADIR/xsim/ip/mipi_csi2_tx_ctrl_v1_0_6 +roe_framer_v3_0_9=$RDI_DATADIR/xsim/ip/roe_framer_v3_0_9 +axi_remapper_tx_v1_0_3=$RDI_DATADIR/xsim/ip/axi_remapper_tx_v1_0_3 +axi_traffic_gen_v3_0_19=$RDI_DATADIR/xsim/ip/axi_traffic_gen_v3_0_19 +dfx_controller_v1_0_8=$RDI_DATADIR/xsim/ip/dfx_controller_v1_0_8 +pr_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/pr_decoupler_v1_0_11 +tmr_comparator_v1_0_8=$RDI_DATADIR/xsim/ip/tmr_comparator_v1_0_8 +rfadce5_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/rfadce5_wrapper_v1_0_0 +axi_mmu_v2_1_31=$RDI_DATADIR/xsim/ip/axi_mmu_v2_1_31 +axi_dwidth_converter_v2_1_33=$RDI_DATADIR/xsim/ip/axi_dwidth_converter_v2_1_33 +common_rpc_v1=$RDI_DATADIR/xsim/ip/common_rpc_v1 +axis_ila_adv_trig_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_adv_trig_v1_0_1 +picxo_fracxo_v2_0_3=$RDI_DATADIR/xsim/ip/picxo_fracxo_v2_0_3 +dp_videoaxi4s_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/dp_videoaxi4s_bridge_v1_0_3 +v_frmbuf_wr_v2_2_12=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_2_12 +sd_fec_beta_v1_0_0=$RDI_DATADIR/xsim/ip/sd_fec_beta_v1_0_0 +iomodule_v3_0=$RDI_DATADIR/xsim/ip/iomodule_v3_0 +lmb_bram_if_cntlr_v4_0_25=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0_25 +mrmac_v3_0_0=$RDI_DATADIR/xsim/ip/mrmac_v3_0_0 +tsn_endpoint_ethernet_mac_block_v1_0_18=$RDI_DATADIR/xsim/ip/tsn_endpoint_ethernet_mac_block_v1_0_18 +axis_vio_v1_0_12=$RDI_DATADIR/xsim/ip/axis_vio_v1_0_12 +xtlm=$RDI_DATADIR/xsim/ip/xtlm +bscan_jtag=$RDI_DATADIR/xsim/ip/bscan_jtag +floating_point_v7_1_19=$RDI_DATADIR/xsim/ip/floating_point_v7_1_19 +ai_pl_trig=$RDI_DATADIR/xsim/ip/ai_pl_trig +axi_dbg_hub=$RDI_DATADIR/xsim/ip/axi_dbg_hub +pc_cfr_v8_0_3=$RDI_DATADIR/xsim/ip/pc_cfr_v8_0_3 +axi_amm_bridge_v1_0_23=$RDI_DATADIR/xsim/ip/axi_amm_bridge_v1_0_23 +c_counter_binary_v12_0_20=$RDI_DATADIR/xsim/ip/c_counter_binary_v12_0_20 +xtlm_ipc_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ipc_v1_0 +axi_vip_v1_1_19=$RDI_DATADIR/xsim/ip/axi_vip_v1_1_19 +xlconcat_v2_1_6=$RDI_DATADIR/xsim/ip/xlconcat_v2_1_6 +axi_msg_v1_0_12=$RDI_DATADIR/xsim/ip/axi_msg_v1_0_12 +noc_nps6_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps6_v1_0_0 +xpm=$RDI_DATADIR/xsim/ip/xpm +bsip_v1_1_1=$RDI_DATADIR/xsim/ip/bsip_v1_1_1 +interrupt_control_v3_1_5=$RDI_DATADIR/xsim/ip/interrupt_control_v3_1_5 +gtwizard_ultrascale_v1_7_19=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_7_19 +axi_intc_v4_1=$RDI_DATADIR/xsim/ip/axi_intc_v4_1 +rld3_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/rld3_pl_phy_v1_0_2 +mipi_rx_phy_v1_0_1=$RDI_DATADIR/xsim/ip/mipi_rx_phy_v1_0_1 +sim_cpu_v1_0=$RDI_DATADIR/xsim/ip/sim_cpu_v1_0 +dds_compiler_v6_0_26=$RDI_DATADIR/xsim/ip/dds_compiler_v6_0_26 +xdma_v4_1_31=$RDI_DATADIR/xsim/ip/xdma_v4_1_31 +axi_fifo_mm_s_v4_3_5=$RDI_DATADIR/xsim/ip/axi_fifo_mm_s_v4_3_5 +l_ethernet_v3_3_13=$RDI_DATADIR/xsim/ip/l_ethernet_v3_3_13 +xdfe_nlf_v1_1_2=$RDI_DATADIR/xsim/ip/xdfe_nlf_v1_1_2 +axi_mcdma_v1_1_14=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_1_14 +remote_port_c_v4=$RDI_DATADIR/xsim/ip/remote_port_c_v4 +ltlib_v1_0_2=$RDI_DATADIR/xsim/ip/ltlib_v1_0_2 +xdfe_common_v1_0_4=$RDI_DATADIR/xsim/ip/xdfe_common_v1_0_4 +axi_intc_v4_1_20=$RDI_DATADIR/xsim/ip/axi_intc_v4_1_20 +axi_uartlite_v2_0_37=$RDI_DATADIR/xsim/ip/axi_uartlite_v2_0_37 +gmii_to_rgmii_v4_1_17=$RDI_DATADIR/xsim/ip/gmii_to_rgmii_v4_1_17 +cdcam_v1_2_0=$RDI_DATADIR/xsim/ip/cdcam_v1_2_0 +blk_mem_gen_v8_4_9=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_4_9 +system_cache_v5_0_12=$RDI_DATADIR/xsim/ip/system_cache_v5_0_12 +cmac_usplus_v3_1_19=$RDI_DATADIR/xsim/ip/cmac_usplus_v3_1_19 +axi_interface_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/axi_interface_monitor_v1_1_0 +axi_interconnect_v1_7_24=$RDI_DATADIR/xsim/ip/axi_interconnect_v1_7_24 +noc2_xbr2x4_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr2x4_v1_0_0 +uram_rd_back_v1_0_4=$RDI_DATADIR/xsim/ip/uram_rd_back_v1_0_4 +common_cpp_v1_0=$RDI_DATADIR/xsim/ip/common_cpp_v1_0 +sem_v4_1_15=$RDI_DATADIR/xsim/ip/sem_v4_1_15 +v_hdmi_tx_v3_0_5=$RDI_DATADIR/xsim/ip/v_hdmi_tx_v3_0_5 +dft_v4_2_9=$RDI_DATADIR/xsim/ip/dft_v4_2_9 +ieee802d3_400g_rs_fec_v3_0_3=$RDI_DATADIR/xsim/ip/ieee802d3_400g_rs_fec_v3_0_3 +srio_gen2_v4_1_20=$RDI_DATADIR/xsim/ip/srio_gen2_v4_1_20 +mipi_tx_phy_v1_0_0=$RDI_DATADIR/xsim/ip/mipi_tx_phy_v1_0_0 +axi_epc_v2_0_36=$RDI_DATADIR/xsim/ip/axi_epc_v2_0_36 +i2s_transmitter_v1_0_9=$RDI_DATADIR/xsim/ip/i2s_transmitter_v1_0_9 +flexo_100g_rs_fec_v1_0_30=$RDI_DATADIR/xsim/ip/flexo_100g_rs_fec_v1_0_30 +axi_tlm_ext_v1_0=$RDI_DATADIR/xsim/ip/axi_tlm_ext_v1_0 +axis_infrastructure_v1_1_1=$RDI_DATADIR/xsim/ip/axis_infrastructure_v1_1_1 +ai_noc=$RDI_DATADIR/xsim/ip/ai_noc +axi_emc_v3_0_33=$RDI_DATADIR/xsim/ip/axi_emc_v3_0_33 +multi_channel_25g_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/multi_channel_25g_rs_fec_v1_0_28 +axi_protocol_checker_v2_0_19=$RDI_DATADIR/xsim/ip/axi_protocol_checker_v2_0_19 +axi_register_slice_v2_1_33=$RDI_DATADIR/xsim/ip/axi_register_slice_v2_1_33 +v_letterbox_v1_1_13=$RDI_DATADIR/xsim/ip/v_letterbox_v1_1_13 +gtwizard_ultrascale_v1_6_17=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_6_17 +dprx_fec_8b10b_v1_0_3=$RDI_DATADIR/xsim/ip/dprx_fec_8b10b_v1_0_3 +axis_broadcaster_v1_1_32=$RDI_DATADIR/xsim/ip/axis_broadcaster_v1_1_32 +axis_clock_converter_v1_1_34=$RDI_DATADIR/xsim/ip/axis_clock_converter_v1_1_34 +ahblite_axi_bridge_v3_0_28=$RDI_DATADIR/xsim/ip/ahblite_axi_bridge_v3_0_28 +gtwizard_ultrascale_v1_5_4=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_5_4 +sid_v8_0_22=$RDI_DATADIR/xsim/ip/sid_v8_0_22 +sim_ddr_v1_0=$RDI_DATADIR/xsim/ip/sim_ddr_v1_0 +axi_infrastructure_v1_1_0=$RDI_DATADIR/xsim/ip/axi_infrastructure_v1_1_0 +v_vid_gt_bridge_v2_0_5=$RDI_DATADIR/xsim/ip/v_vid_gt_bridge_v2_0_5 +axis_dwidth_converter_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_sc_v1_1 +sim_qdma_cpp_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_cpp_v1_0 +noc_nidb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nidb_v1_0_0 +axis_ila_pp_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_pp_v1_0_2 +noc_sc_v1_0_0=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0 +remote_port_sc_v4=$RDI_DATADIR/xsim/ip/remote_port_sc_v4 +ten_gig_eth_pcs_pma_v6_0_28=$RDI_DATADIR/xsim/ip/ten_gig_eth_pcs_pma_v6_0_28 +axis_register_slice_v1_1_33=$RDI_DATADIR/xsim/ip/axis_register_slice_v1_1_33 +clk_vip_v1_0_5=$RDI_DATADIR/xsim/ip/clk_vip_v1_0_5 +noc2_nps_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps_v1_0_0 +v_vid_sdi_tx_bridge_v2_0_3=$RDI_DATADIR/xsim/ip/v_vid_sdi_tx_bridge_v2_0_3 +processing_system7_vip_v1_0_21=$RDI_DATADIR/xsim/ip/processing_system7_vip_v1_0_21 +microblaze_v9_5_5=$RDI_DATADIR/xsim/ip/microblaze_v9_5_5 +cmac_v2_6_17=$RDI_DATADIR/xsim/ip/cmac_v2_6_17 +pcie_jtag_v1_0_1=$RDI_DATADIR/xsim/ip/pcie_jtag_v1_0_1 +mem_pl_v1_0_2=$RDI_DATADIR/xsim/ip/mem_pl_v1_0_2 +mpram_v1_0_5=$RDI_DATADIR/xsim/ip/mpram_v1_0_5 +ai_pl=$RDI_DATADIR/xsim/ip/ai_pl +trace_hub_v1_1_0=$RDI_DATADIR/xsim/ip/trace_hub_v1_1_0 +v_hscaler_v1_1_13=$RDI_DATADIR/xsim/ip/v_hscaler_v1_1_13 +ddr4_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/ddr4_pl_phy_v1_0_2 +axis_protocol_checker_v2_0_17=$RDI_DATADIR/xsim/ip/axis_protocol_checker_v2_0_17 +xbip_multadd_v3_0_21=$RDI_DATADIR/xsim/ip/xbip_multadd_v3_0_21 +axi_remapper_rx_v1_0_2=$RDI_DATADIR/xsim/ip/axi_remapper_rx_v1_0_2 +axi_vfifo_ctrl_v2_0_36=$RDI_DATADIR/xsim/ip/axi_vfifo_ctrl_v2_0_36 +v_warp_filter_v1_1_5=$RDI_DATADIR/xsim/ip/v_warp_filter_v1_1_5 +xfft_v9_1_13=$RDI_DATADIR/xsim/ip/xfft_v9_1_13 +axi_bram_ctrl_v4_1_11=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_1_11 +v_hcresampler_v1_1_13=$RDI_DATADIR/xsim/ip/v_hcresampler_v1_1_13 +v_demosaic_v1_1_13=$RDI_DATADIR/xsim/ip/v_demosaic_v1_1_13 +lte_fft_v2_1_11=$RDI_DATADIR/xsim/ip/lte_fft_v2_1_11 +xsdbs_v1_0_4=$RDI_DATADIR/xsim/ip/xsdbs_v1_0_4 +mrmac_v2_3_2=$RDI_DATADIR/xsim/ip/mrmac_v2_3_2 +v_tc_v6_2_9=$RDI_DATADIR/xsim/ip/v_tc_v6_2_9 +div_gen_v5_1_23=$RDI_DATADIR/xsim/ip/div_gen_v5_1_23 +rs_encoder_v9_0_22=$RDI_DATADIR/xsim/ip/rs_encoder_v9_0_22 +axi_utils_v2_0_10=$RDI_DATADIR/xsim/ip/axi_utils_v2_0_10 +v_axi4s_remap_v1_1_12=$RDI_DATADIR/xsim/ip/v_axi4s_remap_v1_1_12 +v_mix_v5_2_11=$RDI_DATADIR/xsim/ip/v_mix_v5_2_11 +xdfe_fft_v1_0_8=$RDI_DATADIR/xsim/ip/xdfe_fft_v1_0_8 +cic_compiler_v4_0_20=$RDI_DATADIR/xsim/ip/cic_compiler_v4_0_20 +sim_clk_gen_v1_0_5=$RDI_DATADIR/xsim/ip/sim_clk_gen_v1_0_5 +qdriv_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/qdriv_pl_phy_v1_0_2 +lib_srl_fifo_v1_0_4=$RDI_DATADIR/xsim/ip/lib_srl_fifo_v1_0_4 +dbg_intf=$RDI_DATADIR/xsim/ip/dbg_intf +hdcp22_cipher_v1_0_5=$RDI_DATADIR/xsim/ip/hdcp22_cipher_v1_0_5 +usxgmii_v1_2_20=$RDI_DATADIR/xsim/ip/usxgmii_v1_2_20 +v_smpte_sdi_v3_0_12=$RDI_DATADIR/xsim/ip/v_smpte_sdi_v3_0_12 +mipi_dsi2_rx_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/mipi_dsi2_rx_ctrl_v1_0_1 +mdm_v3_2_27=$RDI_DATADIR/xsim/ip/mdm_v3_2_27 +accelerator_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/accelerator_monitor_v1_1_0 +g975_efec_i7_v2_0_24=$RDI_DATADIR/xsim/ip/g975_efec_i7_v2_0_24 +axis_combiner_v1_1_31=$RDI_DATADIR/xsim/ip/axis_combiner_v1_1_31 +xpm_cdc_gen_v1_0_4=$RDI_DATADIR/xsim/ip/xpm_cdc_gen_v1_0_4 +dcmac_v2_5_0=$RDI_DATADIR/xsim/ip/dcmac_v2_5_0 +convolution_v9_0_21=$RDI_DATADIR/xsim/ip/convolution_v9_0_21 +microblaze_v11_0_14=$RDI_DATADIR/xsim/ip/microblaze_v11_0_14 +cpm4_v1_0_17=$RDI_DATADIR/xsim/ip/cpm4_v1_0_17 +cmpy_v6_0_25=$RDI_DATADIR/xsim/ip/cmpy_v6_0_25 +xlconstant_v1_1_9=$RDI_DATADIR/xsim/ip/xlconstant_v1_1_9 +noc_mc_ddr5_phy_v1_0_1=$RDI_DATADIR/xsim/ip/noc_mc_ddr5_phy_v1_0_1 +spdif_v2_0_30=$RDI_DATADIR/xsim/ip/spdif_v2_0_30 +oran_radio_if_v3_2_1=$RDI_DATADIR/xsim/ip/oran_radio_if_v3_2_1 +v_hdmi_rx1_v1_0_11=$RDI_DATADIR/xsim/ip/v_hdmi_rx1_v1_0_11 +cam_v3_1_0=$RDI_DATADIR/xsim/ip/cam_v3_1_0 +emb_fifo_gen_v1_0_6=$RDI_DATADIR/xsim/ip/emb_fifo_gen_v1_0_6 +axi_iic_v2_1_9=$RDI_DATADIR/xsim/ip/axi_iic_v2_1_9 +axi_perf_mon_v5_0_35=$RDI_DATADIR/xsim/ip/axi_perf_mon_v5_0_35 +v_tpg_v8_0_16=$RDI_DATADIR/xsim/ip/v_tpg_v8_0_16 +mutex_v2_1_14=$RDI_DATADIR/xsim/ip/mutex_v2_1_14 +emu_perf_common_v1_0=$RDI_DATADIR/xsim/ip/emu_perf_common_v1_0 +lib_fifo_v1_0_20=$RDI_DATADIR/xsim/ip/lib_fifo_v1_0_20 +advanced_io_wizard_v1_0_15=$RDI_DATADIR/xsim/ip/advanced_io_wizard_v1_0_15 +c_reg_fd_v12_0_10=$RDI_DATADIR/xsim/ip/c_reg_fd_v12_0_10 +axi4stream_vip_v1_1_19=$RDI_DATADIR/xsim/ip/axi4stream_vip_v1_1_19 +lmb_bram_if_cntlr_v4_0=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0 +lmb_v10_v3_0_14=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0_14 +ieee802d3_50g_rs_fec_v1_0_25=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v1_0_25 +icap_arb_v1_0_2=$RDI_DATADIR/xsim/ip/icap_arb_v1_0_2 +noc_npp_rptr_v1_0_0=$RDI_DATADIR/xsim/ip/noc_npp_rptr_v1_0_0 +vid_edid_v1_0_3=$RDI_DATADIR/xsim/ip/vid_edid_v1_0_3 +shell_utils_msp432_bsl_crc_gen_v1_0_2=$RDI_DATADIR/xsim/ip/shell_utils_msp432_bsl_crc_gen_v1_0_2 +sim_qdma_sc_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_sc_v1_0 +mult_gen_v12_0_22=$RDI_DATADIR/xsim/ip/mult_gen_v12_0_22 +timer_sync_1588_v1_2_5=$RDI_DATADIR/xsim/ip/timer_sync_1588_v1_2_5 +dfe_channelizer_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/dfe_channelizer_wrapper_v1_0_0 +clk_gen_sim_v1_0_4=$RDI_DATADIR/xsim/ip/clk_gen_sim_v1_0_4 +hsdp_trace_v2_0_2=$RDI_DATADIR/xsim/ip/hsdp_trace_v2_0_2 +noc_sc_v1_0_0_legacy=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0_legacy +v_frmbuf_wr_v3_0_0=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v3_0_0 +xdfe_cc_mixer_v2_0_5=$RDI_DATADIR/xsim/ip/xdfe_cc_mixer_v2_0_5 +mipi_dsi_tx_ctrl_v1_0_10=$RDI_DATADIR/xsim/ip/mipi_dsi_tx_ctrl_v1_0_10 +axi_apb_bridge_v3_0_20=$RDI_DATADIR/xsim/ip/axi_apb_bridge_v3_0_20 +ieee802d3_clause74_fec_v1_0_19=$RDI_DATADIR/xsim/ip/ieee802d3_clause74_fec_v1_0_19 +sim_xdma_sc_v1=$RDI_DATADIR/xsim/ip/sim_xdma_sc_v1 +axi_tft_v2_0_29=$RDI_DATADIR/xsim/ip/axi_tft_v2_0_29 +viterbi_v9_1_18=$RDI_DATADIR/xsim/ip/viterbi_v9_1_18 +ieee802d3_50g_rs_fec_v2_0_18=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v2_0_18 +microblaze_mcs_v2_3_7=$RDI_DATADIR/xsim/ip/microblaze_mcs_v2_3_7 +fifo_generator_v13_0_7=$RDI_DATADIR/xsim/ip/fifo_generator_v13_0_7 +video_frame_crc_v1_0_6=$RDI_DATADIR/xsim/ip/video_frame_crc_v1_0_6 +dist_mem_gen_v8_0_15=$RDI_DATADIR/xsim/ip/dist_mem_gen_v8_0_15 +ilknf_v1_3_5=$RDI_DATADIR/xsim/ip/ilknf_v1_3_5 +rwd_tlmmodel_v1=$RDI_DATADIR/xsim/ip/rwd_tlmmodel_v1 +axi_tg_sc_v1_0=$RDI_DATADIR/xsim/ip/axi_tg_sc_v1_0 +axi_ethernet_buffer_v2_0_25=$RDI_DATADIR/xsim/ip/axi_ethernet_buffer_v2_0_25 +g975_efec_i4_v1_0_23=$RDI_DATADIR/xsim/ip/g975_efec_i4_v1_0_23 +c_accum_v12_0_19=$RDI_DATADIR/xsim/ip/c_accum_v12_0_19 +aie_xtlm_v1_0_0=$RDI_DATADIR/xsim/ip/aie_xtlm_v1_0_0 +ieee802d3_25g_rs_fec_v1_0_31=$RDI_DATADIR/xsim/ip/ieee802d3_25g_rs_fec_v1_0_31 +smartconnect_v1_0=$RDI_DATADIR/xsim/ip/smartconnect_v1_0 +noc_hbm_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_hbm_nmu_sim_v1_0_0 +xdfe_nr_prach_v2_0_4=$RDI_DATADIR/xsim/ip/xdfe_nr_prach_v2_0_4 +gig_ethernet_pcs_pma_v16_2_21=$RDI_DATADIR/xsim/ip/gig_ethernet_pcs_pma_v16_2_21 +trace_s2mm_v2_0_1=$RDI_DATADIR/xsim/ip/trace_s2mm_v2_0_1 +v_sdi_rx_vid_bridge_v2_0_3=$RDI_DATADIR/xsim/ip/v_sdi_rx_vid_bridge_v2_0_3 +fit_timer_v2_0_12=$RDI_DATADIR/xsim/ip/fit_timer_v2_0_12 +ldpc_5gnr_v1_0_4=$RDI_DATADIR/xsim/ip/ldpc_5gnr_v1_0_4 +soft_ecc_proxy_v1_1_2=$RDI_DATADIR/xsim/ip/soft_ecc_proxy_v1_1_2 +axi_c2c_v1_0_11=$RDI_DATADIR/xsim/ip/axi_c2c_v1_0_11 +noc_nps4_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps4_v1_0_0 +hdcp22_rng_v1_0_3=$RDI_DATADIR/xsim/ip/hdcp22_rng_v1_0_3 +v_smpte_uhdsdi_v1_0_12=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_v1_0_12 +bs_mux_v1_0_1=$RDI_DATADIR/xsim/ip/bs_mux_v1_0_1 +noc_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nmu_sim_v1_0_0 +fir_compiler_v7_2_23=$RDI_DATADIR/xsim/ip/fir_compiler_v7_2_23 +axi_hbicap_v1_0_8=$RDI_DATADIR/xsim/ip/axi_hbicap_v1_0_8 +x5io_wizard_phy_v1_0_1=$RDI_DATADIR/xsim/ip/x5io_wizard_phy_v1_0_1 +canfd_v3_0_12=$RDI_DATADIR/xsim/ip/canfd_v3_0_12 +nvme_tc_v3_0_8=$RDI_DATADIR/xsim/ip/nvme_tc_v3_0_8 +axi_usb2_device_v5_0_34=$RDI_DATADIR/xsim/ip/axi_usb2_device_v5_0_34 +ldpc_5gnr_lite_v1_0_3=$RDI_DATADIR/xsim/ip/ldpc_5gnr_lite_v1_0_3 +tmr_inject_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_inject_v1_0_7 +v_uhdsdi_audio_v2_0_9=$RDI_DATADIR/xsim/ip/v_uhdsdi_audio_v2_0_9 +xsdbm_v3_0_3=$RDI_DATADIR/xsim/ip/xsdbm_v3_0_3 +v_vscaler_v1_1_13=$RDI_DATADIR/xsim/ip/v_vscaler_v1_1_13 +vid_phy_controller_v2_2_19=$RDI_DATADIR/xsim/ip/vid_phy_controller_v2_2_19 +mem_tg_v1_0_15=$RDI_DATADIR/xsim/ip/mem_tg_v1_0_15 +dfx_axi_shutdown_manager_v1_0_4=$RDI_DATADIR/xsim/ip/dfx_axi_shutdown_manager_v1_0_4 +ibert_lib_v1_0_12=$RDI_DATADIR/xsim/ip/ibert_lib_v1_0_12 +ta_dma_v1_0_17=$RDI_DATADIR/xsim/ip/ta_dma_v1_0_17 +cam_blk_lib_v1_2_0=$RDI_DATADIR/xsim/ip/cam_blk_lib_v1_2_0 +noc2_nps6x_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps6x_v1_0_0 +noc2_xbr4x2_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr4x2_v1_0_0 +tcc_decoder_3gppmm_v2_0_28=$RDI_DATADIR/xsim/ip/tcc_decoder_3gppmm_v2_0_28 +noc_nps_v1_0_1=$RDI_DATADIR/xsim/ip/noc_nps_v1_0_1 +ddr4_pl_v1_0_15=$RDI_DATADIR/xsim/ip/ddr4_pl_v1_0_15 +advanced_io_wizard_phy_v1_0_4=$RDI_DATADIR/xsim/ip/advanced_io_wizard_phy_v1_0_4 +ft_prach_v1_2_3=$RDI_DATADIR/xsim/ip/ft_prach_v1_2_3 +lib_pkg_v1_0_4=$RDI_DATADIR/xsim/ip/lib_pkg_v1_0_4 +jtag_axi=$RDI_DATADIR/xsim/ip/jtag_axi +x5io_wizard_v1_0_6=$RDI_DATADIR/xsim/ip/x5io_wizard_v1_0_6 +axis_subset_converter_v1_1_33=$RDI_DATADIR/xsim/ip/axis_subset_converter_v1_1_33 +axi_quad_spi_v3_2_32=$RDI_DATADIR/xsim/ip/axi_quad_spi_v3_2_32 +g709_rs_encoder_v2_2_13=$RDI_DATADIR/xsim/ip/g709_rs_encoder_v2_2_13 +hdcp_v1_0_6=$RDI_DATADIR/xsim/ip/hdcp_v1_0_6 +v_frmbuf_rd_v2_4_4=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_4_4 +gigantic_mux=$RDI_DATADIR/xsim/ip/gigantic_mux +quadsgmii_v3_5_21=$RDI_DATADIR/xsim/ip/quadsgmii_v3_5_21 +xtlm_ap_ctrl_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ap_ctrl_v1_0 +rst_vip_v1_0_7=$RDI_DATADIR/xsim/ip/rst_vip_v1_0_7 +ethernet_offload_v1_0_0=$RDI_DATADIR/xsim/ip/ethernet_offload_v1_0_0 +cpm5_v1_0_17=$RDI_DATADIR/xsim/ip/cpm5_v1_0_17 +processing_system7_v5_5_6=$RDI_DATADIR/xsim/ip/processing_system7_v5_5_6 +debug_tcp_server_v1=$RDI_DATADIR/xsim/ip/debug_tcp_server_v1 +xbip_dsp48_wrapper_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_wrapper_v3_0_6 +vitis_deadlock_detector_v1_0_2=$RDI_DATADIR/xsim/ip/vitis_deadlock_detector_v1_0_2 +axis_dbg_stub_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_stub_v1_0_1 +displayport_v9_0_10=$RDI_DATADIR/xsim/ip/displayport_v9_0_10 +visp_v1_0_0=$RDI_DATADIR/xsim/ip/visp_v1_0_0 +bscan_axi_v1_0_2=$RDI_DATADIR/xsim/ip/bscan_axi_v1_0_2 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.ini.bak b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.ini.bak new file mode 100644 index 0000000..e2f5709 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xsim.ini.bak @@ -0,0 +1,489 @@ +std=$RDI_DATADIR/xsim/vhdl/std +ieee=$RDI_DATADIR/xsim/vhdl/ieee +ieee_proposed=$RDI_DATADIR/xsim/vhdl/ieee_proposed +vl=$RDI_DATADIR/xsim/vhdl/vl +synopsys=$RDI_DATADIR/xsim/vhdl/synopsys +uvm=$RDI_DATADIR/xsim/system_verilog/uvm +secureip=$RDI_DATADIR/xsim/verilog/secureip +unisim=$RDI_DATADIR/xsim/vhdl/unisim +unimacro=$RDI_DATADIR/xsim/vhdl/unimacro +unifast=$RDI_DATADIR/xsim/vhdl/unifast +unisims_ver=$RDI_DATADIR/xsim/verilog/unisims_ver +unimacro_ver=$RDI_DATADIR/xsim/verilog/unimacro_ver +unifast_ver=$RDI_DATADIR/xsim/verilog/unifast_ver +simprims_ver=$RDI_DATADIR/xsim/verilog/simprims_ver +cpri_v8_12_0=$RDI_DATADIR/xsim/ip/cpri_v8_12_0 +sim_ipc_multi_intf_v1_0=$RDI_DATADIR/xsim/ip/sim_ipc_multi_intf_v1_0 +axis_ila_txns_cntr_v1_0_0=$RDI_DATADIR/xsim/ip/axis_ila_txns_cntr_v1_0_0 +an_lt_v1_0_14=$RDI_DATADIR/xsim/ip/an_lt_v1_0_14 +axi_chip2chip_v5_0_24=$RDI_DATADIR/xsim/ip/axi_chip2chip_v5_0_24 +g709_fec_v2_4_11=$RDI_DATADIR/xsim/ip/g709_fec_v2_4_11 +audio_formatter_v1_0_15=$RDI_DATADIR/xsim/ip/audio_formatter_v1_0_15 +ats_switch_v1_0_12=$RDI_DATADIR/xsim/ip/ats_switch_v1_0_12 +xbip_pipe_v3_0_10=$RDI_DATADIR/xsim/ip/xbip_pipe_v3_0_10 +v_gamma_lut_v1_1_13=$RDI_DATADIR/xsim/ip/v_gamma_lut_v1_1_13 +vrf_fft_v1_0_0=$RDI_DATADIR/xsim/ip/vrf_fft_v1_0_0 +v_hdmi_tx1_v1_0_10=$RDI_DATADIR/xsim/ip/v_hdmi_tx1_v1_0_10 +pci32_v5_0_13=$RDI_DATADIR/xsim/ip/pci32_v5_0_13 +axi_mm2s_mapper_v1_1_32=$RDI_DATADIR/xsim/ip/axi_mm2s_mapper_v1_1_32 +axis_data_fifo_v1_1_34=$RDI_DATADIR/xsim/ip/axis_data_fifo_v1_1_34 +mailbox_v2_1_18=$RDI_DATADIR/xsim/ip/mailbox_v2_1_18 +lib_cdc_v1_0_3=$RDI_DATADIR/xsim/ip/lib_cdc_v1_0_3 +sdfec_ld_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/sdfec_ld_wrapper_v1_0_0 +v_tc_v6_1_14=$RDI_DATADIR/xsim/ip/v_tc_v6_1_14 +tcc_encoder_3gpplte_v4_0_20=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpplte_v4_0_20 +axis_ila_intf_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_intf_v1_0_2 +axi_lite_ipif_v3_0=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0 +vitis_net_p4_v2_2_0=$RDI_DATADIR/xsim/ip/vitis_net_p4_v2_2_0 +generic_baseblocks_v2_1_2=$RDI_DATADIR/xsim/ip/generic_baseblocks_v2_1_2 +ten_gig_eth_mac_v15_1_12=$RDI_DATADIR/xsim/ip/ten_gig_eth_mac_v15_1_12 +hdmi_gt_controller_v1_0_13=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v1_0_13 +v_frmbuf_rd_v3_0_0=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v3_0_0 +fifo_generator_v13_1_5=$RDI_DATADIR/xsim/ip/fifo_generator_v13_1_5 +dfx_bitstream_monitor_v1_0_6=$RDI_DATADIR/xsim/ip/dfx_bitstream_monitor_v1_0_6 +rs_toolbox_v9_0_14=$RDI_DATADIR/xsim/ip/rs_toolbox_v9_0_14 +perf_axi_tg_v1_0_15=$RDI_DATADIR/xsim/ip/perf_axi_tg_v1_0_15 +xbip_utils_v3_0_14=$RDI_DATADIR/xsim/ip/xbip_utils_v3_0_14 +dptx_v1_0_5=$RDI_DATADIR/xsim/ip/dptx_v1_0_5 +rs_decoder_v9_0_23=$RDI_DATADIR/xsim/ip/rs_decoder_v9_0_23 +dsp_macro_v1_0_7=$RDI_DATADIR/xsim/ip/dsp_macro_v1_0_7 +axi_vdma_v6_3_21=$RDI_DATADIR/xsim/ip/axi_vdma_v6_3_21 +axi_lite_ipif_v3_0_4=$RDI_DATADIR/xsim/ip/axi_lite_ipif_v3_0_4 +qdriv_pl_v1_0_14=$RDI_DATADIR/xsim/ip/qdriv_pl_v1_0_14 +axis_data_fifo_v2_0_15=$RDI_DATADIR/xsim/ip/axis_data_fifo_v2_0_15 +audio_tpg_v1_0_2=$RDI_DATADIR/xsim/ip/audio_tpg_v1_0_2 +noc_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nsu_sim_v1_0_0 +axi_i3c_v1_0_2=$RDI_DATADIR/xsim/ip/axi_i3c_v1_0_2 +axi_sg_v4_1_19=$RDI_DATADIR/xsim/ip/axi_sg_v4_1_19 +mipi_csi2_rx_ctrl_v1_0_11=$RDI_DATADIR/xsim/ip/mipi_csi2_rx_ctrl_v1_0_11 +hdmi_acr_ctrl_v1_0_3=$RDI_DATADIR/xsim/ip/hdmi_acr_ctrl_v1_0_3 +xxv_ethernet_v4_1_13=$RDI_DATADIR/xsim/ip/xxv_ethernet_v4_1_13 +hw_trace=$RDI_DATADIR/xsim/ip/hw_trace +ernic_v4_2_0=$RDI_DATADIR/xsim/ip/ernic_v4_2_0 +rama_v1_1_19_lib=$RDI_DATADIR/xsim/ip/rama_v1_1_19_lib +rfdace5_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/rfdace5_wrapper_v1_0_0 +tsn_temac_v1_0_12=$RDI_DATADIR/xsim/ip/tsn_temac_v1_0_12 +tri_mode_ethernet_mac_v9_0_35=$RDI_DATADIR/xsim/ip/tri_mode_ethernet_mac_v9_0_35 +axi_jtag_v1_0_2=$RDI_DATADIR/xsim/ip/axi_jtag_v1_0_2 +ieee802d3_200g_rs_fec_v2_0_12=$RDI_DATADIR/xsim/ip/ieee802d3_200g_rs_fec_v2_0_12 +fast_adapter_v1_0_10=$RDI_DATADIR/xsim/ip/fast_adapter_v1_0_10 +hdmi_gt_controller_v2_0_0=$RDI_DATADIR/xsim/ip/hdmi_gt_controller_v2_0_0 +xdfe_ofdm_v2_2_0=$RDI_DATADIR/xsim/ip/xdfe_ofdm_v2_2_0 +ptp_1588_timer_syncer_v2_0_6=$RDI_DATADIR/xsim/ip/ptp_1588_timer_syncer_v2_0_6 +vfb_v1_0_27=$RDI_DATADIR/xsim/ip/vfb_v1_0_27 +blk_mem_gen_v8_3_7=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_3_7 +vcu2_v1_0_0=$RDI_DATADIR/xsim/ip/vcu2_v1_0_0 +shell_utils_addr_remap_v1_0_12=$RDI_DATADIR/xsim/ip/shell_utils_addr_remap_v1_0_12 +oddr_v1_0_4=$RDI_DATADIR/xsim/ip/oddr_v1_0_4 +sim_trig_v1_0_13=$RDI_DATADIR/xsim/ip/sim_trig_v1_0_13 +v_hdmi_phy1_v1_0_13=$RDI_DATADIR/xsim/ip/v_hdmi_phy1_v1_0_13 +displayport_v7_0_25=$RDI_DATADIR/xsim/ip/displayport_v7_0_25 +cordic_v6_0_23=$RDI_DATADIR/xsim/ip/cordic_v6_0_23 +axi_crossbar_v2_1_34=$RDI_DATADIR/xsim/ip/axi_crossbar_v2_1_34 +proc_sys_reset_v5_0_16=$RDI_DATADIR/xsim/ip/proc_sys_reset_v5_0_16 +polar_v1_1_5=$RDI_DATADIR/xsim/ip/polar_v1_1_5 +xscl=$RDI_DATADIR/xsim/ip/xscl +xtlm_simple_interconnect_v1_0=$RDI_DATADIR/xsim/ip/xtlm_simple_interconnect_v1_0 +v_scenechange_v1_1_6=$RDI_DATADIR/xsim/ip/v_scenechange_v1_1_6 +func_emu_util_v1_0=$RDI_DATADIR/xsim/ip/func_emu_util_v1_0 +ldpc_v2_0_16=$RDI_DATADIR/xsim/ip/ldpc_v2_0_16 +switch_core_top_v1_0_17=$RDI_DATADIR/xsim/ip/switch_core_top_v1_0_17 +v_frmbuf_wr_v2_5_3=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_5_3 +bs_switch_v1_0_4=$RDI_DATADIR/xsim/ip/bs_switch_v1_0_4 +audio_clock_recovery_unit_v1_0_5=$RDI_DATADIR/xsim/ip/audio_clock_recovery_unit_v1_0_5 +xdfe_resampler_v1_0_10=$RDI_DATADIR/xsim/ip/xdfe_resampler_v1_0_10 +sd_fec_v1_1_15=$RDI_DATADIR/xsim/ip/sd_fec_v1_1_15 +fifo_generator_v13_2_11=$RDI_DATADIR/xsim/ip/fifo_generator_v13_2_11 +axi_timebase_wdt_v3_0_25=$RDI_DATADIR/xsim/ip/axi_timebase_wdt_v3_0_25 +psx_vip_v1_0_6=$RDI_DATADIR/xsim/ip/psx_vip_v1_0_6 +axi_memory_init_v1_0_14=$RDI_DATADIR/xsim/ip/axi_memory_init_v1_0_14 +emc_common_v3_0_8=$RDI_DATADIR/xsim/ip/emc_common_v3_0_8 +ieee802d3_rs_fec_v2_0_24=$RDI_DATADIR/xsim/ip/ieee802d3_rs_fec_v2_0_24 +axi_bram_ctrl_v4_0_15=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_0_15 +v_vcresampler_v1_1_13=$RDI_DATADIR/xsim/ip/v_vcresampler_v1_1_13 +v_csc_v1_1_13=$RDI_DATADIR/xsim/ip/v_csc_v1_1_13 +axi_lmb_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/axi_lmb_bridge_v1_0_3 +zynq_ultra_ps_e_vip_v1_0_19=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_vip_v1_0_19 +axi_cdma_v4_1_33=$RDI_DATADIR/xsim/ip/axi_cdma_v4_1_33 +v_dp_axi4s_vid_out_v1_0_9=$RDI_DATADIR/xsim/ip/v_dp_axi4s_vid_out_v1_0_9 +i2s_receiver_v1_0_9=$RDI_DATADIR/xsim/ip/i2s_receiver_v1_0_9 +rld3_pl_v1_0_15=$RDI_DATADIR/xsim/ip/rld3_pl_v1_0_15 +axi_firewall_v1_2_8=$RDI_DATADIR/xsim/ip/axi_firewall_v1_2_8 +axis_ila_ct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_ct_v1_0_1 +cpm5n_v1_0_9=$RDI_DATADIR/xsim/ip/cpm5n_v1_0_9 +hdcp22_cipher_dp_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp22_cipher_dp_v1_0_2 +lut_buffer_v2_0_1=$RDI_DATADIR/xsim/ip/lut_buffer_v2_0_1 +axis_switch_v1_1_33=$RDI_DATADIR/xsim/ip/axis_switch_v1_1_33 +axis_switch_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_switch_sc_v1_1 +mipi_dphy_v4_3_13=$RDI_DATADIR/xsim/ip/mipi_dphy_v4_3_13 +msm_adapters=$RDI_DATADIR/xsim/ip/msm_adapters +msm_cpp=$RDI_DATADIR/xsim/ip/msm_cpp +iomodule_v3_1_11=$RDI_DATADIR/xsim/ip/iomodule_v3_1_11 +fc32_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/fc32_rs_fec_v1_0_28 +mammoth_transcode_v1_0_2=$RDI_DATADIR/xsim/ip/mammoth_transcode_v1_0_2 +aie_ps_v1_0=$RDI_DATADIR/xsim/ip/aie_ps_v1_0 +axi_hwicap_v3_0_37=$RDI_DATADIR/xsim/ip/axi_hwicap_v3_0_37 +g709_rs_decoder_v2_2_15=$RDI_DATADIR/xsim/ip/g709_rs_decoder_v2_2_15 +axi_stream_monitor_v1_1_1=$RDI_DATADIR/xsim/ip/axi_stream_monitor_v1_1_1 +axis_itct_v1_0_1=$RDI_DATADIR/xsim/ip/axis_itct_v1_0_1 +tmr_voter_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_voter_v1_0_7 +lmb_v10_v3_0=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0 +mdm_riscv_v1_0_3=$RDI_DATADIR/xsim/ip/mdm_riscv_v1_0_3 +axis_mem_v1_0_2=$RDI_DATADIR/xsim/ip/axis_mem_v1_0_2 +amm_axi_bridge_v1_0_19=$RDI_DATADIR/xsim/ip/amm_axi_bridge_v1_0_19 +videoaxi4s_bridge_v1_0_7=$RDI_DATADIR/xsim/ip/videoaxi4s_bridge_v1_0_7 +axis_accelerator_adapter_v2_1_19=$RDI_DATADIR/xsim/ip/axis_accelerator_adapter_v2_1_19 +axi_master_burst_v2_0_9=$RDI_DATADIR/xsim/ip/axi_master_burst_v2_0_9 +vrf_channelizer_v1_0_0=$RDI_DATADIR/xsim/ip/vrf_channelizer_v1_0_0 +uhdsdi_gt_v2_1_5=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_1_5 +v_deinterlacer_v5_1_6=$RDI_DATADIR/xsim/ip/v_deinterlacer_v5_1_6 +noc_hbm_v1_0_1=$RDI_DATADIR/xsim/ip/noc_hbm_v1_0_1 +in_system_ibert_v1_0_23=$RDI_DATADIR/xsim/ip/in_system_ibert_v1_0_23 +axi_pcie_v2_9_12=$RDI_DATADIR/xsim/ip/axi_pcie_v2_9_12 +axi_epu_v1_0_6=$RDI_DATADIR/xsim/ip/axi_epu_v1_0_6 +floating_point_v7_0_24=$RDI_DATADIR/xsim/ip/floating_point_v7_0_24 +v_axi4s_vid_out_v4_0_19=$RDI_DATADIR/xsim/ip/v_axi4s_vid_out_v4_0_19 +v_multi_scaler_v1_2_7=$RDI_DATADIR/xsim/ip/v_multi_scaler_v1_2_7 +axis_dbg_sync_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_sync_v1_0_1 +can_v5_1_5=$RDI_DATADIR/xsim/ip/can_v5_1_5 +axis_cap_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/axis_cap_ctrl_v1_0_1 +xdfe_cc_filter_v1_1_5=$RDI_DATADIR/xsim/ip/xdfe_cc_filter_v1_1_5 +anlt_subcore_ip_v1_0_2=$RDI_DATADIR/xsim/ip/anlt_subcore_ip_v1_0_2 +v_smpte_uhdsdi_tx_v1_0_5=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_tx_v1_0_5 +xlslice_v1_0_4=$RDI_DATADIR/xsim/ip/xlslice_v1_0_4 +noc2_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nmu_sim_v1_0_0 +tmr_sem_v1_0_27=$RDI_DATADIR/xsim/ip/tmr_sem_v1_0_27 +axi_ahblite_bridge_v3_0_30=$RDI_DATADIR/xsim/ip/axi_ahblite_bridge_v3_0_30 +xtlm_trace_model_v1_0=$RDI_DATADIR/xsim/ip/xtlm_trace_model_v1_0 +hdcp_keymngmt_blk_v1_0_2=$RDI_DATADIR/xsim/ip/hdcp_keymngmt_blk_v1_0_2 +util_idelay_ctrl_v1_0_4=$RDI_DATADIR/xsim/ip/util_idelay_ctrl_v1_0_4 +axi_uart16550_v2_0_35=$RDI_DATADIR/xsim/ip/axi_uart16550_v2_0_35 +ecc_v2_0_17=$RDI_DATADIR/xsim/ip/ecc_v2_0_17 +v_frmbuf_rd_v2_2_12=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_2_12 +axi_data_fifo_v2_1_32=$RDI_DATADIR/xsim/ip/axi_data_fifo_v2_1_32 +xdfe_equalizer_v1_0_10=$RDI_DATADIR/xsim/ip/xdfe_equalizer_v1_0_10 +axi_mcdma_v1_2_0=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_2_0 +versal_cips_ps_vip_v1_0_11=$RDI_DATADIR/xsim/ip/versal_cips_ps_vip_v1_0_11 +emb_mem_gen_v1_0_10=$RDI_DATADIR/xsim/ip/emb_mem_gen_v1_0_10 +mdm_v3_2=$RDI_DATADIR/xsim/ip/mdm_v3_2 +displayport_v8_1_10=$RDI_DATADIR/xsim/ip/displayport_v8_1_10 +tcc_encoder_3gpp_v5_0_23=$RDI_DATADIR/xsim/ip/tcc_encoder_3gpp_v5_0_23 +pcie_qdma_mailbox_v1_0_8=$RDI_DATADIR/xsim/ip/pcie_qdma_mailbox_v1_0_8 +v_frmbuf_rd_v2_5_3=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_5_3 +util_vector_logic_v2_0_4=$RDI_DATADIR/xsim/ip/util_vector_logic_v2_0_4 +axis_dwidth_converter_v1_1_32=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_v1_1_32 +axi4svideo_bridge_v1_0_19=$RDI_DATADIR/xsim/ip/axi4svideo_bridge_v1_0_19 +util_ff_v1_0_4=$RDI_DATADIR/xsim/ip/util_ff_v1_0_4 +sim_xdma_cpp_v1=$RDI_DATADIR/xsim/ip/sim_xdma_cpp_v1 +microblaze_riscv_v1_0_3=$RDI_DATADIR/xsim/ip/microblaze_riscv_v1_0_3 +cpri_v8_11_22=$RDI_DATADIR/xsim/ip/cpri_v8_11_22 +v_vid_in_axi4s_v5_0_5=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v5_0_5 +dprx_v1_0_5=$RDI_DATADIR/xsim/ip/dprx_v1_0_5 +shell_utils_build_info_v2_0_0=$RDI_DATADIR/xsim/ip/shell_utils_build_info_v2_0_0 +util_reduced_logic_v2_0_6=$RDI_DATADIR/xsim/ip/util_reduced_logic_v2_0_6 +axi_pcie3_v3_0_32=$RDI_DATADIR/xsim/ip/axi_pcie3_v3_0_32 +v_smpte_uhdsdi_rx_v1_0_4=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_rx_v1_0_4 +axi_datamover_v5_1_35=$RDI_DATADIR/xsim/ip/axi_datamover_v5_1_35 +interlaken_v2_4_19=$RDI_DATADIR/xsim/ip/interlaken_v2_4_19 +nvmeha_v1_0_14=$RDI_DATADIR/xsim/ip/nvmeha_v1_0_14 +av_pat_gen_v2_0_2=$RDI_DATADIR/xsim/ip/av_pat_gen_v2_0_2 +bfr_ft_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/bfr_ft_wrapper_v1_0_0 +axis_mu_v1_0_1=$RDI_DATADIR/xsim/ip/axis_mu_v1_0_1 +zynq_ultra_ps_e_v3_3_14=$RDI_DATADIR/xsim/ip/zynq_ultra_ps_e_v3_3_14 +stm_v1_0=$RDI_DATADIR/xsim/ip/stm_v1_0 +v_hdmi_rx_v3_0_5=$RDI_DATADIR/xsim/ip/v_hdmi_rx_v3_0_5 +ethernet_1_10_25g_v2_7_18=$RDI_DATADIR/xsim/ip/ethernet_1_10_25g_v2_7_18 +v_tpg_v8_2_6=$RDI_DATADIR/xsim/ip/v_tpg_v8_2_6 +qdma_v5_0_12=$RDI_DATADIR/xsim/ip/qdma_v5_0_12 +pci64_v5_0_12=$RDI_DATADIR/xsim/ip/pci64_v5_0_12 +v_uhdsdi_vidgen_v1_0_3=$RDI_DATADIR/xsim/ip/v_uhdsdi_vidgen_v1_0_3 +jesd204c_v4_3_0=$RDI_DATADIR/xsim/ip/jesd204c_v4_3_0 +axi_timer_v2_0_35=$RDI_DATADIR/xsim/ip/axi_timer_v2_0_35 +c_compare_v12_0_10=$RDI_DATADIR/xsim/ip/c_compare_v12_0_10 +axi_clock_converter_v2_1_32=$RDI_DATADIR/xsim/ip/axi_clock_converter_v2_1_32 +axi_protocol_converter_v2_1_33=$RDI_DATADIR/xsim/ip/axi_protocol_converter_v2_1_33 +axi_dma_v7_1_34=$RDI_DATADIR/xsim/ip/axi_dma_v7_1_34 +pl_fileio_v1_0_0=$RDI_DATADIR/xsim/ip/pl_fileio_v1_0_0 +dfx_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/dfx_decoupler_v1_0_11 +axi_sideband_util_v1_0_17=$RDI_DATADIR/xsim/ip/axi_sideband_util_v1_0_17 +tmr_manager_v1_0_13=$RDI_DATADIR/xsim/ip/tmr_manager_v1_0_13 +fec_5g_common_v1_1_5=$RDI_DATADIR/xsim/ip/fec_5g_common_v1_1_5 +axi_ethernetlite_v3_0_32=$RDI_DATADIR/xsim/ip/axi_ethernetlite_v3_0_32 +lib_bmg_v1_0_18=$RDI_DATADIR/xsim/ip/lib_bmg_v1_0_18 +high_speed_selectio_wiz_v3_6_10=$RDI_DATADIR/xsim/ip/high_speed_selectio_wiz_v3_6_10 +c_shift_ram_v12_0_18=$RDI_DATADIR/xsim/ip/c_shift_ram_v12_0_18 +axi_pmon_v1_0_2=$RDI_DATADIR/xsim/ip/axi_pmon_v1_0_2 +v_vid_in_axi4s_v4_0_11=$RDI_DATADIR/xsim/ip/v_vid_in_axi4s_v4_0_11 +uhdsdi_gt_v2_2_0=$RDI_DATADIR/xsim/ip/uhdsdi_gt_v2_2_0 +v_tpg_v8_1_12=$RDI_DATADIR/xsim/ip/v_tpg_v8_1_12 +noc2_nsu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nsu_sim_v1_0_0 +axi_gpio_v2_0_35=$RDI_DATADIR/xsim/ip/axi_gpio_v2_0_35 +axis_interconnect_v1_1_24=$RDI_DATADIR/xsim/ip/axis_interconnect_v1_1_24 +adc_dac_if_phy_v1_0_0=$RDI_DATADIR/xsim/ip/adc_dac_if_phy_v1_0_0 +xilinx_vip=$RDI_DATADIR/xsim/ip/xilinx_vip +noc_ncrb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_ncrb_v1_0_0 +c_addsub_v12_0_19=$RDI_DATADIR/xsim/ip/c_addsub_v12_0_19 +sem_ultra_v3_1_27=$RDI_DATADIR/xsim/ip/sem_ultra_v3_1_27 +v_dual_splitter_v1_0_11=$RDI_DATADIR/xsim/ip/v_dual_splitter_v1_0_11 +v_warp_init_v1_1_5=$RDI_DATADIR/xsim/ip/v_warp_init_v1_1_5 +mipi_csi2_tx_ctrl_v1_0_6=$RDI_DATADIR/xsim/ip/mipi_csi2_tx_ctrl_v1_0_6 +roe_framer_v3_0_9=$RDI_DATADIR/xsim/ip/roe_framer_v3_0_9 +axi_remapper_tx_v1_0_3=$RDI_DATADIR/xsim/ip/axi_remapper_tx_v1_0_3 +axi_traffic_gen_v3_0_19=$RDI_DATADIR/xsim/ip/axi_traffic_gen_v3_0_19 +dfx_controller_v1_0_8=$RDI_DATADIR/xsim/ip/dfx_controller_v1_0_8 +pr_decoupler_v1_0_11=$RDI_DATADIR/xsim/ip/pr_decoupler_v1_0_11 +tmr_comparator_v1_0_8=$RDI_DATADIR/xsim/ip/tmr_comparator_v1_0_8 +rfadce5_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/rfadce5_wrapper_v1_0_0 +axi_mmu_v2_1_31=$RDI_DATADIR/xsim/ip/axi_mmu_v2_1_31 +axi_dwidth_converter_v2_1_33=$RDI_DATADIR/xsim/ip/axi_dwidth_converter_v2_1_33 +common_rpc_v1=$RDI_DATADIR/xsim/ip/common_rpc_v1 +axis_ila_adv_trig_v1_0_1=$RDI_DATADIR/xsim/ip/axis_ila_adv_trig_v1_0_1 +picxo_fracxo_v2_0_3=$RDI_DATADIR/xsim/ip/picxo_fracxo_v2_0_3 +dp_videoaxi4s_bridge_v1_0_3=$RDI_DATADIR/xsim/ip/dp_videoaxi4s_bridge_v1_0_3 +v_frmbuf_wr_v2_2_12=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v2_2_12 +sd_fec_beta_v1_0_0=$RDI_DATADIR/xsim/ip/sd_fec_beta_v1_0_0 +iomodule_v3_0=$RDI_DATADIR/xsim/ip/iomodule_v3_0 +lmb_bram_if_cntlr_v4_0_25=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0_25 +mrmac_v3_0_0=$RDI_DATADIR/xsim/ip/mrmac_v3_0_0 +tsn_endpoint_ethernet_mac_block_v1_0_18=$RDI_DATADIR/xsim/ip/tsn_endpoint_ethernet_mac_block_v1_0_18 +axis_vio_v1_0_12=$RDI_DATADIR/xsim/ip/axis_vio_v1_0_12 +xtlm=$RDI_DATADIR/xsim/ip/xtlm +bscan_jtag=$RDI_DATADIR/xsim/ip/bscan_jtag +floating_point_v7_1_19=$RDI_DATADIR/xsim/ip/floating_point_v7_1_19 +ai_pl_trig=$RDI_DATADIR/xsim/ip/ai_pl_trig +axi_dbg_hub=$RDI_DATADIR/xsim/ip/axi_dbg_hub +pc_cfr_v8_0_3=$RDI_DATADIR/xsim/ip/pc_cfr_v8_0_3 +axi_amm_bridge_v1_0_23=$RDI_DATADIR/xsim/ip/axi_amm_bridge_v1_0_23 +c_counter_binary_v12_0_20=$RDI_DATADIR/xsim/ip/c_counter_binary_v12_0_20 +xtlm_ipc_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ipc_v1_0 +axi_vip_v1_1_19=$RDI_DATADIR/xsim/ip/axi_vip_v1_1_19 +xlconcat_v2_1_6=$RDI_DATADIR/xsim/ip/xlconcat_v2_1_6 +axi_msg_v1_0_12=$RDI_DATADIR/xsim/ip/axi_msg_v1_0_12 +noc_nps6_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps6_v1_0_0 +xpm=$RDI_DATADIR/xsim/ip/xpm +bsip_v1_1_1=$RDI_DATADIR/xsim/ip/bsip_v1_1_1 +interrupt_control_v3_1_5=$RDI_DATADIR/xsim/ip/interrupt_control_v3_1_5 +gtwizard_ultrascale_v1_7_19=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_7_19 +axi_intc_v4_1=$RDI_DATADIR/xsim/ip/axi_intc_v4_1 +rld3_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/rld3_pl_phy_v1_0_2 +mipi_rx_phy_v1_0_1=$RDI_DATADIR/xsim/ip/mipi_rx_phy_v1_0_1 +sim_cpu_v1_0=$RDI_DATADIR/xsim/ip/sim_cpu_v1_0 +dds_compiler_v6_0_26=$RDI_DATADIR/xsim/ip/dds_compiler_v6_0_26 +xdma_v4_1_31=$RDI_DATADIR/xsim/ip/xdma_v4_1_31 +axi_fifo_mm_s_v4_3_5=$RDI_DATADIR/xsim/ip/axi_fifo_mm_s_v4_3_5 +l_ethernet_v3_3_13=$RDI_DATADIR/xsim/ip/l_ethernet_v3_3_13 +xdfe_nlf_v1_1_2=$RDI_DATADIR/xsim/ip/xdfe_nlf_v1_1_2 +axi_mcdma_v1_1_14=$RDI_DATADIR/xsim/ip/axi_mcdma_v1_1_14 +remote_port_c_v4=$RDI_DATADIR/xsim/ip/remote_port_c_v4 +ltlib_v1_0_2=$RDI_DATADIR/xsim/ip/ltlib_v1_0_2 +xdfe_common_v1_0_4=$RDI_DATADIR/xsim/ip/xdfe_common_v1_0_4 +axi_intc_v4_1_20=$RDI_DATADIR/xsim/ip/axi_intc_v4_1_20 +axi_uartlite_v2_0_37=$RDI_DATADIR/xsim/ip/axi_uartlite_v2_0_37 +gmii_to_rgmii_v4_1_17=$RDI_DATADIR/xsim/ip/gmii_to_rgmii_v4_1_17 +cdcam_v1_2_0=$RDI_DATADIR/xsim/ip/cdcam_v1_2_0 +blk_mem_gen_v8_4_9=$RDI_DATADIR/xsim/ip/blk_mem_gen_v8_4_9 +system_cache_v5_0_12=$RDI_DATADIR/xsim/ip/system_cache_v5_0_12 +cmac_usplus_v3_1_19=$RDI_DATADIR/xsim/ip/cmac_usplus_v3_1_19 +axi_interface_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/axi_interface_monitor_v1_1_0 +axi_interconnect_v1_7_24=$RDI_DATADIR/xsim/ip/axi_interconnect_v1_7_24 +noc2_xbr2x4_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr2x4_v1_0_0 +uram_rd_back_v1_0_4=$RDI_DATADIR/xsim/ip/uram_rd_back_v1_0_4 +common_cpp_v1_0=$RDI_DATADIR/xsim/ip/common_cpp_v1_0 +sem_v4_1_15=$RDI_DATADIR/xsim/ip/sem_v4_1_15 +v_hdmi_tx_v3_0_5=$RDI_DATADIR/xsim/ip/v_hdmi_tx_v3_0_5 +dft_v4_2_9=$RDI_DATADIR/xsim/ip/dft_v4_2_9 +ieee802d3_400g_rs_fec_v3_0_3=$RDI_DATADIR/xsim/ip/ieee802d3_400g_rs_fec_v3_0_3 +srio_gen2_v4_1_20=$RDI_DATADIR/xsim/ip/srio_gen2_v4_1_20 +mipi_tx_phy_v1_0_0=$RDI_DATADIR/xsim/ip/mipi_tx_phy_v1_0_0 +axi_epc_v2_0_36=$RDI_DATADIR/xsim/ip/axi_epc_v2_0_36 +i2s_transmitter_v1_0_9=$RDI_DATADIR/xsim/ip/i2s_transmitter_v1_0_9 +flexo_100g_rs_fec_v1_0_30=$RDI_DATADIR/xsim/ip/flexo_100g_rs_fec_v1_0_30 +axi_tlm_ext_v1_0=$RDI_DATADIR/xsim/ip/axi_tlm_ext_v1_0 +axis_infrastructure_v1_1_1=$RDI_DATADIR/xsim/ip/axis_infrastructure_v1_1_1 +ai_noc=$RDI_DATADIR/xsim/ip/ai_noc +axi_emc_v3_0_33=$RDI_DATADIR/xsim/ip/axi_emc_v3_0_33 +multi_channel_25g_rs_fec_v1_0_28=$RDI_DATADIR/xsim/ip/multi_channel_25g_rs_fec_v1_0_28 +axi_protocol_checker_v2_0_19=$RDI_DATADIR/xsim/ip/axi_protocol_checker_v2_0_19 +axi_register_slice_v2_1_33=$RDI_DATADIR/xsim/ip/axi_register_slice_v2_1_33 +v_letterbox_v1_1_13=$RDI_DATADIR/xsim/ip/v_letterbox_v1_1_13 +gtwizard_ultrascale_v1_6_17=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_6_17 +dprx_fec_8b10b_v1_0_3=$RDI_DATADIR/xsim/ip/dprx_fec_8b10b_v1_0_3 +axis_broadcaster_v1_1_32=$RDI_DATADIR/xsim/ip/axis_broadcaster_v1_1_32 +axis_clock_converter_v1_1_34=$RDI_DATADIR/xsim/ip/axis_clock_converter_v1_1_34 +ahblite_axi_bridge_v3_0_28=$RDI_DATADIR/xsim/ip/ahblite_axi_bridge_v3_0_28 +gtwizard_ultrascale_v1_5_4=$RDI_DATADIR/xsim/ip/gtwizard_ultrascale_v1_5_4 +sid_v8_0_22=$RDI_DATADIR/xsim/ip/sid_v8_0_22 +sim_ddr_v1_0=$RDI_DATADIR/xsim/ip/sim_ddr_v1_0 +axi_infrastructure_v1_1_0=$RDI_DATADIR/xsim/ip/axi_infrastructure_v1_1_0 +v_vid_gt_bridge_v2_0_5=$RDI_DATADIR/xsim/ip/v_vid_gt_bridge_v2_0_5 +axis_dwidth_converter_sc_v1_1=$RDI_DATADIR/xsim/ip/axis_dwidth_converter_sc_v1_1 +sim_qdma_cpp_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_cpp_v1_0 +noc_nidb_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nidb_v1_0_0 +axis_ila_pp_v1_0_2=$RDI_DATADIR/xsim/ip/axis_ila_pp_v1_0_2 +noc_sc_v1_0_0=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0 +remote_port_sc_v4=$RDI_DATADIR/xsim/ip/remote_port_sc_v4 +ten_gig_eth_pcs_pma_v6_0_28=$RDI_DATADIR/xsim/ip/ten_gig_eth_pcs_pma_v6_0_28 +axis_register_slice_v1_1_33=$RDI_DATADIR/xsim/ip/axis_register_slice_v1_1_33 +clk_vip_v1_0_5=$RDI_DATADIR/xsim/ip/clk_vip_v1_0_5 +noc2_nps_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps_v1_0_0 +v_vid_sdi_tx_bridge_v2_0_3=$RDI_DATADIR/xsim/ip/v_vid_sdi_tx_bridge_v2_0_3 +processing_system7_vip_v1_0_21=$RDI_DATADIR/xsim/ip/processing_system7_vip_v1_0_21 +microblaze_v9_5_5=$RDI_DATADIR/xsim/ip/microblaze_v9_5_5 +cmac_v2_6_17=$RDI_DATADIR/xsim/ip/cmac_v2_6_17 +pcie_jtag_v1_0_1=$RDI_DATADIR/xsim/ip/pcie_jtag_v1_0_1 +mem_pl_v1_0_2=$RDI_DATADIR/xsim/ip/mem_pl_v1_0_2 +mpram_v1_0_5=$RDI_DATADIR/xsim/ip/mpram_v1_0_5 +ai_pl=$RDI_DATADIR/xsim/ip/ai_pl +trace_hub_v1_1_0=$RDI_DATADIR/xsim/ip/trace_hub_v1_1_0 +v_hscaler_v1_1_13=$RDI_DATADIR/xsim/ip/v_hscaler_v1_1_13 +ddr4_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/ddr4_pl_phy_v1_0_2 +axis_protocol_checker_v2_0_17=$RDI_DATADIR/xsim/ip/axis_protocol_checker_v2_0_17 +xbip_multadd_v3_0_21=$RDI_DATADIR/xsim/ip/xbip_multadd_v3_0_21 +axi_remapper_rx_v1_0_2=$RDI_DATADIR/xsim/ip/axi_remapper_rx_v1_0_2 +axi_vfifo_ctrl_v2_0_36=$RDI_DATADIR/xsim/ip/axi_vfifo_ctrl_v2_0_36 +v_warp_filter_v1_1_5=$RDI_DATADIR/xsim/ip/v_warp_filter_v1_1_5 +xfft_v9_1_13=$RDI_DATADIR/xsim/ip/xfft_v9_1_13 +axi_bram_ctrl_v4_1_11=$RDI_DATADIR/xsim/ip/axi_bram_ctrl_v4_1_11 +v_hcresampler_v1_1_13=$RDI_DATADIR/xsim/ip/v_hcresampler_v1_1_13 +v_demosaic_v1_1_13=$RDI_DATADIR/xsim/ip/v_demosaic_v1_1_13 +lte_fft_v2_1_11=$RDI_DATADIR/xsim/ip/lte_fft_v2_1_11 +xsdbs_v1_0_4=$RDI_DATADIR/xsim/ip/xsdbs_v1_0_4 +mrmac_v2_3_2=$RDI_DATADIR/xsim/ip/mrmac_v2_3_2 +v_tc_v6_2_9=$RDI_DATADIR/xsim/ip/v_tc_v6_2_9 +div_gen_v5_1_23=$RDI_DATADIR/xsim/ip/div_gen_v5_1_23 +rs_encoder_v9_0_22=$RDI_DATADIR/xsim/ip/rs_encoder_v9_0_22 +axi_utils_v2_0_10=$RDI_DATADIR/xsim/ip/axi_utils_v2_0_10 +v_axi4s_remap_v1_1_12=$RDI_DATADIR/xsim/ip/v_axi4s_remap_v1_1_12 +v_mix_v5_2_11=$RDI_DATADIR/xsim/ip/v_mix_v5_2_11 +xdfe_fft_v1_0_8=$RDI_DATADIR/xsim/ip/xdfe_fft_v1_0_8 +cic_compiler_v4_0_20=$RDI_DATADIR/xsim/ip/cic_compiler_v4_0_20 +sim_clk_gen_v1_0_5=$RDI_DATADIR/xsim/ip/sim_clk_gen_v1_0_5 +qdriv_pl_phy_v1_0_2=$RDI_DATADIR/xsim/ip/qdriv_pl_phy_v1_0_2 +lib_srl_fifo_v1_0_4=$RDI_DATADIR/xsim/ip/lib_srl_fifo_v1_0_4 +dbg_intf=$RDI_DATADIR/xsim/ip/dbg_intf +hdcp22_cipher_v1_0_5=$RDI_DATADIR/xsim/ip/hdcp22_cipher_v1_0_5 +usxgmii_v1_2_20=$RDI_DATADIR/xsim/ip/usxgmii_v1_2_20 +v_smpte_sdi_v3_0_12=$RDI_DATADIR/xsim/ip/v_smpte_sdi_v3_0_12 +mipi_dsi2_rx_ctrl_v1_0_1=$RDI_DATADIR/xsim/ip/mipi_dsi2_rx_ctrl_v1_0_1 +mdm_v3_2_27=$RDI_DATADIR/xsim/ip/mdm_v3_2_27 +accelerator_monitor_v1_1_0=$RDI_DATADIR/xsim/ip/accelerator_monitor_v1_1_0 +g975_efec_i7_v2_0_24=$RDI_DATADIR/xsim/ip/g975_efec_i7_v2_0_24 +axis_combiner_v1_1_31=$RDI_DATADIR/xsim/ip/axis_combiner_v1_1_31 +xpm_cdc_gen_v1_0_4=$RDI_DATADIR/xsim/ip/xpm_cdc_gen_v1_0_4 +dcmac_v2_5_0=$RDI_DATADIR/xsim/ip/dcmac_v2_5_0 +convolution_v9_0_21=$RDI_DATADIR/xsim/ip/convolution_v9_0_21 +microblaze_v11_0_14=$RDI_DATADIR/xsim/ip/microblaze_v11_0_14 +cpm4_v1_0_17=$RDI_DATADIR/xsim/ip/cpm4_v1_0_17 +cmpy_v6_0_25=$RDI_DATADIR/xsim/ip/cmpy_v6_0_25 +xlconstant_v1_1_9=$RDI_DATADIR/xsim/ip/xlconstant_v1_1_9 +noc_mc_ddr5_phy_v1_0_1=$RDI_DATADIR/xsim/ip/noc_mc_ddr5_phy_v1_0_1 +spdif_v2_0_30=$RDI_DATADIR/xsim/ip/spdif_v2_0_30 +oran_radio_if_v3_2_1=$RDI_DATADIR/xsim/ip/oran_radio_if_v3_2_1 +v_hdmi_rx1_v1_0_11=$RDI_DATADIR/xsim/ip/v_hdmi_rx1_v1_0_11 +cam_v3_1_0=$RDI_DATADIR/xsim/ip/cam_v3_1_0 +emb_fifo_gen_v1_0_6=$RDI_DATADIR/xsim/ip/emb_fifo_gen_v1_0_6 +axi_iic_v2_1_9=$RDI_DATADIR/xsim/ip/axi_iic_v2_1_9 +axi_perf_mon_v5_0_35=$RDI_DATADIR/xsim/ip/axi_perf_mon_v5_0_35 +v_tpg_v8_0_16=$RDI_DATADIR/xsim/ip/v_tpg_v8_0_16 +mutex_v2_1_14=$RDI_DATADIR/xsim/ip/mutex_v2_1_14 +emu_perf_common_v1_0=$RDI_DATADIR/xsim/ip/emu_perf_common_v1_0 +lib_fifo_v1_0_20=$RDI_DATADIR/xsim/ip/lib_fifo_v1_0_20 +advanced_io_wizard_v1_0_15=$RDI_DATADIR/xsim/ip/advanced_io_wizard_v1_0_15 +c_reg_fd_v12_0_10=$RDI_DATADIR/xsim/ip/c_reg_fd_v12_0_10 +axi4stream_vip_v1_1_19=$RDI_DATADIR/xsim/ip/axi4stream_vip_v1_1_19 +lmb_bram_if_cntlr_v4_0=$RDI_DATADIR/xsim/ip/lmb_bram_if_cntlr_v4_0 +lmb_v10_v3_0_14=$RDI_DATADIR/xsim/ip/lmb_v10_v3_0_14 +ieee802d3_50g_rs_fec_v1_0_25=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v1_0_25 +icap_arb_v1_0_2=$RDI_DATADIR/xsim/ip/icap_arb_v1_0_2 +noc_npp_rptr_v1_0_0=$RDI_DATADIR/xsim/ip/noc_npp_rptr_v1_0_0 +vid_edid_v1_0_3=$RDI_DATADIR/xsim/ip/vid_edid_v1_0_3 +shell_utils_msp432_bsl_crc_gen_v1_0_2=$RDI_DATADIR/xsim/ip/shell_utils_msp432_bsl_crc_gen_v1_0_2 +sim_qdma_sc_v1_0=$RDI_DATADIR/xsim/ip/sim_qdma_sc_v1_0 +mult_gen_v12_0_22=$RDI_DATADIR/xsim/ip/mult_gen_v12_0_22 +timer_sync_1588_v1_2_5=$RDI_DATADIR/xsim/ip/timer_sync_1588_v1_2_5 +dfe_channelizer_wrapper_v1_0_0=$RDI_DATADIR/xsim/ip/dfe_channelizer_wrapper_v1_0_0 +clk_gen_sim_v1_0_4=$RDI_DATADIR/xsim/ip/clk_gen_sim_v1_0_4 +hsdp_trace_v2_0_2=$RDI_DATADIR/xsim/ip/hsdp_trace_v2_0_2 +noc_sc_v1_0_0_legacy=$RDI_DATADIR/xsim/ip/noc_sc_v1_0_0_legacy +v_frmbuf_wr_v3_0_0=$RDI_DATADIR/xsim/ip/v_frmbuf_wr_v3_0_0 +xdfe_cc_mixer_v2_0_5=$RDI_DATADIR/xsim/ip/xdfe_cc_mixer_v2_0_5 +mipi_dsi_tx_ctrl_v1_0_10=$RDI_DATADIR/xsim/ip/mipi_dsi_tx_ctrl_v1_0_10 +axi_apb_bridge_v3_0_20=$RDI_DATADIR/xsim/ip/axi_apb_bridge_v3_0_20 +ieee802d3_clause74_fec_v1_0_19=$RDI_DATADIR/xsim/ip/ieee802d3_clause74_fec_v1_0_19 +sim_xdma_sc_v1=$RDI_DATADIR/xsim/ip/sim_xdma_sc_v1 +axi_tft_v2_0_29=$RDI_DATADIR/xsim/ip/axi_tft_v2_0_29 +viterbi_v9_1_18=$RDI_DATADIR/xsim/ip/viterbi_v9_1_18 +ieee802d3_50g_rs_fec_v2_0_18=$RDI_DATADIR/xsim/ip/ieee802d3_50g_rs_fec_v2_0_18 +microblaze_mcs_v2_3_7=$RDI_DATADIR/xsim/ip/microblaze_mcs_v2_3_7 +fifo_generator_v13_0_7=$RDI_DATADIR/xsim/ip/fifo_generator_v13_0_7 +video_frame_crc_v1_0_6=$RDI_DATADIR/xsim/ip/video_frame_crc_v1_0_6 +dist_mem_gen_v8_0_15=$RDI_DATADIR/xsim/ip/dist_mem_gen_v8_0_15 +ilknf_v1_3_5=$RDI_DATADIR/xsim/ip/ilknf_v1_3_5 +rwd_tlmmodel_v1=$RDI_DATADIR/xsim/ip/rwd_tlmmodel_v1 +axi_tg_sc_v1_0=$RDI_DATADIR/xsim/ip/axi_tg_sc_v1_0 +axi_ethernet_buffer_v2_0_25=$RDI_DATADIR/xsim/ip/axi_ethernet_buffer_v2_0_25 +g975_efec_i4_v1_0_23=$RDI_DATADIR/xsim/ip/g975_efec_i4_v1_0_23 +c_accum_v12_0_19=$RDI_DATADIR/xsim/ip/c_accum_v12_0_19 +aie_xtlm_v1_0_0=$RDI_DATADIR/xsim/ip/aie_xtlm_v1_0_0 +ieee802d3_25g_rs_fec_v1_0_31=$RDI_DATADIR/xsim/ip/ieee802d3_25g_rs_fec_v1_0_31 +smartconnect_v1_0=$RDI_DATADIR/xsim/ip/smartconnect_v1_0 +noc_hbm_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_hbm_nmu_sim_v1_0_0 +xdfe_nr_prach_v2_0_4=$RDI_DATADIR/xsim/ip/xdfe_nr_prach_v2_0_4 +gig_ethernet_pcs_pma_v16_2_21=$RDI_DATADIR/xsim/ip/gig_ethernet_pcs_pma_v16_2_21 +trace_s2mm_v2_0_1=$RDI_DATADIR/xsim/ip/trace_s2mm_v2_0_1 +v_sdi_rx_vid_bridge_v2_0_3=$RDI_DATADIR/xsim/ip/v_sdi_rx_vid_bridge_v2_0_3 +fit_timer_v2_0_12=$RDI_DATADIR/xsim/ip/fit_timer_v2_0_12 +ldpc_5gnr_v1_0_4=$RDI_DATADIR/xsim/ip/ldpc_5gnr_v1_0_4 +soft_ecc_proxy_v1_1_2=$RDI_DATADIR/xsim/ip/soft_ecc_proxy_v1_1_2 +axi_c2c_v1_0_11=$RDI_DATADIR/xsim/ip/axi_c2c_v1_0_11 +noc_nps4_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nps4_v1_0_0 +hdcp22_rng_v1_0_3=$RDI_DATADIR/xsim/ip/hdcp22_rng_v1_0_3 +v_smpte_uhdsdi_v1_0_12=$RDI_DATADIR/xsim/ip/v_smpte_uhdsdi_v1_0_12 +bs_mux_v1_0_1=$RDI_DATADIR/xsim/ip/bs_mux_v1_0_1 +noc_nmu_sim_v1_0_0=$RDI_DATADIR/xsim/ip/noc_nmu_sim_v1_0_0 +fir_compiler_v7_2_23=$RDI_DATADIR/xsim/ip/fir_compiler_v7_2_23 +axi_hbicap_v1_0_8=$RDI_DATADIR/xsim/ip/axi_hbicap_v1_0_8 +x5io_wizard_phy_v1_0_1=$RDI_DATADIR/xsim/ip/x5io_wizard_phy_v1_0_1 +canfd_v3_0_12=$RDI_DATADIR/xsim/ip/canfd_v3_0_12 +nvme_tc_v3_0_8=$RDI_DATADIR/xsim/ip/nvme_tc_v3_0_8 +axi_usb2_device_v5_0_34=$RDI_DATADIR/xsim/ip/axi_usb2_device_v5_0_34 +ldpc_5gnr_lite_v1_0_3=$RDI_DATADIR/xsim/ip/ldpc_5gnr_lite_v1_0_3 +tmr_inject_v1_0_7=$RDI_DATADIR/xsim/ip/tmr_inject_v1_0_7 +v_uhdsdi_audio_v2_0_9=$RDI_DATADIR/xsim/ip/v_uhdsdi_audio_v2_0_9 +xsdbm_v3_0_3=$RDI_DATADIR/xsim/ip/xsdbm_v3_0_3 +v_vscaler_v1_1_13=$RDI_DATADIR/xsim/ip/v_vscaler_v1_1_13 +vid_phy_controller_v2_2_19=$RDI_DATADIR/xsim/ip/vid_phy_controller_v2_2_19 +mem_tg_v1_0_15=$RDI_DATADIR/xsim/ip/mem_tg_v1_0_15 +dfx_axi_shutdown_manager_v1_0_4=$RDI_DATADIR/xsim/ip/dfx_axi_shutdown_manager_v1_0_4 +ibert_lib_v1_0_12=$RDI_DATADIR/xsim/ip/ibert_lib_v1_0_12 +ta_dma_v1_0_17=$RDI_DATADIR/xsim/ip/ta_dma_v1_0_17 +cam_blk_lib_v1_2_0=$RDI_DATADIR/xsim/ip/cam_blk_lib_v1_2_0 +noc2_nps6x_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_nps6x_v1_0_0 +noc2_xbr4x2_v1_0_0=$RDI_DATADIR/xsim/ip/noc2_xbr4x2_v1_0_0 +tcc_decoder_3gppmm_v2_0_28=$RDI_DATADIR/xsim/ip/tcc_decoder_3gppmm_v2_0_28 +noc_nps_v1_0_1=$RDI_DATADIR/xsim/ip/noc_nps_v1_0_1 +ddr4_pl_v1_0_15=$RDI_DATADIR/xsim/ip/ddr4_pl_v1_0_15 +advanced_io_wizard_phy_v1_0_4=$RDI_DATADIR/xsim/ip/advanced_io_wizard_phy_v1_0_4 +ft_prach_v1_2_3=$RDI_DATADIR/xsim/ip/ft_prach_v1_2_3 +lib_pkg_v1_0_4=$RDI_DATADIR/xsim/ip/lib_pkg_v1_0_4 +jtag_axi=$RDI_DATADIR/xsim/ip/jtag_axi +x5io_wizard_v1_0_6=$RDI_DATADIR/xsim/ip/x5io_wizard_v1_0_6 +axis_subset_converter_v1_1_33=$RDI_DATADIR/xsim/ip/axis_subset_converter_v1_1_33 +axi_quad_spi_v3_2_32=$RDI_DATADIR/xsim/ip/axi_quad_spi_v3_2_32 +g709_rs_encoder_v2_2_13=$RDI_DATADIR/xsim/ip/g709_rs_encoder_v2_2_13 +hdcp_v1_0_6=$RDI_DATADIR/xsim/ip/hdcp_v1_0_6 +v_frmbuf_rd_v2_4_4=$RDI_DATADIR/xsim/ip/v_frmbuf_rd_v2_4_4 +gigantic_mux=$RDI_DATADIR/xsim/ip/gigantic_mux +quadsgmii_v3_5_21=$RDI_DATADIR/xsim/ip/quadsgmii_v3_5_21 +xtlm_ap_ctrl_v1_0=$RDI_DATADIR/xsim/ip/xtlm_ap_ctrl_v1_0 +rst_vip_v1_0_7=$RDI_DATADIR/xsim/ip/rst_vip_v1_0_7 +ethernet_offload_v1_0_0=$RDI_DATADIR/xsim/ip/ethernet_offload_v1_0_0 +cpm5_v1_0_17=$RDI_DATADIR/xsim/ip/cpm5_v1_0_17 +processing_system7_v5_5_6=$RDI_DATADIR/xsim/ip/processing_system7_v5_5_6 +debug_tcp_server_v1=$RDI_DATADIR/xsim/ip/debug_tcp_server_v1 +xbip_dsp48_wrapper_v3_0_6=$RDI_DATADIR/xsim/ip/xbip_dsp48_wrapper_v3_0_6 +vitis_deadlock_detector_v1_0_2=$RDI_DATADIR/xsim/ip/vitis_deadlock_detector_v1_0_2 +axis_dbg_stub_v1_0_1=$RDI_DATADIR/xsim/ip/axis_dbg_stub_v1_0_1 +displayport_v9_0_10=$RDI_DATADIR/xsim/ip/displayport_v9_0_10 +visp_v1_0_0=$RDI_DATADIR/xsim/ip/visp_v1_0_0 +bscan_axi_v1_0_2=$RDI_DATADIR/xsim/ip/bscan_axi_v1_0_2 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xvhdl.log b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xvhdl.log new file mode 100644 index 0000000..e69de29 diff --git a/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xvhdl.pb b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xvhdl.pb new file mode 100644 index 0000000..b155e40 --- /dev/null +++ b/tp_vivado/proj/ECG.sim/sim_1/behav/xsim/xvhdl.pb @@ -0,0 +1,4 @@ + + + +End Record \ No newline at end of file diff --git a/tp_vivado/proj/ECG.xpr b/tp_vivado/proj/ECG.xpr new file mode 100644 index 0000000..6489ec6 --- /dev/null +++ b/tp_vivado/proj/ECG.xpr @@ -0,0 +1,302 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- Product Version: Vivado v2024.2 (64-bit) --> +<!-- --> +<!-- Copyright 1986-2022 Xilinx, Inc. All Rights Reserved. --> +<!-- Copyright 2022-2024 Advanced Micro Devices, Inc. All Rights Reserved. --> + +<Project Product="Vivado" Version="7" Minor="68" Path="C:/Users/Mouthieu.MB-TUF/Documents/cours-et-projets/imt/medcon/tp-ecg-etudiant-m23bossa/tp_vivado/proj/ECG.xpr"> + <DefaultLaunch Dir="$PRUNDIR"/> + <Configuration> + <Option Name="Id" Val="cab960dde7154154b2e2b77e2633c827"/> + <Option Name="Part" Val="xc7a200tsbg484-1"/> + <Option Name="CompiledLibDir" Val="$PCACHEDIR/compile_simlib"/> + <Option Name="CompiledLibDirXSim" Val=""/> + <Option Name="CompiledLibDirModelSim" Val="$PCACHEDIR/compile_simlib/modelsim"/> + <Option Name="CompiledLibDirQuesta" Val="$PCACHEDIR/compile_simlib/questa"/> + <Option Name="CompiledLibDirXcelium" Val="$PCACHEDIR/compile_simlib/xcelium"/> + <Option Name="CompiledLibDirVCS" Val="$PCACHEDIR/compile_simlib/vcs"/> + <Option Name="CompiledLibDirRiviera" Val="$PCACHEDIR/compile_simlib/riviera"/> + <Option Name="CompiledLibDirActivehdl" Val="$PCACHEDIR/compile_simlib/activehdl"/> + <Option Name="SimulatorInstallDirModelSim" Val=""/> + <Option Name="SimulatorInstallDirQuesta" Val=""/> + <Option Name="SimulatorInstallDirXcelium" Val=""/> + <Option Name="SimulatorInstallDirVCS" Val=""/> + <Option Name="SimulatorInstallDirRiviera" Val=""/> + <Option Name="SimulatorInstallDirActiveHdl" Val=""/> + <Option Name="SimulatorGccInstallDirModelSim" Val=""/> + <Option Name="SimulatorGccInstallDirQuesta" Val=""/> + <Option Name="SimulatorGccInstallDirXcelium" Val=""/> + <Option Name="SimulatorGccInstallDirVCS" Val=""/> + <Option Name="SimulatorGccInstallDirRiviera" Val=""/> + <Option Name="SimulatorGccInstallDirActiveHdl" Val=""/> + <Option Name="SimulatorVersionXsim" Val="2024.2"/> + <Option Name="SimulatorVersionModelSim" Val="2024.1"/> + <Option Name="SimulatorVersionQuesta" Val="2024.1"/> + <Option Name="SimulatorVersionXcelium" Val="24.03.003"/> + <Option Name="SimulatorVersionVCS" Val="V-2023.12-SP1"/> + <Option Name="SimulatorVersionRiviera" Val="2024.04"/> + <Option Name="SimulatorVersionActiveHdl" Val="15.0"/> + <Option Name="SimulatorGccVersionXsim" Val="9.3.0"/> + <Option Name="SimulatorGccVersionModelSim" Val="7.4.0"/> + <Option Name="SimulatorGccVersionQuesta" Val="7.4.0"/> + <Option Name="SimulatorGccVersionXcelium" Val="9.3.0"/> + <Option Name="SimulatorGccVersionVCS" Val="9.2.0"/> + <Option Name="SimulatorGccVersionRiviera" Val="9.3.0"/> + <Option Name="SimulatorGccVersionActiveHdl" Val="9.3.0"/> + <Option Name="TargetLanguage" Val="VHDL"/> + <Option Name="BoardPart" Val=""/> + <Option Name="ActiveSimSet" Val="sim_1"/> + <Option Name="DefaultLib" Val="xil_defaultlib"/> + <Option Name="ProjectType" Val="Default"/> + <Option Name="IPRepoPath" Val="$PPRDIR/../repo"/> + <Option Name="IPOutputRepo" Val="$PCACHEDIR/ip"/> + <Option Name="IPDefaultOutputPath" Val="$PGENDIR/sources_1"/> + <Option Name="IPCachePermission" Val="read"/> + <Option Name="IPCachePermission" Val="write"/> + <Option Name="EnableCoreContainer" Val="FALSE"/> + <Option Name="EnableResourceEstimation" Val="FALSE"/> + <Option Name="SimCompileState" Val="TRUE"/> + <Option Name="CreateRefXciForCoreContainers" Val="FALSE"/> + <Option Name="IPUserFilesDir" Val="$PIPUSERFILESDIR"/> + <Option Name="IPStaticSourceDir" Val="$PIPUSERFILESDIR/ipstatic"/> + <Option Name="EnableBDX" Val="FALSE"/> + <Option Name="WTXSimLaunchSim" Val="30"/> + <Option Name="WTModelSimLaunchSim" Val="0"/> + <Option Name="WTQuestaLaunchSim" Val="0"/> + <Option Name="WTIesLaunchSim" Val="0"/> + <Option Name="WTVcsLaunchSim" Val="0"/> + <Option Name="WTRivieraLaunchSim" Val="0"/> + <Option Name="WTActivehdlLaunchSim" Val="0"/> + <Option Name="WTXSimExportSim" Val="0"/> + <Option Name="WTModelSimExportSim" Val="0"/> + <Option Name="WTQuestaExportSim" Val="0"/> + <Option Name="WTIesExportSim" Val="0"/> + <Option Name="WTVcsExportSim" Val="0"/> + <Option Name="WTRivieraExportSim" Val="0"/> + <Option Name="WTActivehdlExportSim" Val="0"/> + <Option Name="GenerateIPUpgradeLog" Val="TRUE"/> + <Option Name="XSimRadix" Val="hex"/> + <Option Name="XSimTimeUnit" Val="ns"/> + <Option Name="XSimArrayDisplayLimit" Val="1024"/> + <Option Name="XSimTraceLimit" Val="65536"/> + <Option Name="SimTypes" Val="rtl"/> + <Option Name="SimTypes" Val="bfm"/> + <Option Name="SimTypes" Val="tlm"/> + <Option Name="SimTypes" Val="tlm_dpi"/> + <Option Name="MEMEnableMemoryMapGeneration" Val="TRUE"/> + <Option Name="DcpsUptoDate" Val="TRUE"/> + <Option Name="UseInlineHdlIP" Val="TRUE"/> + <Option Name="LocalIPRepoLeafDirName" Val="ip_repo"/> + </Configuration> + <FileSets Version="1" Minor="32"> + <FileSet Name="sources_1" Type="DesignSrcs" RelSrcDir="$PSRCDIR/sources_1" RelGenDir="$PGENDIR/sources_1"> + <Filter Type="Srcs"/> + <File Path="$PPRDIR/../src/ip/clk_wiz_0/clk_wiz_0.xci"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/audio_init.v"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/debounce.v"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/TWICtl.vhd"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/controlUnit.vhd"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/operativeUnit.vhd"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/firUnit.vhd"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/fir.vhd"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/i2s_ctl.vhd"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/audioProc.v"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/processingUnitIP.v"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <File Path="$PPRDIR/../src/hdl/tb_firUnit.vhd"> + <FileInfo> + <Attr Name="AutoDisabled" Val="1"/> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="simulation"/> + </FileInfo> + </File> + <Config> + <Option Name="DesignMode" Val="RTL"/> + <Option Name="TopModule" Val="audioProc"/> + <Option Name="TopAutoSet" Val="TRUE"/> + </Config> + </FileSet> + <FileSet Name="constrs_1" Type="Constrs" RelSrcDir="$PSRCDIR/constrs_1" RelGenDir="$PGENDIR/constrs_1"> + <Filter Type="Constrs"/> + <File Path="$PPRDIR/../src/constraints/NexysVideo_Master.xdc"> + <FileInfo> + <Attr Name="UsedIn" Val="synthesis"/> + <Attr Name="UsedIn" Val="implementation"/> + </FileInfo> + </File> + <Config> + <Option Name="ConstrsType" Val="XDC"/> + </Config> + </FileSet> + <FileSet Name="sim_1" Type="SimulationSrcs" RelSrcDir="$PSRCDIR/sim_1" RelGenDir="$PGENDIR/sim_1"> + <Filter Type="Srcs"/> + <Config> + <Option Name="DesignMode" Val="RTL"/> + <Option Name="TopModule" Val="tb_firUnit"/> + <Option Name="TopLib" Val="xil_defaultlib"/> + <Option Name="TransportPathDelay" Val="0"/> + <Option Name="TransportIntDelay" Val="0"/> + <Option Name="SelectedSimModel" Val="rtl"/> + <Option Name="PamDesignTestbench" Val=""/> + <Option Name="PamDutBypassFile" Val="xil_dut_bypass"/> + <Option Name="PamSignalDriverFile" Val="xil_bypass_driver"/> + <Option Name="PamPseudoTop" Val="pseudo_tb"/> + <Option Name="SrcSet" Val="sources_1"/> + <Option Name="CosimPdi" Val=""/> + <Option Name="CosimPlatform" Val=""/> + <Option Name="CosimElf" Val=""/> + </Config> + </FileSet> + <FileSet Name="utils_1" Type="Utils" RelSrcDir="$PSRCDIR/utils_1" RelGenDir="$PGENDIR/utils_1"> + <Filter Type="Utils"/> + <Config> + <Option Name="TopAutoSet" Val="TRUE"/> + </Config> + </FileSet> + </FileSets> + <Simulators> + <Simulator Name="XSim"> + <Option Name="Description" Val="Vivado Simulator"/> + <Option Name="CompiledLib" Val="0"/> + </Simulator> + <Simulator Name="ModelSim"> + <Option Name="Description" Val="ModelSim Simulator"/> + </Simulator> + <Simulator Name="Questa"> + <Option Name="Description" Val="Questa Advanced Simulator"/> + </Simulator> + <Simulator Name="Riviera"> + <Option Name="Description" Val="Riviera-PRO Simulator"/> + </Simulator> + <Simulator Name="ActiveHDL"> + <Option Name="Description" Val="Active-HDL Simulator"/> + </Simulator> + </Simulators> + <Runs Version="1" Minor="22"> + <Run Id="synth_1" Type="Ft3:Synth" SrcSet="sources_1" Part="xc7a200tsbg484-1" ConstrsSet="constrs_1" Description="Higher performance designs, resource sharing is turned off, the global fanout guide is set to a lower number, FSM extraction forced to one-hot, LUT combining is disabled, equivalent registers are preserved, SRL are inferred with a larger threshold" AutoIncrementalCheckpoint="true" WriteIncrSynthDcp="false" State="current" IncludeInArchive="true" IsChild="false" AutoIncrementalDir="$PSRCDIR/utils_1/imports/synth_1" AutoRQSDir="$PSRCDIR/utils_1/imports/synth_1" ParallelReportGen="true"> + <Strategy Version="1" Minor="2"> + <StratHandle Name="Flow_PerfOptimized_High" Flow="Vivado Synthesis 2014"/> + <Step Id="synth_design"> + <Option Id="FsmExtraction">1</Option> + <Option Id="KeepEquivalentRegisters">1</Option> + <Option Id="NoCombineLuts">1</Option> + <Option Id="RepFanoutThreshold">400</Option> + <Option Id="ResourceSharing">2</Option> + <Option Id="ShregMinSize">5</Option> + </Step> + </Strategy> + <ReportStrategy Name="Vivado Synthesis Default Reports" Flow="Vivado Synthesis 2017"/> + <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> + <RQSFiles/> + </Run> + <Run Id="impl_1" Type="Ft2:EntireDesign" Part="xc7a200tsbg484-1" ConstrsSet="constrs_1" Description="Vivado Implementation Defaults" AutoIncrementalCheckpoint="false" WriteIncrSynthDcp="false" State="current" SynthRun="synth_1" IncludeInArchive="true" IsChild="false" GenFullBitstream="true" AutoIncrementalDir="$PSRCDIR/utils_1/imports/impl_1" AutoRQSDir="$PSRCDIR/utils_1/imports/impl_1" ParallelReportGen="true"> + <Strategy Version="1" Minor="2"> + <StratHandle Name="Vivado Implementation Defaults" Flow="Vivado Implementation 2014"/> + <Step Id="init_design"/> + <Step Id="opt_design"/> + <Step Id="power_opt_design"/> + <Step Id="place_design"/> + <Step Id="post_place_power_opt_design"/> + <Step Id="phys_opt_design"/> + <Step Id="route_design"/> + <Step Id="post_route_phys_opt_design"/> + <Step Id="write_bitstream"> + <Option Id="BinFile">1</Option> + </Step> + </Strategy> + <ReportStrategy Name="Vivado Implementation Default Reports" Flow="Vivado Implementation 2017"/> + <Report Name="ROUTE_DESIGN.REPORT_METHODOLOGY" Enabled="1"/> + <RQSFiles/> + </Run> + </Runs> + <Board/> + <DashboardSummary Version="1" Minor="0"> + <Dashboards> + <Dashboard Name="default_dashboard"> + <Gadgets> + <Gadget Name="drc_1" Type="drc" Version="1" Row="2" Column="0"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_drc_0 "/> + </Gadget> + <Gadget Name="methodology_1" Type="methodology" Version="1" Row="2" Column="1"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_methodology_0 "/> + </Gadget> + <Gadget Name="power_1" Type="power" Version="1" Row="1" Column="0"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_power_0 "/> + </Gadget> + <Gadget Name="timing_1" Type="timing" Version="1" Row="0" Column="1"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_route_report_timing_summary_0 "/> + </Gadget> + <Gadget Name="utilization_1" Type="utilization" Version="1" Row="0" Column="0"> + <GadgetParam Name="REPORTS" Type="string_list" Value="synth_1#synth_1_synth_report_utilization_0 "/> + <GadgetParam Name="RUN.STEP" Type="string" Value="synth_design"/> + <GadgetParam Name="RUN.TYPE" Type="string" Value="synthesis"/> + </Gadget> + <Gadget Name="utilization_2" Type="utilization" Version="1" Row="1" Column="1"> + <GadgetParam Name="REPORTS" Type="string_list" Value="impl_1#impl_1_place_report_utilization_0 "/> + </Gadget> + </Gadgets> + </Dashboard> + <CurrentDashboard>default_dashboard</CurrentDashboard> + </Dashboards> + </DashboardSummary> +</Project> diff --git a/tp_vivado/proj/cleanup.cmd b/tp_vivado/proj/cleanup.cmd new file mode 100644 index 0000000..ab966b0 --- /dev/null +++ b/tp_vivado/proj/cleanup.cmd @@ -0,0 +1,21 @@ +@echo off +rem delete all files from subfolders +for /d /r %%i in (*) do del /f /q %%i\* +rem delete all subfolders +for /d %%i in (*) do rd /S /Q %%i + +rem unmark read only from all files +attrib -R .\* /S + +rem mark read only those we wish to keep +attrib +R .\create_project.tcl +attrib +R .\cleanup.sh +attrib +R .\cleanup.cmd +attrib +R .\.gitignore +attrib +R .\_READ_ME_.txt + +rem delete all non read-only +del /Q /A:-R .\* + +rem unmark read-only +attrib -R .\* diff --git a/tp_vivado/proj/cleanup.sh b/tp_vivado/proj/cleanup.sh new file mode 100644 index 0000000..ea903c2 --- /dev/null +++ b/tp_vivado/proj/cleanup.sh @@ -0,0 +1,15 @@ +# This script is useful for cleaning up the 'project' +# directory of a Digilent Vivado-project git repository +### +# Run the following command to change permissions of +# this 'cleanup' file if needed: +# chmod u+x cleanup.sh +### +# Remove directories/subdirectories +find . -mindepth 1 -type d -exec rm -rf {} + +# Remove any other files than: +find . -type f ! -name 'cleanup.sh' \ + ! -name 'cleanup.cmd' \ + ! -name 'create_project.tcl' \ + ! -name '.gitignore' \ + -exec rm -rf {} + diff --git a/tp_vivado/proj/create_project.tcl b/tp_vivado/proj/create_project.tcl new file mode 100644 index 0000000..b5ecfce --- /dev/null +++ b/tp_vivado/proj/create_project.tcl @@ -0,0 +1,111 @@ +# Run this script to create the Vivado project files in the WORKING DIRECTORY +# If ::create_path global variable is set, the project is created under that path instead of the working dir + +if {[info exists ::create_path]} { + set dest_dir $::create_path +} else { + set dest_dir [pwd] +} +puts "INFO: Creating new project in $dest_dir" + +# Set the reference directory for source file relative paths (by default the value is script directory path) +set proj_name "ECG" + +# Set the reference directory for source file relative paths (by default the value is script directory path) +set origin_dir ".." + +# Set the directory path for the original project from where this script was exported +set orig_proj_dir "[file normalize "$origin_dir/proj"]" + +set src_dir $origin_dir/src +set repo_dir $origin_dir/repo + +# Set the board part number +set part_num "xc7a200tsbg484-1" + +# Create project +create_project $proj_name $dest_dir + +# Set the directory path for the new project +set proj_dir [get_property directory [current_project]] + +# Set project properties +set obj [get_projects $proj_name] +set_property "default_lib" "xil_defaultlib" $obj +set_property "part" "$part_num" $obj +set_property "simulator_language" "Mixed" $obj +set_property "target_language" "VHDL" $obj + +# Create 'sources_1' fileset (if not found) +if {[string equal [get_filesets -quiet sources_1] ""]} { + create_fileset -srcset sources_1 +} + +# Create 'constrs_1' fileset (if not found) +if {[string equal [get_filesets -quiet constrs_1] ""]} { + create_fileset -constrset constrs_1 +} + +# Set IP repository paths +set obj [get_filesets sources_1] +set_property "ip_repo_paths" "[file normalize $repo_dir]" $obj + +# Add conventional sources +add_files -quiet $src_dir/hdl + +# Add IPs +add_files -quiet [glob -nocomplain ../src/ip/*/*.xci] + +# Add constraints +add_files -fileset constrs_1 -quiet $src_dir/constraints + +# Refresh IP Repositories +#update_ip_catalog + +# Create 'synth_1' run (if not found) +if {[string equal [get_runs -quiet synth_1] ""]} { + create_run -name synth_1 -part $part_num -flow {Vivado Synthesis 2014} -strategy "Flow_PerfOptimized_High" -constrset constrs_1 +} else { + set_property strategy "Flow_PerfOptimized_High" [get_runs synth_1] + set_property flow "Vivado Synthesis 2014" [get_runs synth_1] +} +set obj [get_runs synth_1] +set_property "part" "$part_num" $obj +set_property "steps.synth_design.args.fanout_limit" "400" $obj +set_property "steps.synth_design.args.fsm_extraction" "one_hot" $obj +set_property "steps.synth_design.args.keep_equivalent_registers" "1" $obj +set_property "steps.synth_design.args.resource_sharing" "off" $obj +set_property "steps.synth_design.args.no_lc" "1" $obj +set_property "steps.synth_design.args.shreg_min_size" "5" $obj + +# set the current synth run +current_run -synthesis [get_runs synth_1] + +# Create 'impl_1' run (if not found) +if {[string equal [get_runs -quiet impl_1] ""]} { + create_run -name impl_1 -part $part_num -flow {Vivado Implementation 2014} -strategy "Vivado Implementation Defaults" -constrset constrs_1 -parent_run synth_1 +} else { + set_property strategy "Vivado Implementation Defaults" [get_runs impl_1] + set_property flow "Vivado Implementation 2014" [get_runs impl_1] +} +set obj [get_runs impl_1] +set_property "part" "$part_num" $obj +set_property "steps.write_bitstream.args.bin_file" "1" $obj + +# set the current impl run +current_run -implementation [get_runs impl_1] + +#puts "INFO: Project created:$proj_name" + +# Comment the following section, if there is no block design +# Create block design +#source $origin_dir/src/bd/bt_gpio.tcl + +# Generate the wrapper +#set design_name [get_bd_designs] +#make_wrapper -files [get_files $design_name.bd] -top -import + +#set obj [get_filesets sources_1] +#set_property "top" "bt_gpio_top" $obj + +#puts "INFO: Block design created: $design_name.bd" diff --git a/tp_vivado/src/constraints/NexysVideo_Master.xdc b/tp_vivado/src/constraints/NexysVideo_Master.xdc new file mode 100644 index 0000000..b256a38 --- /dev/null +++ b/tp_vivado/src/constraints/NexysVideo_Master.xdc @@ -0,0 +1,365 @@ +### This file is a general .xdc for the Nexys Video Rev. A +### To use it in a project: +### - uncomment the lines corresponding to used pins +### - rename the used ports (in each line, after get_ports) according to the top level signal names in the project + + +##Clock Signal +set_property -dict {PACKAGE_PIN R4 IOSTANDARD LVCMOS33} [get_ports CLK100MHZ] + + +##LEDs +#set_property -dict {PACKAGE_PIN T14 IOSTANDARD LVCMOS25} [get_ports {LED[0]}] +#set_property -dict {PACKAGE_PIN T15 IOSTANDARD LVCMOS25} [get_ports {LED[1]}] +#set_property -dict {PACKAGE_PIN T16 IOSTANDARD LVCMOS25} [get_ports {LED[2]}] +set_property -dict {PACKAGE_PIN U16 IOSTANDARD LVCMOS25} [get_ports { led3 }];#[get_ports {LED[3]}] +set_property -dict {PACKAGE_PIN V15 IOSTANDARD LVCMOS25} [get_ports { led4 }];#[get_ports {LED[4]}] +set_property -dict {PACKAGE_PIN W16 IOSTANDARD LVCMOS25} [get_ports { led5 }];#[get_ports {LED[5]}] +set_property -dict {PACKAGE_PIN W15 IOSTANDARD LVCMOS25} [get_ports { led6 }];#[get_ports {LED[6]}] +set_property -dict {PACKAGE_PIN Y13 IOSTANDARD LVCMOS25} [get_ports { led7 }];#[get_ports {LED[7]}] + + +## Buttons +set_property -dict {PACKAGE_PIN B22 IOSTANDARD LVCMOS33} [get_ports BTNC] +set_property -dict {PACKAGE_PIN D22 IOSTANDARD LVCMOS33} [get_ports BTND] +set_property -dict {PACKAGE_PIN C22 IOSTANDARD LVCMOS33} [get_ports BTNL] +set_property -dict {PACKAGE_PIN D14 IOSTANDARD LVCMOS33} [get_ports BTNR] +set_property -dict {PACKAGE_PIN F15 IOSTANDARD LVCMOS33} [get_ports BTNU] +set_property -dict {PACKAGE_PIN G4 IOSTANDARD LVCMOS15} [get_ports rstn] + + +##Switches +set_property -dict {PACKAGE_PIN E22 IOSTANDARD LVCMOS33} [get_ports sw] +#set_property -dict { PACKAGE_PIN F21 } [get_ports { sw[1] }]; #IO_25_16 Sch=sw[1] +#set_property -dict { PACKAGE_PIN G21 } [get_ports { sw[2] }]; #IO_L24P_T3_16 Sch=sw[2] +set_property -dict { PACKAGE_PIN G22 IOSTANDARD LVCMOS33} [get_ports { sw3 }]; #IO_L24N_T3_16 Sch=sw[3] +set_property -dict { PACKAGE_PIN H17 IOSTANDARD LVCMOS33} [get_ports { sw4 }]; #IO_L6P_T0_15 Sch=sw[4] +set_property -dict { PACKAGE_PIN J16 IOSTANDARD LVCMOS33} [get_ports { sw5 }]; #IO_0_15 Sch=sw[5] +set_property -dict { PACKAGE_PIN K13 IOSTANDARD LVCMOS33} [get_ports { sw6 }]; #IO_L19P_T3_A22_15 Sch=sw[6] +set_property -dict { PACKAGE_PIN M17 IOSTANDARD LVCMOS33} [get_ports { sw7 }]; #IO_25_15 Sch=sw[7] + + +##OLED Display +#set_property -dict { PACKAGE_PIN W22 IOSTANDARD LVCMOS33 } [get_ports { oled_dc }]; #IO_L7N_T1_D10_14 Sch=oled_dc +#set_property -dict { PACKAGE_PIN U21 IOSTANDARD LVCMOS33 } [get_ports { oled_res }]; #IO_L4N_T0_D05_14 Sch=oled_res +#set_property -dict { PACKAGE_PIN W21 IOSTANDARD LVCMOS33 } [get_ports { oled_sclk }]; #IO_L7P_T1_D09_14 Sch=oled_sclk +#set_property -dict { PACKAGE_PIN Y22 IOSTANDARD LVCMOS33 } [get_ports { oled_sdin }]; #IO_L9N_T1_DQS_D13_14 Sch=oled_sdin +#set_property -dict { PACKAGE_PIN P20 IOSTANDARD LVCMOS33 } [get_ports { oled_vbat }]; #IO_0_14 Sch=oled_vbat +#set_property -dict { PACKAGE_PIN V22 IOSTANDARD LVCMOS33 } [get_ports { oled_vdd }]; #IO_L3N_T0_DQS_EMCCLK_14 Sch=oled_vdd + + +##HDMI in +#set_property -dict { PACKAGE_PIN AA5 IOSTANDARD LVCMOS33 } [get_ports { hdmi_rx_cec }]; #IO_L10P_T1_34 Sch=hdmi_rx_cec +#set_property -dict { PACKAGE_PIN W4 IOSTANDARD LVDS } [get_ports { hdmi_rx_clk_n }]; #IO_L12N_T1_MRCC_34 Sch=hdmi_rx_clk_n +#set_property -dict { PACKAGE_PIN V4 IOSTANDARD LVDS } [get_ports { hdmi_rx_clk_p }]; #IO_L12P_T1_MRCC_34 Sch=hdmi_rx_clk_p +#set_property -dict { PACKAGE_PIN AB12 IOSTANDARD LVCMOS25 } [get_ports { hdmi_rx_hpa }]; #IO_L7N_T1_13 Sch=hdmi_rx_hpa +#set_property -dict { PACKAGE_PIN Y4 IOSTANDARD LVCMOS33 } [get_ports { hdmi_rx_scl }]; #IO_L11P_T1_SRCC_34 Sch=hdmi_rx_scl +#set_property -dict { PACKAGE_PIN AB5 IOSTANDARD LVCMOS33 } [get_ports { hdmi_rx_sda }]; #IO_L10N_T1_34 Sch=hdmi_rx_sda +#set_property -dict { PACKAGE_PIN R3 IOSTANDARD LVCMOS33 } [get_ports { hdmi_rx_txen }]; #IO_L3P_T0_DQS_34 Sch=hdmi_rx_txen +#set_property -dict { PACKAGE_PIN AA3 IOSTANDARD LVDS } [get_ports { hdmi_rx_n[0] }]; #IO_L9N_T1_DQS_34 Sch=hdmi_rx_n[0] +#set_property -dict { PACKAGE_PIN Y3 IOSTANDARD LVDS } [get_ports { hdmi_rx_p[0] }]; #IO_L9P_T1_DQS_34 Sch=hdmi_rx_p[0] +#set_property -dict { PACKAGE_PIN Y2 IOSTANDARD LVDS } [get_ports { hdmi_rx_n[1] }]; #IO_L4N_T0_34 Sch=hdmi_rx_n[1] +#set_property -dict { PACKAGE_PIN W2 IOSTANDARD LVDS } [get_ports { hdmi_rx_p[1] }]; #IO_L4P_T0_34 Sch=hdmi_rx_p[1] +#set_property -dict { PACKAGE_PIN V2 IOSTANDARD LVDS } [get_ports { hdmi_rx_n[2] }]; #IO_L2N_T0_34 Sch=hdmi_rx_n[2] +#set_property -dict { PACKAGE_PIN U2 IOSTANDARD LVDS } [get_ports { hdmi_rx_p[2] }]; #IO_L2P_T0_34 Sch=hdmi_rx_p[2] + + +##HDMI out +#set_property -dict { PACKAGE_PIN AA4 IOSTANDARD LVCMOS33 } [get_ports { hdmi_tx_cec }]; #IO_L11N_T1_SRCC_34 Sch=hdmi_tx_cec +#set_property -dict { PACKAGE_PIN U1 IOSTANDARD LVDS } [get_ports { hdmi_tx_clk_n }]; #IO_L1N_T0_34 Sch=hdmi_tx_clk_n +#set_property -dict { PACKAGE_PIN T1 IOSTANDARD LVDS } [get_ports { hdmi_tx_clk_p }]; #IO_L1P_T0_34 Sch=hdmi_tx_clk_p +#set_property -dict { PACKAGE_PIN AB13 IOSTANDARD LVCMOS25 } [get_ports { hdmi_tx_hpd }]; #IO_L3N_T0_DQS_13 Sch=hdmi_tx_hpd +#set_property -dict { PACKAGE_PIN U3 IOSTANDARD LVCMOS33 } [get_ports { hdmi_tx_rscl }]; #IO_L6P_T0_34 Sch=hdmi_tx_rscl +#set_property -dict { PACKAGE_PIN V3 IOSTANDARD LVCMOS33 } [get_ports { hdmi_tx_rsda }]; #IO_L6N_T0_VREF_34 Sch=hdmi_tx_rsda +#set_property -dict { PACKAGE_PIN Y1 IOSTANDARD LVDS } [get_ports { hdmi_tx_n[0] }]; #IO_L5N_T0_34 Sch=hdmi_tx_n[0] +#set_property -dict { PACKAGE_PIN W1 IOSTANDARD LVDS } [get_ports { hdmi_tx_p[0] }]; #IO_L5P_T0_34 Sch=hdmi_tx_p[0] +#set_property -dict { PACKAGE_PIN AB1 IOSTANDARD LVDS } [get_ports { hdmi_tx_n[1] }]; #IO_L7N_T1_34 Sch=hdmi_tx_n[1] +#set_property -dict { PACKAGE_PIN AA1 IOSTANDARD LVDS } [get_ports { hdmi_tx_p[1] }]; #IO_L7P_T1_34 Sch=hdmi_tx_p[1] +#set_property -dict { PACKAGE_PIN AB2 IOSTANDARD LVDS } [get_ports { hdmi_tx_n[2] }]; #IO_L8N_T1_34 Sch=hdmi_tx_n[2] +#set_property -dict { PACKAGE_PIN AB3 IOSTANDARD LVDS } [get_ports { hdmi_tx_p[2] }]; #IO_L8P_T1_34 Sch=hdmi_tx_p[2] + + +##Display Port +#set_property -dict { PACKAGE_PIN AB10 IOSTANDARD LVDS } [get_ports { dp_tx_aux_n }]; #IO_L8N_T1_13 Sch=dp_tx_aux_n +#set_property -dict { PACKAGE_PIN AA11 IOSTANDARD LVDS } [get_ports { dp_tx_aux_n }]; #IO_L9N_T1_DQS_13 Sch=dp_tx_aux_n +#set_property -dict { PACKAGE_PIN AA9 IOSTANDARD LVDS } [get_ports { dp_tx_aux_p }]; #IO_L8P_T1_13 Sch=dp_tx_aux_p +#set_property -dict { PACKAGE_PIN AA10 IOSTANDARD LVDS } [get_ports { dp_tx_aux_p }]; #IO_L9P_T1_DQS_13 Sch=dp_tx_aux_p +#set_property -dict { PACKAGE_PIN N15 IOSTANDARD LVCMOS33 } [get_ports { dp_tx_hpd }]; #IO_25_14 Sch=dp_tx_hpd + + +##Audio Codec +set_property -dict {PACKAGE_PIN T4 IOSTANDARD LVCMOS33} [get_ports ac_adc_sdata] +set_property -dict {PACKAGE_PIN T5 IOSTANDARD LVCMOS33} [get_ports ac_bclk] +set_property -dict {PACKAGE_PIN W6 IOSTANDARD LVCMOS33} [get_ports ac_dac_sdata] +set_property -dict {PACKAGE_PIN U5 IOSTANDARD LVCMOS33} [get_ports ac_lrclk] +set_property -dict {PACKAGE_PIN U6 IOSTANDARD LVCMOS33} [get_ports ac_mclk] + + +##Pmod header JA +#set_property -dict {PACKAGE_PIN AB22 IOSTANDARD LVCMOS33} [get_ports JA1] +#set_property -dict { PACKAGE_PIN AB21 IOSTANDARD LVCMOS33 } [get_ports { JA2 }]; #IO_L10P_T1_D14_14 Sch=ja[2] +#set_property -dict { PACKAGE_PIN AB20 IOSTANDARD LVCMOS33 } [get_ports { JA3 }]; #IO_L15N_T2_DQS_DOUT_CSO_B_14 Sch=ja[3] +#set_property -dict { PACKAGE_PIN AB18 IOSTANDARD LVCMOS33 } [get_ports { JA4 }]; #IO_L17N_T2_A13_D29_14 Sch=ja[4] +#set_property -dict { PACKAGE_PIN Y21 IOSTANDARD LVCMOS33 } [get_ports { JA5 }]; #IO_L9P_T1_DQS_14 Sch=ja[7] +#set_property -dict { PACKAGE_PIN AA21 IOSTANDARD LVCMOS33 } [get_ports { JA6 }]; #IO_L8N_T1_D12_14 Sch=ja[8] +#set_property -dict { PACKAGE_PIN AA20 IOSTANDARD LVCMOS33 } [get_ports { ja[6] }]; #IO_L8P_T1_D11_14 Sch=ja[9] +#set_property -dict { PACKAGE_PIN AA18 IOSTANDARD LVCMOS33 } [get_ports { ja[7] }]; #IO_L17P_T2_A14_D30_14 Sch=ja[10] + + +##Pmod header JB +#set_property -dict {PACKAGE_PIN V8 IOSTANDARD LVCMOS33} [get_ports LED17_B] +#set_property -dict {PACKAGE_PIN V9 IOSTANDARD LVCMOS33} [get_ports LED17_G] +#set_property -dict {PACKAGE_PIN W7 IOSTANDARD LVCMOS33} [get_ports LED16_R] +#set_property -dict { PACKAGE_PIN V7 IOSTANDARD LVCMOS33 } [get_ports { jb[3] }]; #IO_L19P_T3_34 Sch=jb_p[2] +#set_property -dict { PACKAGE_PIN Y9 IOSTANDARD LVCMOS33 } [get_ports { jb[4] }]; #IO_L24N_T3_34 Sch=jb_n[3] +#set_property -dict { PACKAGE_PIN W9 IOSTANDARD LVCMOS33 } [get_ports { jb[5] }]; #IO_L24P_T3_34 Sch=jb_p[3] +#set_property -dict { PACKAGE_PIN Y7 IOSTANDARD LVCMOS33 } [get_ports { jb[6] }]; #IO_L23N_T3_34 Sch=jb_n[4] +#set_property -dict { PACKAGE_PIN Y8 IOSTANDARD LVCMOS33 } [get_ports { jb[7] }]; #IO_L23P_T3_34 Sch=jb_p[4] + + +##Pmod header JC +#set_property -dict { PACKAGE_PIN AA6 IOSTANDARD LVCMOS33 } [get_ports { jc[0] }]; #IO_L18N_T2_34 Sch=jc_n[1] +#set_property -dict { PACKAGE_PIN Y6 IOSTANDARD LVCMOS33 } [get_ports { jc[1] }]; #IO_L18P_T2_34 Sch=jc_p[1] +#set_property -dict { PACKAGE_PIN AB8 IOSTANDARD LVCMOS33 } [get_ports { jc[2] }]; #IO_L22N_T3_34 Sch=jc_n[2] +#set_property -dict { PACKAGE_PIN AA8 IOSTANDARD LVCMOS33 } [get_ports { jc[3] }]; #IO_L22P_T3_34 Sch=jc_p[2] +#set_property -dict { PACKAGE_PIN T6 IOSTANDARD LVCMOS33 } [get_ports { jc[4] }]; #IO_L17N_T2_34 Sch=jc_n[3] +#set_property -dict { PACKAGE_PIN R6 IOSTANDARD LVCMOS33 } [get_ports { jc[5] }]; #IO_L17P_T2_34 Sch=jc_p[3] +#set_property -dict { PACKAGE_PIN AB6 IOSTANDARD LVCMOS33 } [get_ports { jc[6] }]; #IO_L20N_T3_34 Sch=jc_n[4] +#set_property -dict { PACKAGE_PIN AB7 IOSTANDARD LVCMOS33 } [get_ports { jc[7] }]; #IO_L20P_T3_34 Sch=jc_p[4] + + +##XADC Header +#set_property -dict { PACKAGE_PIN H14 IOSTANDARD LVCMOS33 } [get_ports { xa_n[0] }]; #IO_L3N_T0_DQS_AD1N_15 Sch=xa_n[1] +#set_property -dict { PACKAGE_PIN J14 IOSTANDARD LVCMOS33 } [get_ports { xa_p[0] }]; #IO_L3P_T0_DQS_AD1P_15 Sch=xa_p[1] +#set_property -dict { PACKAGE_PIN G13 IOSTANDARD LVCMOS33 } [get_ports { xa_n[1] }]; #IO_L1N_T0_AD0N_15 Sch=xa_n[2] +#set_property -dict { PACKAGE_PIN H13 IOSTANDARD LVCMOS33 } [get_ports { xa_p[1] }]; #IO_L1P_T0_AD0P_15 Sch=xa_p[2] +#set_property -dict { PACKAGE_PIN G16 IOSTANDARD LVCMOS33 } [get_ports { xa_n[2] }]; #IO_L2N_T0_AD8N_15 Sch=xa_n[3] +#set_property -dict { PACKAGE_PIN G15 IOSTANDARD LVCMOS33 } [get_ports { xa_p[2] }]; #IO_L2P_T0_AD8P_15 Sch=xa_p[3] +#set_property -dict { PACKAGE_PIN H15 IOSTANDARD LVCMOS33 } [get_ports { xa_n[3] }]; #IO_L5N_T0_AD9N_15 Sch=xa_n[4] +#set_property -dict { PACKAGE_PIN J15 IOSTANDARD LVCMOS33 } [get_ports { xa_p[3] }]; #IO_L5P_T0_AD9P_15 Sch=xa_p[4] + + +##UART +#set_property -dict { PACKAGE_PIN AA19 IOSTANDARD LVCMOS33 } [get_ports { uart_rx_out }]; #IO_L15P_T2_DQS_RDWR_B_14 Sch=uart_rx_out +#set_property -dict { PACKAGE_PIN V18 IOSTANDARD LVCMOS33 } [get_ports { uart_tx_in }]; #IO_L14P_T2_SRCC_14 Sch=uart_tx_in + + +##Ethernet +#set_property -dict { PACKAGE_PIN Y14 IOSTANDARD LVCMOS25 } [get_ports { eth_int_b }]; #IO_L6N_T0_VREF_13 Sch=eth_int_b +#set_property -dict { PACKAGE_PIN AA16 IOSTANDARD LVCMOS25 } [get_ports { eth_mdc }]; #IO_L1N_T0_13 Sch=eth_mdc +#set_property -dict { PACKAGE_PIN Y16 IOSTANDARD LVCMOS25 } [get_ports { eth_mdio }]; #IO_L1P_T0_13 Sch=eth_mdio +#set_property -dict { PACKAGE_PIN W14 IOSTANDARD LVCMOS25 } [get_ports { eth_pme_b }]; #IO_L6P_T0_13 Sch=eth_pme_b +#set_property -dict { PACKAGE_PIN U7 IOSTANDARD LVCMOS33 } [get_ports { eth_rst_b }]; #IO_25_34 Sch=eth_rst_b +#set_property -dict { PACKAGE_PIN V13 IOSTANDARD LVCMOS25 } [get_ports { eth_rxck }]; #IO_L13P_T2_MRCC_13 Sch=eth_rxck +#set_property -dict { PACKAGE_PIN W10 IOSTANDARD LVCMOS25 } [get_ports { eth_rxctl }]; #IO_L10N_T1_13 Sch=eth_rxctl +#set_property -dict { PACKAGE_PIN AB16 IOSTANDARD LVCMOS25 } [get_ports { eth_rxd[0] }]; #IO_L2P_T0_13 Sch=eth_rxd[0] +#set_property -dict { PACKAGE_PIN AA15 IOSTANDARD LVCMOS25 } [get_ports { eth_rxd[1] }]; #IO_L4P_T0_13 Sch=eth_rxd[1] +#set_property -dict { PACKAGE_PIN AB15 IOSTANDARD LVCMOS25 } [get_ports { eth_rxd[2] }]; #IO_L4N_T0_13 Sch=eth_rxd[2] +#set_property -dict { PACKAGE_PIN AB11 IOSTANDARD LVCMOS25 } [get_ports { eth_rxd[3] }]; #IO_L7P_T1_13 Sch=eth_rxd[3] +#set_property -dict { PACKAGE_PIN AA14 IOSTANDARD LVCMOS25 } [get_ports { eth_txck }]; #IO_L5N_T0_13 Sch=eth_txck +#set_property -dict { PACKAGE_PIN V10 IOSTANDARD LVCMOS25 } [get_ports { eth_txctl }]; #IO_L10P_T1_13 Sch=eth_txctl +#set_property -dict { PACKAGE_PIN Y12 IOSTANDARD LVCMOS25 } [get_ports { eth_txd[0] }]; #IO_L11N_T1_SRCC_13 Sch=eth_txd[0] +#set_property -dict { PACKAGE_PIN W12 IOSTANDARD LVCMOS25 } [get_ports { eth_txd[1] }]; #IO_L12N_T1_MRCC_13 Sch=eth_txd[1] +#set_property -dict { PACKAGE_PIN W11 IOSTANDARD LVCMOS25 } [get_ports { eth_txd[2] }]; #IO_L12P_T1_MRCC_13 Sch=eth_txd[2] +#set_property -dict { PACKAGE_PIN Y11 IOSTANDARD LVCMOS25 } [get_ports { eth_txd[3] }]; #IO_L11P_T1_SRCC_13 Sch=eth_txd[3] + + +##Fan PWM +#set_property -dict { PACKAGE_PIN U15 IOSTANDARD LVCMOS25 } [get_ports { fan_pwm }]; #IO_L14P_T2_SRCC_13 Sch=fan_pwm + + +##DPTI/DSPI +#set_property -dict { PACKAGE_PIN Y18 IOSTANDARD LVCMOS33 } [get_ports { prog_clko }]; #IO_L13P_T2_MRCC_14 Sch=prog_clko +#set_property -dict { PACKAGE_PIN U20 IOSTANDARD LVCMOS33 } [get_ports { prog_d[0]}]; #IO_L11P_T1_SRCC_14 Sch=prog_d0/sck +#set_property -dict { PACKAGE_PIN P14 IOSTANDARD LVCMOS33 } [get_ports { prog_d[1] }]; #IO_L19P_T3_A10_D26_14 Sch=prog_d1/mosi +#set_property -dict { PACKAGE_PIN P15 IOSTANDARD LVCMOS33 } [get_ports { prog_d[2] }]; #IO_L22P_T3_A05_D21_14 Sch=prog_d2/miso +#set_property -dict { PACKAGE_PIN U17 IOSTANDARD LVCMOS33 } [get_ports { prog_d[3]}]; #IO_L18P_T2_A12_D28_14 Sch=prog_d3/ss +#set_property -dict { PACKAGE_PIN R17 IOSTANDARD LVCMOS33 } [get_ports { prog_d[4] }]; #IO_L24N_T3_A00_D16_14 Sch=prog_d[4] +#set_property -dict { PACKAGE_PIN P16 IOSTANDARD LVCMOS33 } [get_ports { prog_d[5] }]; #IO_L24P_T3_A01_D17_14 Sch=prog_d[5] +#set_property -dict { PACKAGE_PIN R18 IOSTANDARD LVCMOS33 } [get_ports { prog_d[6] }]; #IO_L20P_T3_A08_D24_14 Sch=prog_d[6] +#set_property -dict { PACKAGE_PIN N14 IOSTANDARD LVCMOS33 } [get_ports { prog_d[7] }]; #IO_L23N_T3_A02_D18_14 Sch=prog_d[7] +#set_property -dict { PACKAGE_PIN V17 IOSTANDARD LVCMOS33 } [get_ports { prog_oen }]; #IO_L16P_T2_CSI_B_14 Sch=prog_oen +#set_property -dict { PACKAGE_PIN P19 IOSTANDARD LVCMOS33 } [get_ports { prog_rdn }]; #IO_L5P_T0_D06_14 Sch=prog_rdn +#set_property -dict { PACKAGE_PIN N17 IOSTANDARD LVCMOS33 } [get_ports { prog_rxen }]; #IO_L21P_T3_DQS_14 Sch=prog_rxen +#set_property -dict { PACKAGE_PIN P17 IOSTANDARD LVCMOS33 } [get_ports { prog_siwun }]; #IO_L21N_T3_DQS_A06_D22_14 Sch=prog_siwun +#set_property -dict { PACKAGE_PIN R14 IOSTANDARD LVCMOS33 } [get_ports { prog_spien }]; #IO_L19N_T3_A09_D25_VREF_14 Sch=prog_spien +#set_property -dict { PACKAGE_PIN Y19 IOSTANDARD LVCMOS33 } [get_ports { prog_txen }]; #IO_L13N_T2_MRCC_14 Sch=prog_txen +#set_property -dict { PACKAGE_PIN R19 IOSTANDARD LVCMOS33 } [get_ports { prog_wrn }]; #IO_L5N_T0_D07_14 Sch=prog_wrn + + +##HID port +#set_property -dict { PACKAGE_PIN W17 IOSTANDARD LVCMOS33 } [get_ports { ps2_clk }]; #IO_L16N_T2_A15_D31_14 Sch=ps2_clk +#set_property -dict { PACKAGE_PIN N13 IOSTANDARD LVCMOS33 } [get_ports { ps2_data }]; #IO_L23P_T3_A03_D19_14 Sch=ps2_data + + +##QSPI +#set_property -dict { PACKAGE_PIN T19 IOSTANDARD LVCMOS33 } [get_ports { qspi_cs }]; #IO_L6P_T0_FCS_B_14 Sch=qspi_cs +#set_property -dict { PACKAGE_PIN P22 IOSTANDARD LVCMOS33 } [get_ports { qspi_dq[0] }]; #IO_L1P_T0_D00_MOSI_14 Sch=qspi_dq[0] +#set_property -dict { PACKAGE_PIN R22 IOSTANDARD LVCMOS33 } [get_ports { qspi_dq[1] }]; #IO_L1N_T0_D01_DIN_14 Sch=qspi_dq[1] +#set_property -dict { PACKAGE_PIN P21 IOSTANDARD LVCMOS33 } [get_ports { qspi_dq[2] }]; #IO_L2P_T0_D02_14 Sch=qspi_dq[2] +#set_property -dict { PACKAGE_PIN R21 IOSTANDARD LVCMOS33 } [get_ports { qspi_dq[3] }]; #IO_L2N_T0_D03_14 Sch=qspi_dq[3] + +set_property -dict {PACKAGE_PIN W5 IOSTANDARD LVCMOS33} [get_ports scl] +set_property -dict {PACKAGE_PIN V5 IOSTANDARD LVCMOS33} [get_ports sda] + +##SD card +#set_property -dict { PACKAGE_PIN W19 IOSTANDARD LVCMOS33 } [get_ports { sd_cclk }]; #IO_L12P_T1_MRCC_14 Sch=sd_cclk +#set_property -dict { PACKAGE_PIN T18 IOSTANDARD LVCMOS33 } [get_ports { sd_cd }]; #IO_L20N_T3_A07_D23_14 Sch=sd_cd +#set_property -dict { PACKAGE_PIN W20 IOSTANDARD LVCMOS33 } [get_ports { sd_cmd }]; #IO_L12N_T1_MRCC_14 Sch=sd_cmd +#set_property -dict { PACKAGE_PIN V19 IOSTANDARD LVCMOS33 } [get_ports { sd_d[0] }]; #IO_L14N_T2_SRCC_14 Sch=sd_d[0] +#set_property -dict { PACKAGE_PIN T21 IOSTANDARD LVCMOS33 } [get_ports { sd_d[1] }]; #IO_L4P_T0_D04_14 Sch=sd_d[1] +#set_property -dict { PACKAGE_PIN T20 IOSTANDARD LVCMOS33 } [get_ports { sd_d[2] }]; #IO_L6N_T0_D08_VREF_14 Sch=sd_d[2] +#set_property -dict { PACKAGE_PIN U18 IOSTANDARD LVCMOS33 } [get_ports { sd_d[3] }]; #IO_L18N_T2_A11_D27_14 Sch=sd_d[3] +#set_property -dict { PACKAGE_PIN V20 IOSTANDARD LVCMOS33 } [get_ports { sd_reset }]; #IO_L11N_T1_SRCC_14 Sch=sd_reset + + + + +##Voltage Adjust +#set_property -dict { PACKAGE_PIN AA13 IOSTANDARD LVCMOS25 } [get_ports { set_vadj[0] }]; #IO_L3P_T0_DQS_13 Sch=set_vadj[0] +#set_property -dict { PACKAGE_PIN AB17 IOSTANDARD LVCMOS25 } [get_ports { set_vadj[1] }]; #IO_L2N_T0_13 Sch=set_vadj[1] +#set_property -dict { PACKAGE_PIN V14 IOSTANDARD LVCMOS25 } [get_ports { vadj_en }]; #IO_L13N_T2_MRCC_13 Sch=vadj_en + + +##DDR3 +#set_property -dict {PACKAGE_PIN M2} [get_ports {ddr3_addr[0]}] +#set_property -dict {PACKAGE_PIN M5} [get_ports {ddr3_addr[1]}] +#set_property -dict {PACKAGE_PIN M3} [get_ports {ddr3_addr[2]}] +#set_property -dict {PACKAGE_PIN M1} [get_ports {ddr3_addr[3]}] +#set_property -dict {PACKAGE_PIN L6} [get_ports {ddr3_addr[4]}] +#set_property -dict {PACKAGE_PIN P1} [get_ports {ddr3_addr[5]}] +#set_property -dict {PACKAGE_PIN N3} [get_ports {ddr3_addr[6]}] +#set_property -dict {PACKAGE_PIN N2} [get_ports {ddr3_addr[7]}] +#set_property -dict {PACKAGE_PIN M6} [get_ports {ddr3_addr[8]}] +#set_property -dict {PACKAGE_PIN R1} [get_ports {ddr3_addr[9]}] +#set_property -dict {PACKAGE_PIN L5} [get_ports {ddr3_addr[10]}] +#set_property -dict {PACKAGE_PIN N5} [get_ports {ddr3_addr[11]}] +#set_property -dict {PACKAGE_PIN N4} [get_ports {ddr3_addr[12]}] +#set_property -dict {PACKAGE_PIN P2} [get_ports {ddr3_addr[13]}] +#set_property -dict {PACKAGE_PIN P6} [get_ports {ddr3_addr[14]}] +#set_property -dict {PACKAGE_PIN L3} [get_ports {ddr3_ba[0]}] +#set_property -dict {PACKAGE_PIN K6} [get_ports {ddr3_ba[1]}] +#set_property -dict {PACKAGE_PIN L4} [get_ports {ddr3_ba[2]}] +#set_property -dict {PACKAGE_PIN K3} [get_ports ddr3_cas_n] +#set_property -dict {PACKAGE_PIN J6} [get_ports ddr3_cke] +#set_property -dict {PACKAGE_PIN P4} [get_ports ddr3_ck_n] +#set_property -dict {PACKAGE_PIN P5} [get_ports ddr3_ck_p] +#set_property -dict {PACKAGE_PIN G3} [get_ports {ddr3_dm[0]}] +#set_property -dict {PACKAGE_PIN F1} [get_ports {ddr3_dm[1]}] +#set_property -dict {PACKAGE_PIN G2} [get_ports {ddr3_dq[0]}] +#set_property -dict {PACKAGE_PIN H4} [get_ports {ddr3_dq[1]}] +#set_property -dict {PACKAGE_PIN H5} [get_ports {ddr3_dq[2]}] +#set_property -dict {PACKAGE_PIN J1} [get_ports {ddr3_dq[3]}] +#set_property -dict {PACKAGE_PIN K1} [get_ports {ddr3_dq[4]}] +#set_property -dict {PACKAGE_PIN H3} [get_ports {ddr3_dq[5]}] +#set_property -dict {PACKAGE_PIN H2} [get_ports {ddr3_dq[6]}] +#set_property -dict {PACKAGE_PIN J5} [get_ports {ddr3_dq[7]}] +#set_property -dict {PACKAGE_PIN E3} [get_ports {ddr3_dq[8]}] +#set_property -dict {PACKAGE_PIN B2} [get_ports {ddr3_dq[9]}] +#set_property -dict {PACKAGE_PIN F3} [get_ports {ddr3_dq[10]}] +#set_property -dict {PACKAGE_PIN D2} [get_ports {ddr3_dq[11]}] +#set_property -dict {PACKAGE_PIN C2} [get_ports {ddr3_dq[12]}] +#set_property -dict {PACKAGE_PIN A1} [get_ports {ddr3_dq[13]}] +#set_property -dict {PACKAGE_PIN E2} [get_ports {ddr3_dq[14]}] +#set_property -dict {PACKAGE_PIN B1} [get_ports {ddr3_dq[15]}] +#set_property -dict {PACKAGE_PIN J2} [get_ports {ddr3_dqs_n[0]}] +#set_property -dict {PACKAGE_PIN K2} [get_ports {ddr3_dqs_p[0]}] +#set_property -dict {PACKAGE_PIN D1} [get_ports {ddr3_dqs_n[1]}] +#set_property -dict {PACKAGE_PIN E1} [get_ports {ddr3_dqs_p[1]}] +#set_property -dict {PACKAGE_PIN K4} [get_ports ddr3_odt] +#set_property -dict {PACKAGE_PIN J4} [get_ports ddr3_ras_n] +#set_property -dict { PACKAGE_PIN G1 } [get_ports { ddr3_reset_n }]; #IO_L5P_T0_AD13P_35 Sch=ddr3_reset +#set_property -dict {PACKAGE_PIN L1} [get_ports ddr3_we_n] + + +##FMC +#set_property -dict { PACKAGE_PIN H19 IOSTANDARD LVCMOS33 } [get_ports { fmc_clk0_m2c_n }]; #IO_L12N_T1_MRCC_15 Sch=fmc_clk0_m2c_n +#set_property -dict { PACKAGE_PIN J19 IOSTANDARD LVCMOS33 } [get_ports { fmc_clk0_m2c_p }]; #IO_L12P_T1_MRCC_15 Sch=fmc_clk0_m2c_p +#set_property -dict { PACKAGE_PIN C19 IOSTANDARD LVCMOS33 } [get_ports { fmc_clk1_m2c_n }]; #IO_L13N_T2_MRCC_16 Sch=fmc_clk1_m2c_n +#set_property -dict { PACKAGE_PIN C18 IOSTANDARD LVCMOS33 } [get_ports { fmc_clk1_m2c_p }]; #IO_L13P_T2_MRCC_16 Sch=fmc_clk1_m2c_p +#set_property -dict { PACKAGE_PIN K19 IOSTANDARD LVCMOS33 } [get_ports { fmc_la00_cc_n }]; #IO_L13N_T2_MRCC_15 Sch=fmc_la00_cc_n +#set_property -dict { PACKAGE_PIN K18 IOSTANDARD LVCMOS33 } [get_ports { fmc_la00_cc_p }]; #IO_L13P_T2_MRCC_15 Sch=fmc_la00_cc_p +#set_property -dict { PACKAGE_PIN J21 IOSTANDARD LVCMOS33 } [get_ports { fmc_la01_cc_n }]; #IO_L11N_T1_SRCC_15 Sch=fmc_la01_cc_n +#set_property -dict { PACKAGE_PIN J20 IOSTANDARD LVCMOS33 } [get_ports { fmc_la01_cc_p }]; #IO_L11P_T1_SRCC_15 Sch=fmc_la01_cc_p +#set_property -dict { PACKAGE_PIN L18 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[02] }]; #IO_L16N_T2_A27_15 Sch=fmc_la_n[02] +#set_property -dict { PACKAGE_PIN M18 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[02] }]; #IO_L16P_T2_A28_15 Sch=fmc_la_p[02] +#set_property -dict { PACKAGE_PIN N19 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[03] }]; #IO_L17N_T2_A25_15 Sch=fmc_la_n[03] +#set_property -dict { PACKAGE_PIN N18 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[03] }]; #IO_L17P_T2_A26_15 Sch=fmc_la_p[03] +#set_property -dict { PACKAGE_PIN M20 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[04] }]; #IO_L18N_T2_A23_15 Sch=fmc_la_n[04] +#set_property -dict { PACKAGE_PIN N20 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[04] }]; #IO_L18P_T2_A24_15 Sch=fmc_la_p[04] +#set_property -dict { PACKAGE_PIN L21 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[05] }]; #IO_L10N_T1_AD11N_15 Sch=fmc_la_n[05] +#set_property -dict { PACKAGE_PIN M21 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[05] }]; #IO_L10P_T1_AD11P_15 Sch=fmc_la_p[05] +#set_property -dict { PACKAGE_PIN M22 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[06] }]; #IO_L15N_T2_DQS_ADV_B_15 Sch=fmc_la_n[06] +#set_property -dict { PACKAGE_PIN N22 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[06] }]; #IO_L15P_T2_DQS_15 Sch=fmc_la_p[06] +#set_property -dict { PACKAGE_PIN L13 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[07] }]; #IO_L20N_T3_A19_15 Sch=fmc_la_n[07] +#set_property -dict { PACKAGE_PIN M13 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[07] }]; #IO_L20P_T3_A20_15 Sch=fmc_la_p[07] +#set_property -dict { PACKAGE_PIN M16 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[08] }]; #IO_L24N_T3_RS0_15 Sch=fmc_la_n[08] +#set_property -dict { PACKAGE_PIN M15 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[08] }]; #IO_L24P_T3_RS1_15 Sch=fmc_la_p[08] +#set_property -dict { PACKAGE_PIN G20 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[09] }]; #IO_L8N_T1_AD10N_15 Sch=fmc_la_n[09] +#set_property -dict { PACKAGE_PIN H20 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[09] }]; #IO_L8P_T1_AD10P_15 Sch=fmc_la_p[09] +#set_property -dict { PACKAGE_PIN K22 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[10] }]; #IO_L9N_T1_DQS_AD3N_15 Sch=fmc_la_n[10] +#set_property -dict { PACKAGE_PIN K21 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[10] }]; #IO_L9P_T1_DQS_AD3P_15 Sch=fmc_la_p[10] +#set_property -dict { PACKAGE_PIN L15 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[11] }]; #IO_L22N_T3_A16_15 Sch=fmc_la_n[11] +#set_property -dict { PACKAGE_PIN L14 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[11] }]; #IO_L22P_T3_A17_15 Sch=fmc_la_p[11] +#set_property -dict { PACKAGE_PIN L20 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[12] }]; #IO_L14N_T2_SRCC_15 Sch=fmc_la_n[12] +#set_property -dict { PACKAGE_PIN L19 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[12] }]; #IO_L14P_T2_SRCC_15 Sch=fmc_la_p[12] +#set_property -dict { PACKAGE_PIN J17 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[13] }]; #IO_L21N_T3_DQS_A18_15 Sch=fmc_la_n[13] +#set_property -dict { PACKAGE_PIN K17 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[13] }]; #IO_L21P_T3_DQS_15 Sch=fmc_la_p[13] +#set_property -dict { PACKAGE_PIN H22 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[14] }]; #IO_L7N_T1_AD2N_15 Sch=fmc_la_n[14] +#set_property -dict { PACKAGE_PIN J22 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[14] }]; #IO_L7P_T1_AD2P_15 Sch=fmc_la_p[14] +#set_property -dict { PACKAGE_PIN K16 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[15] }]; #IO_L23N_T3_FWE_B_15 Sch=fmc_la_n[15] +#set_property -dict { PACKAGE_PIN L16 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[15] }]; #IO_L23P_T3_FOE_B_15 Sch=fmc_la_p[15] +#set_property -dict { PACKAGE_PIN G18 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[16] }]; #IO_L4N_T0_15 Sch=fmc_la_n[16] +#set_property -dict { PACKAGE_PIN G17 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[16] }]; #IO_L4P_T0_15 Sch=fmc_la_p[16] +#set_property -dict { PACKAGE_PIN B18 IOSTANDARD LVCMOS33 } [get_ports { fmc_la17_cc_n }]; #IO_L11N_T1_SRCC_16 Sch=fmc_la17_cc_n +#set_property -dict { PACKAGE_PIN B17 IOSTANDARD LVCMOS33 } [get_ports { fmc_la17_cc_p }]; #IO_L11P_T1_SRCC_16 Sch=fmc_la17_cc_p +#set_property -dict { PACKAGE_PIN C17 IOSTANDARD LVCMOS33 } [get_ports { fmc_la18_cc_n }]; #IO_L12N_T1_MRCC_16 Sch=fmc_la18_cc_n +#set_property -dict { PACKAGE_PIN D17 IOSTANDARD LVCMOS33 } [get_ports { fmc_la18_cc_p }]; #IO_L12P_T1_MRCC_16 Sch=fmc_la18_cc_p +#set_property -dict { PACKAGE_PIN A19 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[19] }]; #IO_L17N_T2_16 Sch=fmc_la_n[19] +#set_property -dict { PACKAGE_PIN A18 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[19] }]; #IO_L17P_T2_16 Sch=fmc_la_p[19] +#set_property -dict { PACKAGE_PIN F20 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[20] }]; #IO_L18N_T2_16 Sch=fmc_la_n[20] +#set_property -dict { PACKAGE_PIN F19 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[20] }]; #IO_L18P_T2_16 Sch=fmc_la_p[20] +#set_property -dict { PACKAGE_PIN D19 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[21] }]; #IO_L14N_T2_SRCC_16 Sch=fmc_la_n[21] +#set_property -dict { PACKAGE_PIN E19 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[21] }]; #IO_L14P_T2_SRCC_16 Sch=fmc_la_p[21] +#set_property -dict { PACKAGE_PIN D21 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[22] }]; #IO_L23N_T3_16 Sch=fmc_la_n[22] +#set_property -dict { PACKAGE_PIN E21 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[22] }]; #IO_L23P_T3_16 Sch=fmc_la_p[22] +#set_property -dict { PACKAGE_PIN A21 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[23] }]; #IO_L21N_T3_DQS_16 Sch=fmc_la_n[23] +#set_property -dict { PACKAGE_PIN B21 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[23] }]; #IO_L21P_T3_DQS_16 Sch=fmc_la_p[23] +#set_property -dict { PACKAGE_PIN B16 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[24] }]; #IO_L7N_T1_16 Sch=fmc_la_n[24] +#set_property -dict { PACKAGE_PIN B15 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[24] }]; #IO_L7P_T1_16 Sch=fmc_la_p[24] +#set_property -dict { PACKAGE_PIN E17 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[25] }]; #IO_L2N_T0_16 Sch=fmc_la_n[25] +#set_property -dict { PACKAGE_PIN F16 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[25] }]; #IO_L2P_T0_16 Sch=fmc_la_p[25] +#set_property -dict { PACKAGE_PIN E18 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[26] }]; #IO_L15N_T2_DQS_16 Sch=fmc_la_n[26] +#set_property -dict { PACKAGE_PIN F18 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[26] }]; #IO_L15P_T2_DQS_16 Sch=fmc_la_p[26] +#set_property -dict { PACKAGE_PIN A20 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[27] }]; #IO_L16N_T2_16 Sch=fmc_la_n[27] +#set_property -dict { PACKAGE_PIN B20 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[27] }]; #IO_L16P_T2_16 Sch=fmc_la_p[27] +#set_property -dict { PACKAGE_PIN B13 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[28] }]; #IO_L8N_T1_16 Sch=fmc_la_n[28] +#set_property -dict { PACKAGE_PIN C13 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[28] }]; #IO_L8P_T1_16 Sch=fmc_la_p[28] +#set_property -dict { PACKAGE_PIN C15 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[29] }]; #IO_L3N_T0_DQS_16 Sch=fmc_la_n[29] +#set_property -dict { PACKAGE_PIN C14 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[29] }]; #IO_L3P_T0_DQS_16 Sch=fmc_la_p[29] +#set_property -dict { PACKAGE_PIN A14 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[30] }]; #IO_L10N_T1_16 Sch=fmc_la_n[30] +#set_property -dict { PACKAGE_PIN A13 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[30] }]; #IO_L10P_T1_16 Sch=fmc_la_p[30] +#set_property -dict { PACKAGE_PIN E14 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[31] }]; #IO_L4N_T0_16 Sch=fmc_la_n[31] +#set_property -dict { PACKAGE_PIN E13 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[31] }]; #IO_L4P_T0_16 Sch=fmc_la_p[31] +#set_property -dict { PACKAGE_PIN A16 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[32] }]; #IO_L9N_T1_DQS_16 Sch=fmc_la_n[32] +#set_property -dict { PACKAGE_PIN A15 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[32] }]; #IO_L9P_T1_DQS_16 Sch=fmc_la_p[32] +#set_property -dict { PACKAGE_PIN F14 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_n[33] }]; #IO_L1N_T0_16 Sch=fmc_la_n[33] +#set_property -dict { PACKAGE_PIN F13 IOSTANDARD LVCMOS33 } [get_ports { fmc_la_p[33] }]; #IO_L1P_T0_16 Sch=fmc_la_p[33] + +#set_property -dict { PACKAGE_PIN D15 } [get_ports { vrefa_m2c }]; #IO_L6N_T0_VREF_16 Sch=vrefa_m2c +#set_property -dict { PACKAGE_PIN K14 } [get_ports { vrefa_m2c }]; #IO_L19N_T3_A21_VREF_15 Sch=vrefa_m2c +#set_property -dict { PACKAGE_PIN H18 } [get_ports { vrefa_m2c }]; #IO_L6N_T0_VREF_15 Sch=vrefa_m2c +#set_property -dict { PACKAGE_PIN C20 } [get_ports { vrefa_m2c }]; #IO_L19N_T3_VREF_16 Sch=vrefa_m2c + +#set_property -dict { PACKAGE_PIN R16 IOSTANDARD LVCMOS33 } [get_ports { prsnt_m2c }]; #IO_L22N_T3_A04_D20_14 Sch=prsnt_m2c + + +##??????????? +##set_property PACKAGE_PIN D16 [get_ports {netic20_d16}]; #IO_L5N_T0_16 +##set_property PACKAGE_PIN D20 [get_ports {netic20_d20}]; #IO_L19P_T3_16 +##set_property PACKAGE_PIN E16 [get_ports {netic20_e16}]; #IO_L5P_T0_16 +##set_property PACKAGE_PIN F4 [get_ports {netic20_f4}]; #IO_0_35 +##set_property PACKAGE_PIN T3 [get_ports {netic20_t3}]; #IO_0_34 +##set_property PACKAGE_PIN Y17 [get_ports {netic20_y17}]; #IO_0_13 + +#set_property -dict { PACKAGE_PIN R2 IOSTANDARD LVCMOS33 } [get_ports { pic_ss_b }]; #IO_L3N_T0_DQS_34 Sch=pic_ss_b diff --git a/tp_vivado/src/hdl/TWICtl.vhd b/tp_vivado/src/hdl/TWICtl.vhd new file mode 100644 index 0000000..e0dad08 --- /dev/null +++ b/tp_vivado/src/hdl/TWICtl.vhd @@ -0,0 +1,571 @@ +---------------------------------------------------------------------------------- +-- Company: Digilent Ro +-- Engineer: Elod Gyorgy +-- +-- Create Date: 14:55:31 04/07/2011 +-- Design Name: +-- Module Name: TWIUtils - Package +-- Project Name: TWI Master Controller Reference Design +-- Target Devices: +-- Tool versions: +-- Description: This package provides enumeration types for TWI (Two-Wire +-- Interface) bus status and error conditions. +-- +-- Dependencies: +-- +-- Revision: +-- Revision 0.01 - File Created +-- Additional Comments: +-- +---------------------------------------------------------------------------------- +package TWIUtils is + type busState_type is (busUnknown, busBusy, busFree); + type error_type is (errArb, errNAck); +end TWIUtils; + +package body TWIUtils is +end TWIUtils; + +---------------------------------------------------------------------------------- +-- Company: Digilent Ro +-- Engineer: Elod Gyorgy +-- +-- Create Date: 14:55:31 04/07/2011 +-- Design Name: +-- Module Name: TWICtl - Behavioral +-- Project Name: TWI Master Controller Reference Design +-- Target Devices: +-- Tool versions: +-- Description: TWICtl is a reusabled Master Controller implementation of the +-- TWI protocol. It uses 7-bit addressing and was tested in STANDARD I2C mode. +-- FAST mode should also be theoretically possible, although it has not been +-- tested. It adheres to arbitration rules, thus supporting multi-master TWI +-- buses. Slave-wait is also supported. +-- +-- +-- Dependencies: digilent.TWIUtils package - TWICtl.vhd +-- +-- Revision: +-- Revision 0.01 - File Created +-- Additional Comments: +-- +---------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +use IEEE.STD_LOGIC_ARITH.ALL; +use IEEE.STD_LOGIC_UNSIGNED.ALL; +use IEEE.math_real.all; + +library digilent; +--use digilent.TWIUtils.ALL; + +entity TWICtl is +---------------------------------------------------------------------------------- +-- Title : Mode of operation +-- Description: The controller can be instructed to initiate/continue/stop a +-- data transfer using the strobe (STB_I, MSG_I) signals. Data flow management is +-- provided by the done (DONE_O) and error (ERR_O, ERRTYPE_O) signals. Output +-- signals are synchronous to CLK and input signals must also be synchronous to +-- CLK. Signals are active-high. +-- Fast-track instructions (single byte transfer): +-- -put the TWI address on A_I +-- -if data is written put it on D_I +-- -assert STB_I +-- -when DONE_O pulse arrives, read data is present on D_O, if any +-- -repeat, or deassert STB_I +-- Detailed data transfer flow: +-- -when DONE_O is low, the controller is ready to accept commands +-- -data transfer can be initiated by putting a TWI slave address on the A_I +-- bus and providing a strobe (STB_I) +-- -the direction of data transfer (read/write) is determined by the LSB of the +-- address (0-write, 1-read) +-- -in case of a 'write' the data byte should also be present on the D_I bus +-- prior to the arrival of the strobe (STB_I) +-- -once the data byte gets read/written, DONE_I pulses high for one CLK cycle +-- -in case of an error, ERR_O will pulse high together with DONE_I; ERR_O low +-- together with DONE_I high indicates success +-- -after DONE_I pulses high there is a 1/4 TWI period time frame when the next +-- strobe can be sent; this is useful, when multiple bytes are sent/received +-- in a single transfer packet; for ex. for write transfers, a new byte can +-- be put on the D_I and STB_I provided; +-- -if no new strobe is provided, the transfer will end +-- -if a new strobe is provided, but the address changed, the current transfer +-- will end and a new will begin +-- -starting a new transfer can be forced with the MSG_I pin; if asserted with +-- a strobe, the data byte will be written/read in a new packet; the advantage +-- of this is relevant only in multi-master buses: rather than waiting for the +-- current transfer to end and the bus to be released, a new transfer can be +-- initiated without giving up the control over the bus +---------------------------------------------------------------------------------- + generic (CLOCKFREQ : natural := 50); -- input CLK frequency in MHz + port ( + MSG_I : in STD_LOGIC; --new message + STB_I : in STD_LOGIC; --strobe + A_I : in STD_LOGIC_VECTOR (7 downto 0); --address input bus + D_I : in STD_LOGIC_VECTOR (7 downto 0); --data input bus + D_O : out STD_LOGIC_VECTOR (7 downto 0); --data output bus + DONE_O : out STD_LOGIC; --done status signal + ERR_O : out STD_LOGIC; --error status + CLK : in std_logic; + SRST : in std_logic; +---------------------------------------------------------------------------------- +-- TWI bus signals +---------------------------------------------------------------------------------- + SDA : inout std_logic; --TWI SDA + SCL : inout std_logic --TWI SCL + ); +end TWICtl; + +architecture Behavioral of TWICtl is + attribute fsm_encoding: string; + + constant FSCL : natural := 400_000; --in Hz SCL clock frequency + constant TIMEOUT : natural := 10; --in ms TWI timeout for slave wait period + constant TSCL_CYCLES : natural := + natural(ceil(real(CLOCKFREQ*1_000_000/FSCL))); + constant TIMEOUT_CYCLES : natural := + natural(ceil(real(CLOCKFREQ*TIMEOUT*1_000))); + + type state_type is (stIdle, stStart, stRead, stWrite, stError, stStop, + stSAck, stMAck, stMNAckStop, stMNAckStart, stStopError); + type busState_type is (busUnknown, busFree, busBusy); + type error_type is (errNAck, errArb); + signal state, nstate : state_type; + attribute fsm_encoding of state: signal is "gray"; + + signal dSda, ddSda, dScl, ddScl : std_logic; + signal fStart, fStop : std_logic; + signal busState : busState_type := busUnknown; + signal errTypeR, errType : error_type; + signal busFreeCnt, sclCnt : natural range TSCL_CYCLES downto 0 := TSCL_CYCLES; + signal timeOutCnt : natural range TIMEOUT_CYCLES downto 0 := TIMEOUT_CYCLES; + signal slaveWait, arbLost : std_logic; + signal dataByte, loadByte, currAddr : std_logic_vector(7 downto 0); --shift register and parallel load + signal rSda, rScl : std_logic := '1'; + signal subState : std_logic_vector(1 downto 0) := "00"; + signal latchData, latchAddr, iDone, iErr, iSda, iScl, shiftBit, dataBitOut, rwBit, addrNData : std_logic; + signal bitCount : natural range 0 to 7 := 7; + signal int_Rst : std_logic := '0'; +begin + +---------------------------------------------------------------------------------- +--Bus State detection +---------------------------------------------------------------------------------- +SYNC_FFS: process(CLK) + begin + if Rising_Edge(CLK) then + dSda <= SDA; + ddSda <= dSda; + dScl <= SCL; + end if; + end process; + + fStart <= dSCL and not dSda and ddSda; --if SCL high while SDA falling, start condition + fStop <= dSCL and dSda and not ddSda; --if SCL high while SDA rising, stop condition + +TWISTATE: process(CLK) + begin + if Rising_Edge(CLK) then + if (int_Rst = '1') then + busState <= busUnknown; + elsif (fStart = '1') then --If START condition detected, bus is busy + busState <= busBusy; + elsif (busFreeCnt = 0) then --We counted down tBUF, so it must be free + busState <= busFree; + end if; + end if; + end process; + +TBUF_CNT: process(CLK) + begin + if Rising_Edge(CLK) then + if (dSCL = '0' or dSDA = '0' or int_Rst = '1') then + busFreeCnt <= TSCL_CYCLES; + elsif (dSCL = '1' and dSDA = '1') then + busFreeCnt <= busFreeCnt - 1; --counting down 1 SCL period on free bus + end if; + end if; + end process; + +---------------------------------------------------------------------------------- +--Slave devices can insert wait states by keeping SCL low +---------------------------------------------------------------------------------- + slaveWait <= '1' when (dSCL = '0' and rScl = '1') else + '0'; +---------------------------------------------------------------------------------- +--If the SDA line does not correspond to the transmitted data while the SCL line +--is at the HIGH level the master lost an arbitration to another master. +---------------------------------------------------------------------------------- + arbLost <= '1' when (dSCL = '1' and dSDA = '0' and rSda = '1') else + '0'; + +---------------------------------------------------------------------------------- +-- Internal reset signal +---------------------------------------------------------------------------------- + RST_PROC: process (CLK) + begin + if Rising_Edge(CLK) then + if (state = stIdle and SRST = '0') then + int_Rst <= '0'; + elsif (SRST = '1') then + int_Rst <= '1'; + end if; + end if; + end process; + +---------------------------------------------------------------------------------- +-- SCL period counter +---------------------------------------------------------------------------------- +SCL_CNT: process (CLK) + begin + if Rising_Edge(CLK) then + if (sclCnt = 0 or state = stIdle) then + sclCnt <= TSCL_CYCLES/4; + elsif (slaveWait = '0') then -- clock synchronization with other masters + sclCnt <= sclCnt - 1; + end if; + end if; + end process; + +---------------------------------------------------------------------------------- +-- SCL period counter +---------------------------------------------------------------------------------- +TIMEOUT_CNT: process (CLK) + begin + if Rising_Edge(CLK) then + if (timeOutCnt = 0 or slaveWait = '0') then + timeOutCnt <= TIMEOUT_CYCLES; + elsif (slaveWait = '1') then -- count timeout on wait period inserted by slave + timeOutCnt <= timeOutCnt - 1; + end if; + end if; + end process; + +---------------------------------------------------------------------------------- +-- Title: Data byte shift register +-- Description: Stores the byte to be written or the byte read depending on the +-- transfer direction. +---------------------------------------------------------------------------------- +DATABYTE_SHREG: process (CLK) + begin + if Rising_Edge(CLK) then + if ((latchData = '1' or latchAddr = '1') and sclCnt = 0) then + dataByte <= loadByte; --latch address/data + bitCount <= 7; + --set flag so that we now what is the byte we are sending + if (latchData = '1') then + addrNData <= '0'; + else + addrNData <= '1'; + end if; + elsif (shiftBit = '1' and sclCnt = 0) then + dataByte <= dataByte(dataByte'high-1 downto 0) & dSDA; + bitCount <= bitCount - 1; + end if; + end if; + end process; + + loadByte <= A_I when latchAddr = '1' else + D_I; + dataBitOut <= dataByte(dataByte'high); + + D_O <= dataByte; + +---------------------------------------------------------------------------------- +-- Title: Current address register +-- Description: Stores the TWI slave address +---------------------------------------------------------------------------------- +CURRADDR_REG: process (CLK) + begin + if Rising_Edge(CLK) then + if (latchAddr = '1') then + currAddr <= A_I; --latch address/data + end if; + end if; + end process; + + rwBit <= currAddr(0); +---------------------------------------------------------------------------------- +-- Title: Substate counter +-- Description: Divides each state into 4, to respect the setup and hold times of +-- the TWI bus. +---------------------------------------------------------------------------------- +SUBSTATE_CNT: process (CLK) + begin + if Rising_Edge(CLK) then + if (state = stIdle) then + subState <= "00"; + elsif (sclCnt = 0) then + subState <= subState + 1; + end if; + end if; + end process; + +SYNC_PROC: process (CLK) + begin + if Rising_Edge(CLK) then + state <= nstate; + + rSda <= iSda; + rScl <= iScl; + DONE_O <= iDone; + ERR_O <= iErr; + errTypeR <= errType; + end if; + end process; + +OUTPUT_DECODE: process (nstate, subState, state, errTypeR, dataByte(0), + sclCnt, bitCount, rSda, rScl, dataBitOut, arbLost, dSda, addrNData) + begin + iSda <= rSda; --no change by default + iScl <= rScl; + iDone <= '0'; + iErr <= '0'; + errType <= errTypeR; --keep error type + shiftBit <= '0'; + latchAddr <= '0'; + latchData <= '0'; + + if (state = stStart) then + case (subState) is + when "00" => + iSda <= '1'; + --keep SCL + when "01" => + iSda <= '1'; + iScl <= '1'; + when "10" => + iSda <= '0'; + iScl <= '1'; + when "11" => + iSda <= '0'; + iScl <= '0'; + when others => + end case; + end if; + + if (state = stStop or state = stStopError) then + case (subState) is + when "00" => + iSda <= '0'; + --keep SCL + when "01" => + iSda <= '0'; + iScl <= '1'; + when "10" => + iSda <= '1'; + iScl <= '1'; + when others => + end case; + end if; + + if (state = stRead or state = stSAck) then + case (subState) is + when "00" => + iSda <= '1'; --this will be 'Z' on SDA + --keep SCL + when "01" => + --keep SDA + iScl <= '1'; + when "10" => + --keep SDA + iScl <= '1'; + when "11" => + --keep SDA + iScl <= '0'; + when others => + end case; + end if; + + if (state = stWrite) then + case (subState) is + when "00" => + iSda <= dataBitOut; + --keep SCL + when "01" => + --keep SDA + iScl <= '1'; + when "10" => + --keep SDA + iScl <= '1'; + when "11" => + --keep SDA + iScl <= '0'; + when others => + end case; + end if; + + if (state = stMAck) then + case (subState) is + when "00" => + iSda <= '0'; -- acknowledge by writing 0 + --keep SCL + when "01" => + --keep SDA + iScl <= '1'; + when "10" => + --keep SDA + iScl <= '1'; + when "11" => + --keep SDA + iScl <= '0'; + when others => + end case; + end if; + + if (state = stMNAckStop or state = stMNAckStart) then + case (subState) is + when "00" => + iSda <= '1'; -- not acknowledge by writing 1 + --keep SCL + when "01" => + --keep SDA + iScl <= '1'; + when "10" => + --keep SDA + iScl <= '1'; + when "11" => + --keep SDA + iScl <= '0'; + when others => + end case; + end if; + + if (state = stSAck and sclCnt = 0 and subState = "01") then + if (dSda = '1') then + iDone <= '1'; + iErr <= '1'; --not acknowledged + errType <= errNAck; + elsif (addrNData = '0') then + --we are done only when the data is sent too after the address + iDone <= '1'; + end if; + end if; + + if (state = stRead and subState = "01" and sclCnt = 0 and bitCount = 0) then + iDone <= '1'; --read done + end if; + + if (state = stWrite and arbLost = '1') then + iDone <= '1'; --write done + iErr <= '1'; --we lost the arbitration + errType <= errArb; + end if; + + if ((state = stWrite and sclCnt = 0 and subState = "11") or --shift at end of bit + ((state = stSAck or state = stRead) and subState = "01")) then --read in middle of bit + shiftBit <= '1'; + end if; + + if (state = stStart) then + latchAddr <= '1'; + end if; + + if (state = stSAck and subState = "11") then --get the data byte for the next write + latchData <= '1'; + end if; + + end process; + +NEXT_STATE_DECODE: process (state, busState, slaveWait, arbLost, STB_I, MSG_I, +SRST, subState, bitCount, int_Rst, dataByte, A_I, currAddr, rwBit, sclCnt, addrNData) + begin + + nstate <= state; --default is to stay in current state + + case (state) is + when stIdle => + if (STB_I = '1' and busState = busFree and SRST = '0') then + nstate <= stStart; + end if; + + when stStart => + if (subState = "11" and sclCnt = 0) then + nstate <= stWrite; + end if; + + when stWrite => + if (arbLost = '1') then + nstate <= stIdle; + elsif (subState = "11" and sclCnt = 0 and bitCount = 0) then + nstate <= stSAck; + end if; + + when stSAck => + if (subState = "11" and sclCnt = 0) then + if (int_Rst = '1' or dataByte(0) = '1') then + nstate <= stStop; + else + if (addrNData = '1') then --if we have just sent the address, tx/rx the data too + if (rwBit = '1') then + nstate <= stRead; + else + nstate <= stWrite; + end if; + elsif (STB_I = '1') then + if (MSG_I = '1' or currAddr /= A_I) then + nstate <= stStart; + else + if (rwBit = '1') then + nstate <= stRead; + else + nstate <= stWrite; + end if; + end if; + else + nstate <= stStop; + end if; + end if; + end if; + + when stStop => + if (subState = "10" and sclCnt = 0) then + nstate <= stIdle; + end if; + + when stRead => + if (subState = "11" and sclCnt = 0 and bitCount = 7) then --bitCount will underflow + if (int_Rst = '0' and STB_I = '1') then + if (MSG_I = '1' or currAddr /= A_I) then + nstate <= stMNAckStart; + else + nstate <= stMAck; + end if; + else + nstate <= stMNAckStop; + end if; + end if; + + when stMAck => + if (subState = "11" and sclCnt = 0) then + nstate <= stRead; + end if; + + when stMNAckStart => + if (arbLost = '1') then + nstate <= stIdle; -- arbitration lost, back off, no error because we got all the data + elsif (subState = "11" and sclCnt = 0) then + nstate <= stStart; + end if; + + when stMNAckStop => + if (arbLost = '1') then + nstate <= stIdle; -- arbitration lost, back off, no error because we got all the data + elsif (subState = "11" and sclCnt = 0) then + nstate <= stStop; + end if; + + when others => + nstate <= stIdle; + end case; + end process; + +---------------------------------------------------------------------------------- +-- Open-drain outputs for bi-directional SDA and SCL +---------------------------------------------------------------------------------- + SDA <= 'Z' when rSDA = '1' else + '0'; + SCL <= 'Z' when rSCL = '1' else + '0'; + +end Behavioral; \ No newline at end of file diff --git a/tp_vivado/src/hdl/audioProc.v b/tp_vivado/src/hdl/audioProc.v new file mode 100644 index 0000000..cae83df --- /dev/null +++ b/tp_vivado/src/hdl/audioProc.v @@ -0,0 +1,231 @@ +// -*- Mode: Verilog -*- +// Filename : audioProc.v +// Description : Audio processing project for IMTA A1S2 Labs in digital electronics, based on looper project by Digilent Inc. +// Author : Matthieu Arzel +// Created On : Fri Feb 8 11:16:35 2019 +// Last Modified By: Matthieu Arzel +// Last Modified On: Fri Feb 8 11:16:35 2019 +// Update Count : 0 +// Status : Unknown, Use with caution! + +`timescale 1ns / 1ps + +module audioProc( + + + input BTNL, + input BTNR, + input BTND, + input BTNC, + input BTNU, + // input JA1, + // input JA2, + // input JA3, + // input JA4, + + input CLK100MHZ, + input rstn, + input sw, + //input [3:0]sw, + input sw3, + input sw4, + input sw5, + input sw6, + input sw7, + output led3, + output led4, + output led5, + output led6, + output led7, + + inout scl, + inout sda, + + output ac_mclk, + input ac_adc_sdata, + output ac_dac_sdata, + output ac_bclk, + output ac_lrclk + + ); + + wire rst; + assign rst = ~rstn; + wire clk50; + parameter tenhz = 10000000; + + + + wire [4:0] buttons_i; + assign buttons_i = {BTNU, BTNR, BTNC, BTND, BTNL}; + + reg [21:0] max_block=0; + + wire set_max; + wire reset_max; + + + wire [4:0] buttons_db;//Debounced buttons + + wire data_flag; + reg [23:0] sound_dataL; + reg [23:0] sound_dataR; + wire data_ready; + + wire mix_data; + wire [21:0] block48KHz; + + wire clk_out_100MHZ; + wire clk_out_200MHZ; + + + ////////////////////////////////////////////////////////////////////////////////////////////////////////// + //// clk_wiz instantiation and wiring + ////////////////////////////////////////////////////////////////////////////////////////////////////////// + clk_wiz_0 clk_1 + ( + // Clock in ports + .clk_in1(CLK100MHZ), + // Clock out ports + .clk_out1(clk_out_100MHZ), + .clk_out2(clk_out_200MHZ), + .clk_out3(ac_mclk), + .clk_out4(clk50), + // Status and control signals + .locked() + ); + + ////////////////////////////////////////////////////////////////////////////////////////////////////////// + //// Audio Initialization via TWI + ////////////////////////////////////////////////////////////////////////////////////////////////////////// + + audio_init initialize_audio + ( + .clk(clk50), + .rst(rst), + .sda(sda), + .scl(scl) + ); + + + wire [23:0] mixL; + wire [23:0] mixR; + + + debounce dbuttons( + .clock(clk_out_100MHZ), + .reset(rst), + .button(buttons_i), + .out(buttons_db) + ); + + + + + + + //////////////////////////////////////////////////////////////////////////////////////////////////////// + // Audio input and output + //////////////////////////////////////////////////////////////////////////////////////////////////////// + + wire [23:0] in_audioL; + wire [23:0] in_audioR; + wire [23:0] out_audioL; + wire [23:0] out_audioR; + + i2s_ctl audio_inout( + .CLK_I(clk_out_100MHZ), //Sys clk + .RST_I(rst), //Sys rst + .EN_TX_I(1), // Transmit Enable (push sound data into chip) + .EN_RX_I(1), //Receive enable (pull sound data out of chip) + .FS_I(4'b0101), //Sampling rate selector + .MM_I(0), //Audio controller Master mode select + .D_L_I(mixL), //Left channel data input from mix (mixed audio output) + .D_R_I(mixR), //Right channel data input from mix + .D_L_O(in_audioL), // Left channel data (input from mic input) + .D_R_O(in_audioR), // Right channel data (input from mic input) + .BCLK_O(ac_bclk), // serial CLK + .LRCLK_O(ac_lrclk), // channel CLK + .SDATA_O(ac_dac_sdata), // Output serial data + .SDATA_I(ac_adc_sdata) // Input serial data + ); + + reg lrclkD1=0; + reg lrclkD2=0; + + always@(posedge(clk_out_100MHZ))begin + lrclkD1<=ac_lrclk; + lrclkD2<=lrclkD1; + end + + reg pulse48kHz; + wire lrclkrise; + assign lrclkrise = lrclkD1 & ~lrclkD2; + reg[3:0] lrclkcnt=0; + + always@(posedge(clk_out_100MHZ))begin + if (lrclkcnt==15)begin + pulse48kHz<=1; + lrclkcnt<=0; + end + else + pulse48kHz<=0; + if (lrclkrise)lrclkcnt<=lrclkcnt+1; + end + ////////////////////////////// + //FIR filter + // Marz + ///////////////////////////// + wire [23:0] inputLeftSample, inputRightSample,outputLeftSample,outputRightSample; + wire [4:0] configSw; + + assign inputLeftSample = in_audioL; + assign inputRightSample = in_audioR; + assign configSw[0]=sw3; + assign configSw[1]=sw4; + assign configSw[2]=sw5; + assign configSw[3]=sw6; + assign configSw[4]=sw7; + assign led3=sw3; + assign led4=sw4; + assign led5=sw5; + assign led6=sw6; + assign led7=sw7; + + fir #(24,16) leftFir + ( + inputLeftSample, + outputLeftSample, + configSw,//config_sw, // : in std_logic_vector(3 downto 0); --inutilise dans le TP majeure + clk_out_100MHZ, // : in std_logic; + rst,// : in std_logic; + pulse48kHz// : in std_logic; -- signal de validation de din a la frequence des echantillons audio + ); + fir #(24,16) rightFir + ( + inputRightSample, + outputRightSample, + configSw,//config_sw, // : in std_logic_vector(3 downto 0); --inutilise dans le TP majeure + clk_out_100MHZ, // : in std_logic; + rst,// : in std_logic; + pulse48kHz// : in std_logic; -- signal de validation de din a la frequence des echantillons audio + ); + + assign mixL = buttons_db[2] ? in_audioL : outputLeftSample; + assign mixR = buttons_db[2] ? in_audioR : outputRightSample; + + + //////////////////////////////////////////////////////////////////////////////////////////////////////// + //// Data in latch + //////////////////////////////////////////////////////////////////////////////////////////////////////// + + //Latch audio data input when data_flag goes high + always@(posedge(clk_out_100MHZ))begin + if (data_flag==1)begin + sound_dataL<=in_audioL; + sound_dataR<=in_audioR; + end + end + + +endmodule diff --git a/tp_vivado/src/hdl/audio_init.v b/tp_vivado/src/hdl/audio_init.v new file mode 100644 index 0000000..0f33184 --- /dev/null +++ b/tp_vivado/src/hdl/audio_init.v @@ -0,0 +1,246 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 07/08/2015 06:07:53 PM +// Design Name: +// Module Name: audio_init +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + + +module audio_init( + input clk, + input rst, + inout sda, + inout scl + ); + parameter stRegAddr1 = 4'b0000; + parameter stRegAddr2 = 4'b0001; + parameter stData1 = 4'b0010; + parameter stData2 = 4'b0011; + parameter stError = 4'b0100; + parameter stDone = 4'b0101; + parameter stIdle = 4'b0110; + parameter stDelay = 4'b0111; + parameter stPLLsecond = 4'b1111; + + parameter INIT_VECTORS = 35; + parameter IRD = 1'b1;//init read + parameter IWR = 1'b0;//init write + parameter delay = 1000*24; + + reg [3:0] state=stIdle;//State machine + reg [32:0] initWord; + reg initFbWe; + reg initEn; + reg [6:0]initA=0; + always @(posedge(clk))begin + case (initA) + 0: initWord <= {IWR,31'h40150100}; + 1: initWord <= {IWR,31'h40160000}; + 2: initWord <= {IWR,31'h40170000}; + 3: initWord <= {IWR,31'h40F80000}; + 4: initWord <= {IWR,31'h40191300}; + 5: initWord <= {IWR,31'h402A0300}; + 6: initWord <= {IWR,31'h40290300}; + 7: initWord <= {IWR,31'h40F20100}; + 8: initWord <= {IWR,31'h40F97F00}; + 9: initWord <= {IWR,31'h40FA0300}; + + 10: initWord <= {IWR,31'h40200300}; + 11: initWord <= {IWR,31'h40220100}; + 12: initWord <= {IWR,31'h40210900}; + 13: initWord <= {IWR,31'h4025E600}; + 14: initWord <= {IWR,31'h4026E600}; + 15: initWord <= {IWR,31'h40270300}; + 16: initWord <= {IWR,31'h40100100}; + 17: initWord <= {IWR,31'h40280000}; + 18: initWord <= {IWR,31'h4023E600}; + 19: initWord <= {IWR,31'h4024E600}; + + 20: initWord <= {IWR,31'h400A0100}; + 21: initWord <= {IWR,31'h400B0500}; + 22: initWord <= {IWR,31'h400C0100}; + 23: initWord <= {IWR,31'h400D0500}; + 24: initWord <= {IWR,31'h400E0300}; + 25: initWord <= {IWR,31'h400F0300}; + 26: initWord <= {IWR,31'h401C2100}; + 27: initWord <= {IWR,31'h401D0000}; + 28: initWord <= {IWR,31'h401E4100}; + 29: initWord <= {IWR,31'h401F0000}; + 30: initWord <= {IWR,31'h40F30100}; + 31: initWord <= {IWR,31'h40F40000}; + 32: initWord <= {IWR,31'h40000F00}; + 33: initWord <= {IWR,31'h4002007D};//This sends the address of the PLL reg and the first config bits + 34: initWord <= {IWR,31'h000C2101}; //These are the config bytes for the PLL reg + endcase + end + reg msg;//New message signal + reg stb;//Strobe signal + reg [7:0] data_i;//Data into TWI controller + wire [7:0] data_o;//Data out of TWI controller + wire done; + wire error; + wire errortype; + wire [7:0] twiAddr;//Address of device on TWI + reg [7:0] regData1; + + reg delayEn=0; + integer delaycnt; + + + assign twiAddr[7:1] = 7'b0111011; + + assign twiAddr[0] = 0; + + TWICtl twi_controller( + .MSG_I(msg), + .STB_I(stb), + .A_I(twiAddr), + .D_I(data_i), + .D_O(data_o), + .DONE_O(done), + .ERR_O(error), + .CLK(clk), + .SRST(rst), + .SDA(sda), + .SCL(scl) + ); + + + +always @(posedge(clk))begin + if (delayEn==1) + delaycnt<=delaycnt-1; + else + delaycnt<=delay; +end + + +always @(posedge(clk))begin + if (state == stData1 && done == 1 && error != 1) + regData1 <= data_o; +end + + +always @(posedge(clk))begin + if (rst==1)begin + state<= stIdle; + delayEn <= 0; + initA <=0; + end + else begin + data_i <= "--------"; + stb <= 0; + msg <= 0; + + initFbWe <= 0; + case (state) + stRegAddr1: begin// Sends x40 + if (done == 1)begin + if (error == 1) + state <= stError; + else + state <= stRegAddr2; + end + data_i <= initWord[31:24]; + stb <= 1; + msg <= 1; + end + stRegAddr2: begin //Sends register address x40(XX) + if (done == 1)begin + if (error == 1) + state <= stError; + else + state <= stData1; + end + data_i <= initWord[23:16]; + stb <= 1; + end + stData1: begin + if (done == 1) begin + if (error == 1) + state <= stError; + else begin + if (initWord[7:0]!=0)//If there is another byte, send it + state <= stData2; + else begin//no more bytes to send + initEn <= 1; + + if (initA == INIT_VECTORS-1)//Done with all instructions + state <= stDone; + else //Only 3 bytes to send + state <= stDelay; + end + end + end + if (initWord[32] == 1) msg <= 1; + data_i <= initWord[15:8]; + stb <= 1; + end + stData2: begin + if (done == 1)begin + if (error == 1) + state <= stError; + else begin + initEn<=1; + if (initWord[32] == 1) initFbWe <= 1; + if (initWord[23:16]== 8'h02)begin//If its the PLL register + initA<=initA+1;//Move initWord to the remaining PLL config bits + state <= stPLLsecond;//And send them + end + else if (initA == INIT_VECTORS-1) + state <= stDone; + else + state <= stDelay; + end + end + data_i <= initWord[7:0]; + stb <= 1; + end + stPLLsecond:begin + if (done == 1)begin + if (error == 1) + state <= stError; + else + state <= stRegAddr2; + end + data_i <= initWord[31:24]; + stb <= 1; + end + stError: begin + state <= stRegAddr1; + end + stDone: begin + end + stIdle:begin + state <= stRegAddr1; + end + stDelay:begin + delayEn <= 1; + if (delaycnt==0)begin + delayEn<=0; + if (initEn)begin + initA<=initA+1; + initEn <= 0; + end + state<=stRegAddr1; + end + end + endcase + end +end +endmodule diff --git a/tp_vivado/src/hdl/controlUnit.vhd b/tp_vivado/src/hdl/controlUnit.vhd new file mode 100644 index 0000000..954bf21 --- /dev/null +++ b/tp_vivado/src/hdl/controlUnit.vhd @@ -0,0 +1,183 @@ +------------------------------------------------------------------------------- +-- Title : controlUnit +-- Project : +------------------------------------------------------------------------------- +-- File : operativeUnit.vhd +-- Author : Jean-Noel BAZIN <jnbazin@pc-disi-026.enst-bretagne.fr> +-- Company : +-- Created : 2018-04-11 +-- Last update: 2019-02-13 +-- Platform : +-- Standard : VHDL'93/02 +------------------------------------------------------------------------------- +-- Description: Control unit of a sequential FIR filter. +------------------------------------------------------------------------------- +-- Copyright (c) 2018 +------------------------------------------------------------------------------- +-- Revisions : +-- Date Version Author Description +-- 2018-04-11 1.0 jnbazin Created +------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity controlUnit is + + port ( + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSampleValid : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_processingDone_y : in std_logic; + I_processingDone_z_a : in std_logic; + I_processingDone_z_b : in std_logic; + I_processingDone_r : in std_logic; + O_loadShift_X : out std_logic; -- + O_loadShift_Y : out std_logic; -- + O_loadShift_Z : out std_logic; -- + O_initAddress_x : out std_logic; -- Control signal to initialize register read address + O_initAddress_y : out std_logic; + O_initAddress_z : out std_logic; + O_incrAddress_x : out std_logic; -- Control signal to increment register read address + O_incrAddress_y : out std_logic; -- Control signal to increment register read address + O_incrAddress_z : out std_logic; -- Control signal to increment register read address + O_filtre : out std_logic_vector(1 downto 0); + O_filtreCoef : out std_logic_vector(1 downto 0); + O_initSum : out std_logic; -- Control signal to initialize the MAC register + O_loadSum : out std_logic; -- Control signal to load the MAC register; + O_loadY : out std_logic; -- Control signal to load Y register + O_FilteredSampleValid : out std_logic -- Data valid signal for filtered sample + ); + +end entity controlUnit; +architecture archi_operativeUnit of controlUnit is + + + type T_state is (WAIT_SAMPLE, STORE_X, PROCESSING_LOOP_Y, STORE_Y, PROCESSING_LOOP_Z_A, INITADRESS, PROCESSING_LOOP_Z_B, STORE_Z, PROCESSING_LOOP_R, OUTPUT, WAIT_END_SAMPLE); -- state list + signal SR_presentState : T_state; + signal SR_futurState : T_state; + +begin + + process (I_clock, I_reset) is + begin + if I_reset = '1' then -- asynchronous reset (active high) + SR_presentState <= WAIT_SAMPLE; + elsif rising_edge(I_clock) then -- rising clock edge + SR_presentState <= SR_futurState; + end if; + end process; + + process (I_clock, SR_presentState) is + begin + case SR_presentState is + when WAIT_SAMPLE => + if I_inputSampleValid = '0' then + SR_futurState <= WAIT_SAMPLE; + else + SR_futurState <= STORE_X; + end if; + + when STORE_X => + SR_futurState <= PROCESSING_LOOP_Y; + + when PROCESSING_LOOP_Y => + if I_processingDone_Y = '1' then + SR_futurState <= STORE_Y; + else + SR_futurSTATE <= PROCESSING_LOOP_Y; + end if; + + when STORE_Y => + SR_futurState <= PROCESSING_LOOP_Z_A; + + when PROCESSING_LOOP_Z_A => + if I_processingDone_z_a = '1' then + SR_futurState <= INITADRESS; + else + SR_futurState <= PROCESSING_LOOP_Z_A; + end if; + + when INITADRESS => + SR_futurState <= PROCESSING_LOOP_Z_B; + + when PROCESSING_LOOP_Z_B => + if I_processingDone_z_b = '1' then + SR_futurState <= STORE_Z; + else + SR_futurState <= PROCESSING_LOOP_Z_B; + end if; + + when STORE_Z => + SR_futurState <= PROCESSING_LOOP_R; + + when PROCESSING_LOOP_R => + if I_processingDone_R = '1' then + SR_futurState <= OUTPUT; + else + SR_futurState <= PROCESSING_LOOP_R; + end if; + + when OUTPUT => + SR_futurState <= WAIT_END_SAMPLE; + + when WAIT_END_SAMPLE => + if I_inputSampleValid = '1' then + SR_futurState <= WAIT_END_SAMPLE; + else + SR_futurState <= WAIT_SAMPLE; + end if; + + when others => null; + end case; + end process; + + handle_filters: process (I_clock, I_reset, SR_presentState) is + begin + if I_reset = '1' then + O_Filtre <= "00"; + O_FiltreCoef <= "00"; + else + if SR_presentState = STORE_X or SR_presentState = PROCESSING_LOOP_Y then + O_Filtre <= "00"; + O_FiltreCoef <= "00"; + end if; + + if SR_presentState = PROCESSING_LOOP_Z_B then + O_Filtre <= "01"; + O_FiltreCoef <= "01"; + end if; + + if SR_presentState = PROCESSING_LOOP_Z_A then + O_filtre <= "10"; + end if; + + if SR_presentState = PROCESSING_LOOP_R then + O_Filtre <= "10"; + O_FiltreCoef <= "11"; + end if; + end if; + end process handle_filters; + + O_loadShift_X <= '1' when SR_presentState = STORE_X else '0'; + O_loadShift_Y <= '1' when SR_presentState = STORE_Y else '0'; + O_loadShift_Z <= '1' when SR_presentState = STORE_Z else '0'; + O_initAddress_x <= '1' when SR_presentState = STORE_X else '0'; + O_initAddress_y <= '1' when SR_presentState = STORE_Y or SR_presentState = INITADRESS else '0'; + O_initAddress_z <= '1' when SR_presentState = STORE_Z else '0'; + O_incrAddress_x <= '1' when SR_presentState = PROCESSING_LOOP_Y else '0'; + O_incrAddress_y <= '1' when SR_presentState = PROCESSING_LOOP_Z_A or SR_presentState = PROCESSING_LOOP_Z_B else '0'; + O_incrAddress_z <= '1' when SR_presentState = PROCESSING_LOOP_R else '0'; + O_initSum <= '1' when SR_presentState = STORE_X + or SR_presentState = STORE_Y + or SR_presentState = STORE_Z else '0'; + O_loadSum <= '1' when SR_presentState = PROCESSING_LOOP_Y + or SR_presentState = PROCESSING_LOOP_Z_A + or SR_presentState = PROCESSING_LOOP_Z_B + or SR_presentState = PROCESSING_LOOP_R else '0'; + + O_loadY <= '1' when SR_presentState = OUTPUT else '0'; +-- O_FilteredSampleValid <= '1' when _BLANK_ ; + +end architecture archi_operativeUnit; diff --git a/tp_vivado/src/hdl/debounce.v b/tp_vivado/src/hdl/debounce.v new file mode 100644 index 0000000..033a4fb --- /dev/null +++ b/tp_vivado/src/hdl/debounce.v @@ -0,0 +1,108 @@ +`timescale 1ns / 1ps +////////////////////////////////////////////////////////////////////////////////// +// Company: +// Engineer: +// +// Create Date: 05/13/2015 09:14:14 PM +// Design Name: +// Module Name: debounce +// Project Name: +// Target Devices: +// Tool Versions: +// Description: +// +// Dependencies: +// +// Revision: +// Revision 0.01 - File Created +// Additional Comments: +// +////////////////////////////////////////////////////////////////////////////////// + + +module debounce( + input clock,//100MHz clock + input reset, + input [4:0] button,//Buttons to debounce + output reg [4:0]out +); + +reg [12:0] cnt0=0, cnt1=0, cnt2=0, cnt3=0, cnt4; +reg [4:0] IV = 0; + +//parameter dbTime = 19; +parameter dbTime = 4000; + +always @ (posedge(clock))begin + if(reset==1)begin + cnt0<=0; + cnt1<=0; + cnt2<=0; + cnt3<=0; + cnt4<=0; + out<=0; + end + else begin + if(button[0]==IV[0]) begin + if (cnt0==dbTime) begin + out[0]<=IV[0]; + end + else begin + cnt0<=cnt0+1; + end + end + else begin + cnt0<=0; + IV[0]<=button[0]; + end + if(button[1]==IV[1]) begin + if (cnt1==dbTime) begin + out[1]<=IV[1]; + end + else begin + cnt1<=cnt1+1; + end + end + else begin + cnt1<=0; + IV[1]<=button[1]; + end + if(button[2]==IV[2]) begin + if (cnt2==dbTime) begin + out[2]<=IV[2]; + end + else begin + cnt2<=cnt2+1; + end + end + else begin + cnt2<=0; + IV[2]<=button[2]; + end + if(button[3]==IV[3]) begin + if (cnt3==dbTime) begin + out[3]<=IV[3]; + end + else begin + cnt3<=cnt3+1; + end + end + else begin + cnt3<=0; + IV[3]<=button[3]; + end + if(button[4]==IV[4]) begin + if (cnt4==dbTime) begin + out[4]<=IV[4]; + end + else begin + cnt4<=cnt4+1; + end + end + else begin + cnt4<=0; + IV[4]<=button[4]; + end + end +end +endmodule \ No newline at end of file diff --git a/tp_vivado/src/hdl/fir.vhd b/tp_vivado/src/hdl/fir.vhd new file mode 100644 index 0000000..785d6e4 --- /dev/null +++ b/tp_vivado/src/hdl/fir.vhd @@ -0,0 +1,93 @@ +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity fir is + + generic ( + dwidth : natural := 18; + ntaps : natural := 15); + + port ( + din : in std_logic_vector(dwidth-1 downto 0); + dout : out std_logic_vector(dwidth-1 downto 0); + config_sw : in std_logic_vector(4 downto 0); --inutilise dans le TP majeure + clk : in std_logic; + rst : in std_logic; + ce : in std_logic; -- signal de validation de din a la frequence des echantillons audio + dbg_output_0 : out std_logic_vector(7 downto 0); --inutilise dans le TP majeure + dbg_output_1 : out std_logic_vector(7 downto 0); --inutilise dans le TP majeure + dbg_output_2 : out std_logic; --inutilise dans le TP majeure + dbg_output_3 : out std_logic; --inutilise dans le TP majeure + dbg_output_4 : out std_logic --inutilise dans le TP majeure +-- dout_valid : out std_logic + ); + +end fir; + +architecture myarch of fir is + + component firUnit is + port ( + I_clock : in std_logic; + I_reset : in std_logic; + I_inputSample : in std_logic_vector(7 downto 0); + I_inputSampleValid : in std_logic; + O_filteredSample : out std_logic_vector(7 downto 0); + O_filteredSampleValid : out std_logic); + end component firUnit; + + + signal D_in, D_out : std_logic_vector(7 downto 0); + +begin -- myarch + +-- Quantization on 8 bits or less + +-- When config_sw(3)='1', rounding is made by finding the nearest value else rounding is made by truncating. + prc : process (config_sw(3 downto 0), din) is + begin -- process prc + case to_integer(unsigned(config_sw(3 downto 0))) is + when 0 => D_in <= din(dwidth-1 downto dwidth -8); + when 1 => D_in <= din(dwidth-1 downto dwidth -7)&'0'; + when 2 => D_in <= din(dwidth-1 downto dwidth -6)&"00"; + when 3 => D_in <= din(dwidth-1 downto dwidth -5)&"000"; + when 4 => D_in <= din(dwidth-1 downto dwidth -4)&"0000"; + when 5 => D_in <= din(dwidth-1 downto dwidth -3)&"00000"; + when 6 => D_in <= din(dwidth-1 downto dwidth -2)&"000000"; + when 7 => D_in <= din(dwidth-1)&"0000000"; + when 8 => if din(dwidth-8) = '0' then D_in <= din(dwidth-1 downto dwidth -8);else D_in <=std_logic_vector(signed(din(dwidth-1 downto dwidth -8))+1); end if; + when 9 => if din(dwidth-8) = '0' then D_in <= din(dwidth-1 downto dwidth -7)&'0'; else D_in <=std_logic_vector(signed(din(dwidth-1 downto dwidth -7))+1)&'0'; end if; + when 10 => if din(dwidth-7) = '0' then D_in <= din(dwidth-1 downto dwidth -6)&"00"; else D_in <=std_logic_vector(signed(din(dwidth-1 downto dwidth -6))+1)&"00"; end if; + when 11 => if din(dwidth-6) = '0' then D_in <= din(dwidth-1 downto dwidth -5)&"000"; else D_in <=std_logic_vector(signed(din(dwidth-1 downto dwidth -5))+1)&"000"; end if; + when 12 => if din(dwidth-5) = '0' then D_in <= din(dwidth-1 downto dwidth -4)&"0000"; else D_in <=std_logic_vector(signed(din(dwidth-1 downto dwidth -4))+1)&"0000"; end if; + when 13 => if din(dwidth-4) = '0' then D_in <= din(dwidth-1 downto dwidth -3)&"00000"; else D_in <=std_logic_vector(signed(din(dwidth-1 downto dwidth -3))+1)&"00000"; end if; + when 14 => if din(dwidth-3) = '0' then D_in <= din(dwidth-1 downto dwidth -2)&"000000"; else D_in <=std_logic_vector(signed(din(dwidth-1 downto dwidth -2))+1)&"000000"; end if; + when 15 => D_in <= din(dwidth-1)&"0000000"; + when others => D_in <= (others => '0'); + end case; + end process prc; + +--FIR over 8 bits + + firUnit_1 : entity work.firUnit + port map ( + I_clock => clk, + I_reset => rst, + I_inputSample => D_in, + I_inputSampleValid => ce, + O_filteredSample => D_out, + O_filteredSampleValid => open); + + +-- End of FIR + + + dout(dwidth-1 downto dwidth -8) <= D_out when config_sw(4) = '1' else D_in; + dout(dwidth-9 downto 0) <= (others => '0'); + + + + + +end myarch; diff --git a/tp_vivado/src/hdl/firUnit.vhd b/tp_vivado/src/hdl/firUnit.vhd new file mode 100644 index 0000000..e0d34f4 --- /dev/null +++ b/tp_vivado/src/hdl/firUnit.vhd @@ -0,0 +1,162 @@ +------------------------------------------------------------------------------- +-- Title : firUnit +-- Project : +------------------------------------------------------------------------------- +-- File : operativeUnit.vhd +-- Author : Jean-Noel BAZIN <jnbazin@pc-disi-026.enst-bretagne.fr> +-- Company : +-- Created : 2018-04-11 +-- Last update: 2018-04-11 +-- Platform : +-- Standard : VHDL'93/02 +------------------------------------------------------------------------------- +-- Description: 8 bit FIR +------------------------------------------------------------------------------- +-- Copyright (c) 2018 +------------------------------------------------------------------------------- +-- Revisions : +-- Date Version Author Description +-- 2018-04-11 1.0 jnbazin Created +------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity firUnit is + + port ( + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSample : in std_logic_vector(10 downto 0); -- 8 bit input sample + I_inputSampleValid : in std_logic; + O_filteredSample : out std_logic_vector(10 downto 0); -- filtered sample + O_filteredSampleValid : out std_logic + ); + +end entity firUnit; + +architecture archi_firUnit of firUnit is + + component controlUnit is + port ( + I_clock : in std_logic; + I_reset : in std_logic; + I_inputSampleValid : in std_logic; + I_processingDone_Y : in std_logic; + I_processingDone_Za : in std_logic; + I_processingDone_Zb : in std_logic; + I_processingDone_R : in std_logic; + O_loadShift_X : out std_logic; -- + O_loadShift_Y : out std_logic; -- + O_loadShift_Z : out std_logic; -- + O_initAddress_x : in std_logic; -- Control signal to initialize register read address + O_initAddress_y : in std_logic; -- Control signal to initialize register read address + O_initAddress_z : in std_logic; -- Control signal to initialize register read address + O_incrAddress_Y : out std_logic; -- Control signal to increment register read address + O_incrAddress_Za : out std_logic; -- Control signal to increment register read address + O_incrAddress_Zb : out std_logic; -- Control signal to increment register read address + O_filtre : out std_logic_vector(1 downto 0); + O_filtreCoef : out std_logic_vector(1 downto 0); + O_initSum : out std_logic; + O_loadSum : out std_logic; + O_loadY : out std_logic; + O_FilteredSampleValid : out std_logic); + end component controlUnit; + + component operativeUnit is + port ( + I_clock : in std_logic; + I_reset : in std_logic; + I_inputSample : in std_logic_vector(10 downto 0); + I_loadShift_x : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_loadShift_y : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_loadShift_z : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_initAddress_x : in std_logic; -- Control signal to initialize register read address + I_initAddress_y : in std_logic; -- Control signal to initialize register read address + I_initAddress_z : in std_logic; -- Control signal to initialize register read address + I_incrAddress_x : in std_logic; -- Control signal to increment register read address + I_incrAddress_y : in std_logic; -- Control signal to increment register read address + I_incrAddress_z : in std_logic; -- Control signal to increment register read address + I_initSum : in std_logic; + I_loadSum : in std_logic; + I_loadY : in std_logic; + I_filtre : in std_logic_vector(1 downto 0); + I_filtreCoef : in std_logic_vector(1 downto 0); + O_processingDone_y : out std_logic; -- Indicate that processing is done + O_processingDone_z_a : out std_logic; -- Indicate that processing is done + O_processingDone_z_b : out std_logic; -- Indicate that processing is done + O_processingDone_r : out std_logic; -- Indicate that processing is done + O_Y : out std_logic_vector(10 downto 0)); + end component operativeUnit; + + signal SC_processingDone_y : std_logic; + signal SC_processingDone_z_a : std_logic; + signal SC_processingDone_z_b : std_logic; + signal SC_processingDone_r : std_logic; + signal SC_loadShift_x : std_logic; + signal SC_loadShift_y : std_logic; + signal SC_loadShift_Z : std_logic; + signal SC_initAddress_x : std_logic; + signal SC_initAddress_y : std_logic; + signal SC_initAddress_z : std_logic; + signal SC_incrAddress_x : std_logic; + signal SC_incrAddress_y : std_logic; + signal SC_incrAddress_z : std_logic; + signal SC_initSum : std_logic; + signal SC_Filtre : std_logic_vector(1 downto 0); + signal SC_FiltreCoef : std_logic_vector(1 downto 0); + signal SC_loadSum : std_logic; + signal SC_loadY : std_logic; + +begin + + controlUnit_1 : entity work.controlUnit + port map ( + I_clock => I_clock, + I_reset => I_reset, + I_inputSampleValid => I_inputSampleValid, + I_processingDone_y => SC_processingDone_y, + I_processingDone_z_a => SC_processingDone_z_a, + I_processingDone_z_b => SC_processingDone_z_b, + I_processingDone_r => SC_processingDone_r, + O_loadShift_x => SC_loadShift_x, + O_initAddress_x => SC_initAddress_x, + O_initAddress_y => SC_initAddress_y, + O_initAddress_z => SC_initAddress_z, + O_incrAddress_x => SC_incrAddress_x, + O_incrAddress_y => SC_incrAddress_y, + O_incrAddress_z => SC_incrAddress_z, + O_filtre => SC_Filtre, + O_filtreCoef => SC_FiltreCoef, + O_initSum => SC_initSum, + O_loadSum => SC_loadSum, + O_loadY => SC_loadY, + O_FilteredSampleValid => O_FilteredSampleValid); + + operativeUnit_1 : entity work.operativeUnit + port map ( + I_clock => I_clock, + I_reset => I_reset, + I_inputSample => I_inputSample, + I_loadShift_x => SC_loadShift_x, + I_loadShift_y => SC_loadShift_y, + I_loadShift_z => SC_loadShift_z, + I_initAddress_x => SC_initAddress_x, + I_initAddress_y => SC_initAddress_y, + I_initAddress_z => SC_initAddress_z, + I_incrAddress_x => SC_incrAddress_x, + I_incrAddress_y => SC_incrAddress_y, + I_incrAddress_z => SC_incrAddress_z, + I_initSum => SC_initSum, + I_loadSum => SC_loadSum, + I_loadY => SC_loadY, + I_Filtre => SC_Filtre, + I_FiltreCoef => SC_FiltreCoef, + O_processingDone_y => SC_processingDone_y, + O_processingDone_z_a => SC_processingDone_z_a, + O_processingDone_z_b => SC_processingDone_z_b, + O_processingDone_r => SC_processingDone_r, + O_Y => O_filteredSample); + +end architecture archi_firUnit; diff --git a/tp_vivado/src/hdl/i2s_ctl.vhd b/tp_vivado/src/hdl/i2s_ctl.vhd new file mode 100644 index 0000000..1b608ad --- /dev/null +++ b/tp_vivado/src/hdl/i2s_ctl.vhd @@ -0,0 +1,296 @@ +------------------------------------------------------------------------------- +-- +-- COPYRIGHT (C) 2012, Digilent RO. All rights reserved +-- +------------------------------------------------------------------------------- +-- FILE NAME : i2s_ctl.vhd +-- MODULE NAME : I2S Control +-- AUTHOR : Mihaita Nagy +-- AUTHOR'S EMAIL : mihaita.nagy@digilent.ro +------------------------------------------------------------------------------- +-- REVISION HISTORY +-- VERSION DATE AUTHOR DESCRIPTION +-- 1.0 2012-25-01 Mihaita Nagy Created +-- 2.0 2012-02-04 Mihaita Nagy Remade the i2s_transmitter.vhd and +-- i2s_receiver.vhd into one new module. +-- 3.0 2014-12-02 HegbeliC Implemented edge detection for the +-- master mode and the division rate +-- for the different sampling rates +------------------------------------------------------------------------------- +-- KEYWORDS : I2S +------------------------------------------------------------------------------- +-- DESCRIPTION : This module implements the I2S transmitter and receiver +-- interface, with a 32-bit Stereo data transmission. Parameter +-- C_DATA_WIDTH sets the width of the data to be transmitted, +-- with a maximum value of 32 bits. If a smaller width size is +-- used (i.e. 24) than the remaining bits that needs to be +-- transmitted to complete the 32-bit length, are automaticaly +-- set to 0. +------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; + +------------------------------------------------------------------------ +-- Module Declaration +------------------------------------------------------------------------ +entity i2s_ctl is + generic ( + -- Width of one Slot (24/20/18/16-bit wide) + C_DATA_WIDTH: integer := 24 + ); + port ( + CLK_I : in std_logic; -- System clock (100 MHz) + RST_I : in std_logic; -- System reset + EN_TX_I : in std_logic; -- Transmit enable + EN_RX_I : in std_logic; -- Receive enable + FS_I : in std_logic_vector(3 downto 0); -- Sampling rate slector + MM_I : in std_logic; -- Audio controler Master Mode delcetor + D_L_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0); -- Left channel data + D_R_I : in std_logic_vector(C_DATA_WIDTH-1 downto 0); -- Right channel data +-- OE_L_O : out std_logic; -- Left channel data output enable pulse +-- OE_R_O : out std_logic; -- Right channel data output enable pulse +-- WE_L_O : out std_logic; -- Left channel data write enable pulse +-- WE_R_O : out std_logic; -- Right channel data write enable pulse + D_L_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0); -- Left channel data + D_R_O : out std_logic_vector(C_DATA_WIDTH-1 downto 0); -- Right channel data + BCLK_O : out std_logic; -- serial CLK + LRCLK_O : out std_logic; -- channel CLK + SDATA_O : out std_logic; -- Output serial data + SDATA_I : in std_logic -- Input serial data + ); +end i2s_ctl; + +architecture Behavioral of i2s_ctl is + +------------------------------------------------------------------------ +-- Signal Declarations +------------------------------------------------------------------------ +-- Counter for the clock divider +signal Cnt_Bclk : integer range 0 to 31; + +-- Counter for the L/R clock divider +signal Cnt_Lrclk : integer range 0 to 31; + +-- Rising and Falling edge impulses of the serial clock +signal BCLK_Fall, BCLK_Rise : std_logic; +signal BCLK_Fall_int, BCLK_Rise_int : std_logic; +--signal BCLK_Fall_shot, BCLK_Rise_shot : std_logic; + +-- Synchronisation signals for Rising and Falling edge +signal Q1R, Q2R, Q3R : std_logic; +signal Q1F, Q2F, Q3F : std_logic; + +-- Internal synchronous BCLK signal +signal BCLK_int : std_logic; + +-- Internal synchronous LRCLK signal +signal LRCLK_int : std_logic; +signal LRCLK : std_logic; + +-- +signal Data_Out_int : std_logic_vector(31 downto 0); + +-- +signal Data_In_int : std_logic_vector(31 downto 0); + +-- +signal D_L_O_int : std_logic_vector(C_DATA_WIDTH-1 downto 0); + +-- +signal D_R_O_int : std_logic_vector(C_DATA_WIDTH-1 downto 0); + +--Internal synchronous OE signals +signal OE_R_int, OE_L_int : std_logic; + +--Internal synchronous WE signals +signal WE_R_int, WE_L_int : std_logic; + +-- Division rate for the BCLK and LRCLK +signal DIV_RATE : natural := 4; + +------------------------------------------------------------------------ +-- Module Implementation +------------------------------------------------------------------------ + +begin + +------------------------------------------------------------------------ +-- Sampling frequency and data width decoder (DIV_RATE, C_DATA_WIDTH) +------------------------------------------------------------------------ + + BIT_FS: process(CLK_I) + begin + if rising_edge(CLK_I) then + case (FS_I) is + when x"0" => DIV_RATE <= 24; + when x"1" => DIV_RATE <= 16; + when x"2" => DIV_RATE <= 12; + when x"3" => DIV_RATE <= 8; + when x"4" => DIV_RATE <= 6; + when x"5" => DIV_RATE <= 4; + when x"6" => DIV_RATE <= 2; + when others => DIV_RATE <= 4; + end case; + end if; + end process; + +------------------------------------------------------------------------ +-- Serial clock generator (BCLK_O, BCLK_Fall, BCLK_Rise) +------------------------------------------------------------------------ + SER_CLK: process(CLK_I) + begin + if rising_edge(CLK_I) then + if RST_I = '1' then + Cnt_Bclk <= 0; + BCLK_int <= '0'; + elsif Cnt_Bclk = ((DIV_RATE/2)-1) then + Cnt_Bclk <= 0; + BCLK_int <= not BCLK_int; + else + Cnt_Bclk <= Cnt_Bclk + 1; + end if; + end if; + end process SER_CLK; + + -- Rising and Falling edges when in Slave mode + BCLK_Fall_int <= '1' when Cnt_Bclk = ((DIV_RATE/2)-1) and BCLK_int = '1' and (EN_RX_I = '1' or EN_TX_I = '1') else '0'; + BCLK_Rise_int <= '1' when Cnt_Bclk = ((DIV_RATE/2)-1) and BCLK_int = '0' and (EN_RX_I = '1' or EN_TX_I = '1') else '0'; + + + + -- Falling edge selection with respect to Master Mode bit + BCLK_Fall <= BCLK_Fall_int; + + -- Risesing edge selection with respect to Master Mode bit + BCLK_Rise <= BCLK_Rise_int; + + -- Serial clock output + BCLK_O <= BCLK_int when EN_RX_I = '1' or EN_TX_I = '1' else '1'; + +------------------------------------------------------------------------ +-- Left/Right clock generator (LRCLK_O, LRCLK_Pls) +------------------------------------------------------------------------ + LRCLK_GEN: process(CLK_I) + begin + if rising_edge(CLK_I) then + if RST_I = '1' then + Cnt_Lrclk <= 0; + LRCLK <= '0'; -- Left channel active by default + elsif BCLK_Fall = '1' then + if Cnt_Lrclk = 31 then -- half of frame (64 bits) + Cnt_Lrclk <= 0; + LRCLK <= not LRCLK; + else + Cnt_Lrclk <= Cnt_Lrclk + 1; + end if; + end if; + end if; + end process LRCLK_GEN; + + -- L/R clock output + LRCLK_O <= LRCLK when EN_TX_I = '1' or EN_RX_I = '1' else '0'; + LRCLK_int <= LRCLK; + + +------------------------------------------------------------------------ +-- Load in paralled data, shift out serial data (SDATA_O) +------------------------------------------------------------------------ + SER_DATA_O: process(CLK_I) + begin + if rising_edge(CLK_I) then + if RST_I = '1' then + Data_Out_int(31) <= '0'; + Data_Out_int(30 downto 31-C_DATA_WIDTH) <= D_L_I; -- Left channel data by default + Data_Out_int(30-C_DATA_WIDTH downto 0) <= (others => '0'); + elsif Cnt_Lrclk = 0 and BCLK_Rise = '1' then -- load par. data + if LRCLK_int = '1' then + Data_Out_int(31) <= '0'; + Data_Out_int(30 downto 31-C_DATA_WIDTH) <= D_R_I; + Data_Out_int(30-C_DATA_WIDTH downto 0) <= (others => '0'); + else + Data_Out_int(31) <= '0'; + Data_Out_int(30 downto 31-C_DATA_WIDTH) <= D_L_I; + Data_Out_int(30-C_DATA_WIDTH downto 0) <= (others => '0'); + end if; + elsif BCLK_Fall = '1' then -- shift out ser. data + Data_Out_int <= Data_Out_int(30 downto 0) & '0'; + end if; + end if; + end process SER_DATA_O; + + -- Serial data output + SDATA_O <= Data_Out_int(31) when EN_TX_I = '1' else '0'; + +------------------------------------------------------------------------ +-- Shift in serial data, load out parallel data (SDATA_I) +------------------------------------------------------------------------ + SER_DATA_I: process(CLK_I) + begin + if rising_edge(CLK_I) then + if RST_I = '1' then + Data_In_int <= (others => '0'); + D_L_O_int <= (others => '0'); + D_R_O_int <= (others => '0'); + elsif Cnt_Lrclk = 0 and BCLK_Fall = '1' then -- load par. data + if LRCLK_int = '1' then + D_L_O_int <= Data_In_int(31 downto 32-C_DATA_WIDTH); + Data_In_int <= (others => '0'); + else + D_R_O_int <= Data_In_int(31 downto 32-C_DATA_WIDTH); + Data_In_int <= (others => '0'); + end if; + elsif BCLK_Rise = '1' then -- shift in ser. data + Data_In_int <= Data_In_int(30 downto 0) & SDATA_I; + end if; + end if; + end process SER_DATA_I; + + D_L_O <= D_L_O_int; + D_R_O <= D_R_O_int; + +-------------------------------------------------------------------------- +---- Output Enable signals (for FIFO) +-------------------------------------------------------------------------- +-- OE_GEN: process(CLK_I) +-- begin +-- if rising_edge(CLK_I) then +-- if Cnt_Lrclk = 31 and BCLK_Fall = '1' then +-- if LRCLK_int = '1' then -- Right channel +-- OE_R_int <= '1'; +-- else -- Left channel +-- OE_L_int <= '1'; +-- end if; +-- else +-- OE_R_int <= '0'; +-- OE_L_int <= '0'; +-- end if; +-- end if; +-- end process OE_GEN; + +-- OE_R_O <= OE_R_int when EN_TX_I = '1' else '0'; +-- OE_L_O <= OE_L_int when EN_TX_I = '1' else '0'; + +-------------------------------------------------------------------------- +---- Write Enable signals (for FIFO) +-------------------------------------------------------------------------- +-- WE_GEN: process(CLK_I) +-- begin +-- if rising_edge(CLK_I) then +-- if Cnt_Lrclk = 1 and BCLK_Rise = '1' then +-- if LRCLK_int = '1' then -- Right channel +-- WE_R_int <= '1'; +-- else -- Left channel +-- WE_L_int <= '1'; +-- end if; +-- else +-- WE_R_int <= '0'; +-- WE_L_int <= '0'; +-- end if; +-- end if; +-- end process WE_GEN; + +-- WE_R_O <= WE_R_int when EN_RX_I = '1' else '0'; +-- WE_L_O <= WE_L_int when EN_RX_I = '1' else '0'; + +end Behavioral; + diff --git a/tp_vivado/src/hdl/operativeUnit.vhd b/tp_vivado/src/hdl/operativeUnit.vhd new file mode 100644 index 0000000..68bcc70 --- /dev/null +++ b/tp_vivado/src/hdl/operativeUnit.vhd @@ -0,0 +1,374 @@ +------------------------------------------------------------------------------- +-- Title : operativeUnit +-- Project : +------------------------------------------------------------------------------- +-- File : operativeUnit.vhd +-- Author : Jean-Noel BAZIN <jnbazin@pc-disi-026.enst-bretagne.fr> +-- Company : +-- Created : 2018-04-11 +-- Last update: 2019-02-13 +-- Platform : +-- Standard : VHDL'93/02 +------------------------------------------------------------------------------- +-- Description: Operative unit of a sequential FIR filter. Including shift +-- register for samples, registers for coefficients, a MAC and a register to +-- store the result +------------------------------------------------------------------------------- +-- Copyright (c) 2018 +------------------------------------------------------------------------------- +-- Revisions : +-- Date Version Author Description +-- 2019-02-13 1.1 marzel Update to provide a 16-tap filter and improve +-- the user experience ;) +-- 2018-04-11 1.0 jnbazin Created +-- 2018-04-18 1.0 marzel Modification of SR_Y assignment to a round +-- instead of a trunc +------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity operativeUnit is + + port ( + I_clock : in std_logic; -- global clock + I_reset : in std_logic; -- asynchronous global reset + I_inputSample : in std_logic_vector(10 downto 0); -- 8 bit input sample + I_loadShift_x : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_loadShift_y : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_loadShift_z : in std_logic; -- Control signal to load the input sample in the sample shift register and shift the register + I_initAddress_x : in std_logic; -- Control signal to initialize register read address + I_initAddress_y : in std_logic; -- Control signal to initialize register read address + I_initAddress_z : in std_logic; -- Control signal to initialize register read address + I_incrAddress_x : in std_logic; -- Control signal to increment register read address + I_incrAddress_y : in std_logic; -- Control signal to increment register read address + I_incrAddress_z : in std_logic; -- Control signal to increment register read address + I_initSum : in std_logic; -- Control signal to initialize the MAC register + I_loadSum : in std_logic; -- Control signal to load the MAC register; + I_loadY : in std_logic; -- Control signal to load Y register + I_filtre : in std_logic_vector(1 downto 0); + I_filtreCoef : in std_logic_vector(1 downto 0); + O_processingDone_y : out std_logic := '0'; -- Indicate that processing is done + O_processingDone_z_a : out std_logic := '0'; -- Indicate that processing is done + O_processingDone_z_b : out std_logic := '0'; -- Indicate that processing is done + O_processingDone_r : out std_logic := '0'; -- Indicate that processing is done + O_Y : out std_logic_vector(10 downto 0) -- filtered sample + ); + +end entity operativeUnit; + +architecture arch_operativeUnit of operativeUnit is + type registerFile_x is array(0 to 94) of signed(10 downto 0); + type registerFile_y is array(0 to 2) of signed(10 downto 0); + type registerFile_z is array(0 to 10) of signed(10 downto 0); + + -- COEFFICIENTS + signal SR_coefRegister_h : registerFile_x; + signal SR_coefRegister_b : registerFile_y; + signal SR_coefRegister_a : registerFile_y; + signal SR_coefRegister_g : registerFile_z; + + signal SR_shiftRegister_x : registerFile_x; -- shift register file used to store and shift input samples + signal SR_shiftRegister_y : registerFile_y; + signal SR_shiftRegister_z : registerFile_z; + + signal SC_multOperand1 : signed(10 downto 0); + signal SC_multOperand2 : signed(10 downto 0); + signal SC_MultResult : signed(21 downto 0); -- Result of the multiplication Xi*Hi + signal SC_addResult : signed(28 downto 0); -- result of the accumulation addition + signal SR_sum : signed(28 downto 0); -- Accumulation register + signal SR_Y : signed(10 downto 0); -- filtered sample storage register + + -- ADDRESS GENERATORS + signal SR_readAddress_1 : integer range 0 to 94; -- register files read address + signal SR_readAddress_2 : integer range 0 to 2; + signal SR_readAddress_3 : integer range 0 to 2; + signal SR_readAddress_4 : integer range 0 to 10; + +begin + +-- BaseLine filter provided with octave (or Matlab ;)) command +-- fir1(128, 1/100, 'high')*2^10 + SR_coefRegister_h <= (to_signed(-1, 11), -- ROM register used file to store FIR coefficients + to_signed(-1, 11), + to_signed(-1, 11), + to_signed(-1, 11), + to_signed(-1, 11), + to_signed(-1, 11), + to_signed(-2, 11), + to_signed(-2, 11), + to_signed(-2, 11), + to_signed(-3, 11), + to_signed(-3, 11), + to_signed(-3, 11), + to_signed(-4, 11), + to_signed(-4, 11), + to_signed(-5, 11), + to_signed(-5, 11), + to_signed(-6, 11), + to_signed(-6, 11), + to_signed(-7, 11), + to_signed(-7, 11), + to_signed(-8, 11), + to_signed(-8, 11), + to_signed(-9, 11), + to_signed(-10, 11), + to_signed(-10, 11), + to_signed(-11, 11), + to_signed(-11, 11), + to_signed(-12, 11), + to_signed(-13, 11), + to_signed(-13, 11), + to_signed(-14, 11), + to_signed(-14, 11), + to_signed(-15, 11), + to_signed(-15, 11), + to_signed(-16, 11), + to_signed(-16, 11), + to_signed(-17, 11), + to_signed(-17, 11), + to_signed(-18, 11), + to_signed(-18, 11), + to_signed(-18, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(1004, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(-19, 11), + to_signed(-18, 11), + to_signed(-18, 11), + to_signed(-18, 11), + to_signed(-17, 11), + to_signed(-17, 11), + to_signed(-16, 11), + to_signed(-16, 11), + to_signed(-15, 11), + to_signed(-15, 11), + to_signed(-14, 11), + to_signed(-14, 11), + to_signed(-13, 11), + to_signed(-13, 11), + to_signed(-12, 11), + to_signed(-11, 11), + to_signed(-11, 11), + to_signed(-10, 11), + to_signed(-10, 11), + to_signed(-9, 11), + to_signed(-8, 11), + to_signed(-8, 11), + to_signed(-7, 11), + to_signed(-7, 11), + to_signed(-6, 11), + to_signed(-6, 11), + to_signed(-5, 11), + to_signed(-5, 11), + to_signed(-4, 11), + to_signed(-4, 11), + to_signed(-3, 11), + to_signed(-3, 11), + to_signed(-3, 11), + to_signed(-2, 11), + to_signed(-2, 11), + to_signed(-2, 11), + to_signed(-1, 11), + to_signed(-1, 11), + to_signed(-1, 11), + to_signed(-1, 11), + to_signed(-1, 11), + to_signed(-1, 11) + ); + +-- Pei Tseng Notch filter provided by octave +-- [b, a] = pei_tseng_notch(1/5, 1/25)*2^9 +SR_coefRegister_b <= ( + to_signed(480, 11), + to_signed(-777, 11), + to_signed(480, 11) + ); + +SR_coefRegister_a <= ( + to_signed(512, 11), + to_signed(-777, 11), + to_signed(449, 11) + ); + +-- Parks McClellan filter provided by octave +-- fLP = remez(10, [0 50 60 250]/250, [1 1 0 0])*2^10 +SR_coefRegister_g <= ( + to_signed(-119, 11), + to_signed(122, 11), + to_signed(149, 11), + to_signed(191, 11), + to_signed(226, 11), + to_signed(239, 11), + to_signed(226, 11), + to_signed(191, 11), + to_signed(149, 11), + to_signed(122, 11), + to_signed(-119, 11) + ); + + shift : process (I_clock, I_reset) is + begin -- process shift + if I_reset = '1' then -- asynchronous reset (active high) + SR_shiftRegister_x <= (others => (others => '0')); + SR_shiftRegister_y <= (others => (others => '0')); + SR_shiftRegister_z <= (others => (others => '0')); + elsif rising_edge(I_clock) then + if I_loadShift_x = '1' then + for i in 94 downto 1 loop + SR_shiftRegister_x(i) <= SR_shiftRegister_x(i-1); + end loop; + SR_shiftRegister_x(0) <= signed(I_inputSample); + end if; + + if I_loadShift_y = '1' then + for i in 2 downto 1 loop + SR_shiftRegister_y(i) <= SR_shiftRegister_y(i-1); + end loop; + SR_shiftRegister_y(0) <= SR_sum(21 downto 11); + end if; + + if I_loadShift_z = '1' then + for i in 10 downto 1 loop + SR_shiftRegister_z(i) <= SR_shiftRegister_z(i-1); + end loop; + SR_shiftRegister_z(0) <= SR_sum(21 downto 11); + end if; + end if; + end process shift; + + incr_address : process (I_clock, I_reset) is + begin + if I_reset = '1' then -- asynchronous reset (active high) + -- REINITIALISATION DES ADRESSES + SR_readAddress_1 <= 0; + SR_readAddress_2 <= 0; + SR_readAddress_3 <= 0; + SR_readAddress_4 <= 0; + elsif rising_edge(I_clock) then + -- PREMIER FILTRE Y + if I_initAddress_x = '1' then + SR_readAddress_1 <= 0; + elsif I_incrAddress_x = '1' then + if SR_readAddress_1 < 94 then + SR_readAddress_1 <= SR_readAddress_1 + 1; + else + SR_readAddress_1 <= 0; + end if; + end if; + + -- SECOND FILTRE (AVEC DEUX COEFFICIENTS) + if I_initAddress_y = '1' then + SR_readAddress_2 <= 0; + SR_readAddress_3 <= 0; + elsif I_incrAddress_y = '1' then + if SR_readAddress_2 < 2 then + SR_readAddress_2 <= SR_readAddress_2 + 1; + else + SR_readAddress_2 <= 0; + end if; + + if SR_readAddress_3 < 2 then + SR_readAddress_3 <= SR_readAddress_3 + 1; + else + SR_readAddress_3 <= 0; + end if; + end if; + + -- TROISIEME FILTRE + if I_initAddress_z = '1' then + SR_readAddress_4 <= 0; + elsif I_incrAddress_z = '1' then + if SR_readAddress_4 < 10 then + SR_readAddress_4 <= SR_readAddress_4 + 1; + else + SR_readAddress_4 <= 0; + end if; + end if; + end if; + end process incr_address; + + O_processingDone_y <= '1' when SR_readAddress_1 = 94 else '0'; -- CALCUL DE Y TERMINÉ + O_processingDone_z_a <= '1' when SR_readAddress_2 = 2 else '0'; -- CALCUL DE Z_A TERMINÉ + O_processingDone_z_b <= '1' when SR_readAddress_3 = 2 else '0'; -- CALCUL DE Z_B TERMINÉ + O_processingDone_r <= '1' when SR_readAddress_4 = 10 else '0'; -- CALCUL DE R TERMINÉ + +-- A VERIFIER +mult_choose: process (I_clock, I_reset) is +begin + if I_reset = '1' then + SC_multOperand1 <= (others => '0'); + SC_multOperand1(0) <= '1'; + + SC_multOperand2 <= (others => '0'); + SC_multOperand2(0) <= '1'; + else + case I_filtre is + when "00" => + SC_multOperand1 <= SR_shiftRegister_x(SR_readAddress_1); + when "01" => + SC_multOperand1 <= SR_shiftRegister_y(SR_readAddress_2); + when "10" => + SC_multOperand1 <= SR_shiftRegister_z(SR_readAddress_4); + when others => + SC_multOperand1 <= (others => '0'); + SC_multOperand1(0) <= '1'; + end case; + + case I_filtreCoef is + when "00" => + SC_multOperand2 <= SR_coefRegister_h(SR_readAddress_1); + when "01" => + SC_multOperand2 <= SR_coefRegister_b(SR_readAddress_2); + when "10" => + SC_multOperand2 <= SR_coefRegister_a(SR_readAddress_3); + when "11" => + SC_multOperand2 <= SR_coefRegister_g(SR_readAddress_4); + when others => + SC_multOperand2 <= (others => '0'); + SC_multOperand2(0) <= '1'; + end case; + end if; +end process mult_choose; + + SC_MultResult <= SC_multOperand1 * SC_multOperand2 ; -- 22 bits + SC_addResult <= resize(SC_MultResult, SC_addResult'length) + SR_sum; + + sum_acc : process (I_clock, I_reset) is + begin + if I_reset = '1' then -- asynchronous reset (active high) + SR_sum <= (others => '0'); + elsif rising_edge(I_clock) then + if I_initSum = '1' then + SR_sum <= (others => '0'); + elsif I_loadSum = '1' then + SR_sum <= SC_addResult; + end if; + end if; + end process sum_acc; + + store_result : process (I_clock, I_reset) is + begin + if I_reset = '1' then + SR_Y <= (others => '0'); + elsif rising_edge(I_clock) then + if I_loadY = '1' then + SR_Y <= SC_addResult(20 downto 10); + end if; + end if; + + end process store_result; + + O_Y <= std_logic_vector(SR_Y); + +end architecture arch_operativeUnit; diff --git a/tp_vivado/src/hdl/processingUnitIP.v b/tp_vivado/src/hdl/processingUnitIP.v new file mode 100644 index 0000000..8ca1850 --- /dev/null +++ b/tp_vivado/src/hdl/processingUnitIP.v @@ -0,0 +1,3270 @@ +// Copyright 1986-2018 Xilinx, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2018.3 (lin64) Build 2405991 Thu Dec 6 23:36:41 MST 2018 +// Date : Mon Feb 25 17:59:18 2019 +// Host : marzel-XPS-13-9350 running 64-bit Ubuntu 18.04.2 LTS +// Command : write_verilog +// /home/marzel/Documents/enseignements/IMTA_ELEC_A1S2_TAF/UV_ELEC_A1S2/TP_loto_ProcSon/ProcSon/NexysVideo/src/hdl/processingUnitIP.v +// Design : operativeUnit +// Purpose : This is a Verilog netlist of the current design or from a specific cell of the design. The output is an +// IEEE 1364-2001 compliant Verilog HDL file that contains netlist information obtained from the input +// design files. +// Device : xc7a200tsbg484-1 +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* STRUCTURAL_NETLIST = "yes" *) +module operativeUnit + (I_clock, + I_reset, + I_inputSample, + I_loadShift, + I_initAddress, + I_incrAddress, + I_initSum, + I_loadSum, + I_loadY, + O_processingDone, + O_Y); + input I_clock; + input I_reset; + input [7:0]I_inputSample; + input I_loadShift; + input I_initAddress; + input I_incrAddress; + input I_initSum; + input I_loadSum; + input I_loadY; + output O_processingDone; + output [7:0]O_Y; + + wire \<const0> ; + wire \<const1> ; + wire I_clock; + wire I_clock_IBUF; + wire I_clock_IBUF_BUFG; + wire I_incrAddress; + wire I_incrAddress_IBUF; + wire I_initAddress; + wire I_initAddress_IBUF; + wire I_initSum; + wire I_initSum_IBUF; + wire [7:0]I_inputSample; + wire [7:0]I_inputSample_IBUF; + wire I_loadShift; + wire I_loadShift_IBUF; + wire I_loadSum; + wire I_loadSum_IBUF; + wire I_loadY; + wire I_loadY_IBUF; + wire I_reset; + wire I_reset_IBUF; + wire [14:7]L; + wire [7:0]O_Y; + wire [7:0]O_Y_OBUF; + wire O_processingDone; + wire O_processingDone_OBUF; + wire [14:0]SC_MultResult; + wire [4:0]SC_multOperand2; + wire \SR_Y[4]_i_11_n_0 ; + wire \SR_Y[4]_i_12_n_0 ; + wire \SR_Y[4]_i_13_n_0 ; + wire \SR_Y[4]_i_14_n_0 ; + wire \SR_Y[4]_i_15_n_0 ; + wire \SR_Y[4]_i_16_n_0 ; + wire \SR_Y[4]_i_17_n_0 ; + wire \SR_Y[4]_i_18_n_0 ; + wire \SR_Y[4]_i_19_n_0 ; + wire \SR_Y[4]_i_20_n_0 ; + wire \SR_Y[4]_i_21_n_0 ; + wire \SR_Y[4]_i_22_n_0 ; + wire \SR_Y[4]_i_23_n_0 ; + wire \SR_Y[4]_i_24_n_0 ; + wire \SR_Y[4]_i_25_n_0 ; + wire \SR_Y[4]_i_26_n_0 ; + wire \SR_Y[4]_i_28_n_0 ; + wire \SR_Y[4]_i_29_n_0 ; + wire \SR_Y[4]_i_30_n_0 ; + wire \SR_Y[4]_i_32_n_0 ; + wire \SR_Y[4]_i_33_n_0 ; + wire \SR_Y[4]_i_34_n_0 ; + wire \SR_Y[4]_i_35_n_0 ; + wire \SR_Y[4]_i_36_n_0 ; + wire \SR_Y[4]_i_37_n_0 ; + wire \SR_Y[4]_i_38_n_0 ; + wire \SR_Y[4]_i_39_n_0 ; + wire \SR_Y[4]_i_40_n_0 ; + wire \SR_Y[4]_i_41_n_0 ; + wire \SR_Y[4]_i_42_n_0 ; + wire \SR_Y[4]_i_43_n_0 ; + wire \SR_Y[4]_i_44_n_0 ; + wire \SR_Y[4]_i_45_n_0 ; + wire \SR_Y[4]_i_46_n_0 ; + wire \SR_Y[4]_i_47_n_0 ; + wire \SR_Y[4]_i_48_n_0 ; + wire \SR_Y[4]_i_49_n_0 ; + wire \SR_Y[4]_i_50_n_0 ; + wire \SR_Y[4]_i_51_n_0 ; + wire \SR_Y[4]_i_5_n_0 ; + wire \SR_Y[4]_i_6_n_0 ; + wire \SR_Y[4]_i_7_n_0 ; + wire \SR_Y[4]_i_8_n_0 ; + wire \SR_Y[7]_i_11_n_0 ; + wire \SR_Y[7]_i_12_n_0 ; + wire \SR_Y[7]_i_13_n_0 ; + wire \SR_Y[7]_i_15_n_0 ; + wire \SR_Y[7]_i_16_n_0 ; + wire \SR_Y[7]_i_17_n_0 ; + wire \SR_Y[7]_i_18_n_0 ; + wire \SR_Y[7]_i_19_n_0 ; + wire \SR_Y[7]_i_20_n_0 ; + wire \SR_Y[7]_i_21_n_0 ; + wire \SR_Y[7]_i_22_n_0 ; + wire \SR_Y[7]_i_25_n_0 ; + wire \SR_Y[7]_i_26_n_0 ; + wire \SR_Y[7]_i_27_n_0 ; + wire \SR_Y[7]_i_28_n_0 ; + wire \SR_Y[7]_i_3_n_0 ; + wire \SR_Y[7]_i_42_n_0 ; + wire \SR_Y[7]_i_43_n_0 ; + wire \SR_Y[7]_i_44_n_0 ; + wire \SR_Y[7]_i_45_n_0 ; + wire \SR_Y[7]_i_46_n_0 ; + wire \SR_Y[7]_i_47_n_0 ; + wire \SR_Y[7]_i_48_n_0 ; + wire \SR_Y[7]_i_49_n_0 ; + wire \SR_Y[7]_i_50_n_0 ; + wire \SR_Y[7]_i_51_n_0 ; + wire \SR_Y[7]_i_52_n_0 ; + wire \SR_Y[7]_i_53_n_0 ; + wire \SR_Y[7]_i_54_n_0 ; + wire \SR_Y[7]_i_55_n_0 ; + wire \SR_Y[7]_i_56_n_0 ; + wire \SR_Y[7]_i_57_n_0 ; + wire \SR_Y[7]_i_5_n_0 ; + wire \SR_Y[7]_i_6_n_0 ; + wire \SR_Y[7]_i_7_n_0 ; + wire \SR_Y[7]_i_9_n_0 ; + wire \SR_Y_reg[4]_i_10_n_0 ; + wire \SR_Y_reg[4]_i_10_n_1 ; + wire \SR_Y_reg[4]_i_10_n_2 ; + wire \SR_Y_reg[4]_i_10_n_3 ; + wire \SR_Y_reg[4]_i_27_n_0 ; + wire \SR_Y_reg[4]_i_27_n_1 ; + wire \SR_Y_reg[4]_i_27_n_2 ; + wire \SR_Y_reg[4]_i_27_n_3 ; + wire \SR_Y_reg[4]_i_27_n_4 ; + wire \SR_Y_reg[4]_i_27_n_5 ; + wire \SR_Y_reg[4]_i_27_n_6 ; + wire \SR_Y_reg[4]_i_27_n_7 ; + wire \SR_Y_reg[4]_i_2_n_0 ; + wire \SR_Y_reg[4]_i_2_n_1 ; + wire \SR_Y_reg[4]_i_2_n_2 ; + wire \SR_Y_reg[4]_i_2_n_3 ; + wire \SR_Y_reg[4]_i_3_n_0 ; + wire \SR_Y_reg[4]_i_3_n_1 ; + wire \SR_Y_reg[4]_i_3_n_2 ; + wire \SR_Y_reg[4]_i_3_n_3 ; + wire \SR_Y_reg[4]_i_3_n_5 ; + wire \SR_Y_reg[4]_i_4_n_0 ; + wire \SR_Y_reg[4]_i_4_n_1 ; + wire \SR_Y_reg[4]_i_4_n_2 ; + wire \SR_Y_reg[4]_i_4_n_3 ; + wire \SR_Y_reg[4]_i_9_n_0 ; + wire \SR_Y_reg[4]_i_9_n_1 ; + wire \SR_Y_reg[4]_i_9_n_2 ; + wire \SR_Y_reg[4]_i_9_n_3 ; + wire \SR_Y_reg[7]_i_10_n_0 ; + wire \SR_Y_reg[7]_i_10_n_1 ; + wire \SR_Y_reg[7]_i_10_n_2 ; + wire \SR_Y_reg[7]_i_10_n_3 ; + wire \SR_Y_reg[7]_i_10_n_4 ; + wire \SR_Y_reg[7]_i_10_n_5 ; + wire \SR_Y_reg[7]_i_10_n_6 ; + wire \SR_Y_reg[7]_i_10_n_7 ; + wire \SR_Y_reg[7]_i_14_n_1 ; + wire \SR_Y_reg[7]_i_14_n_3 ; + wire \SR_Y_reg[7]_i_14_n_6 ; + wire \SR_Y_reg[7]_i_14_n_7 ; + wire \SR_Y_reg[7]_i_2_n_2 ; + wire \SR_Y_reg[7]_i_2_n_3 ; + wire \SR_Y_reg[7]_i_33_n_0 ; + wire \SR_Y_reg[7]_i_34_n_0 ; + wire \SR_Y_reg[7]_i_35_n_0 ; + wire \SR_Y_reg[7]_i_36_n_0 ; + wire \SR_Y_reg[7]_i_38_n_0 ; + wire \SR_Y_reg[7]_i_39_n_0 ; + wire \SR_Y_reg[7]_i_40_n_0 ; + wire \SR_Y_reg[7]_i_41_n_0 ; + wire \SR_Y_reg[7]_i_4_n_1 ; + wire \SR_Y_reg[7]_i_4_n_2 ; + wire \SR_Y_reg[7]_i_4_n_3 ; + wire \SR_Y_reg[7]_i_8_n_2 ; + wire \SR_Y_reg[7]_i_8_n_3 ; + wire \SR_Y_reg[7]_i_8_n_5 ; + wire \SR_Y_reg[7]_i_8_n_6 ; + wire \SR_Y_reg[7]_i_8_n_7 ; + wire \SR_readAddress[0]_i_1_n_0 ; + wire \SR_readAddress[1]_i_1_n_0 ; + wire \SR_readAddress[2]_i_1_n_0 ; + wire \SR_readAddress[3]_i_1_n_0 ; + wire \SR_readAddress[3]_i_2_n_0 ; + wire [3:0]SR_readAddress_reg__0; + wire [7:0]\SR_shiftRegister[0] ; + wire [7:0]\SR_shiftRegister_reg[0]__0 ; + wire [7:0]\SR_shiftRegister_reg[10]__0 ; + wire [7:0]\SR_shiftRegister_reg[11]__0 ; + wire [7:0]\SR_shiftRegister_reg[12]__0 ; + wire [7:0]\SR_shiftRegister_reg[13]__0 ; + wire [7:0]\SR_shiftRegister_reg[14]__0 ; + wire [7:0]\SR_shiftRegister_reg[15]__0 ; + wire [7:0]\SR_shiftRegister_reg[1]__0 ; + wire [7:0]\SR_shiftRegister_reg[2]__0 ; + wire [7:0]\SR_shiftRegister_reg[3]__0 ; + wire [7:0]\SR_shiftRegister_reg[4]__0 ; + wire [7:0]\SR_shiftRegister_reg[5]__0 ; + wire [7:0]\SR_shiftRegister_reg[6]__0 ; + wire [7:0]\SR_shiftRegister_reg[7]__0 ; + wire [7:0]\SR_shiftRegister_reg[8]__0 ; + wire [7:0]\SR_shiftRegister_reg[9]__0 ; + wire \SR_sum[0]_i_10_n_0 ; + wire \SR_sum[0]_i_13_n_0 ; + wire \SR_sum[0]_i_14_n_0 ; + wire \SR_sum[0]_i_15_n_0 ; + wire \SR_sum[0]_i_16_n_0 ; + wire \SR_sum[0]_i_17_n_0 ; + wire \SR_sum[0]_i_18_n_0 ; + wire \SR_sum[0]_i_19_n_0 ; + wire \SR_sum[0]_i_1_n_0 ; + wire \SR_sum[0]_i_20_n_0 ; + wire \SR_sum[0]_i_21_n_0 ; + wire \SR_sum[0]_i_22_n_0 ; + wire \SR_sum[0]_i_23_n_0 ; + wire \SR_sum[0]_i_24_n_0 ; + wire \SR_sum[0]_i_25_n_0 ; + wire \SR_sum[0]_i_26_n_0 ; + wire \SR_sum[0]_i_27_n_0 ; + wire \SR_sum[0]_i_31_n_0 ; + wire \SR_sum[0]_i_32_n_0 ; + wire \SR_sum[0]_i_33_n_0 ; + wire \SR_sum[0]_i_3_n_0 ; + wire \SR_sum[0]_i_45_n_0 ; + wire \SR_sum[0]_i_46_n_0 ; + wire \SR_sum[0]_i_47_n_0 ; + wire \SR_sum[0]_i_48_n_0 ; + wire \SR_sum[0]_i_49_n_0 ; + wire \SR_sum[0]_i_4_n_0 ; + wire \SR_sum[0]_i_50_n_0 ; + wire \SR_sum[0]_i_51_n_0 ; + wire \SR_sum[0]_i_52_n_0 ; + wire \SR_sum[0]_i_53_n_0 ; + wire \SR_sum[0]_i_54_n_0 ; + wire \SR_sum[0]_i_55_n_0 ; + wire \SR_sum[0]_i_56_n_0 ; + wire \SR_sum[0]_i_57_n_0 ; + wire \SR_sum[0]_i_58_n_0 ; + wire \SR_sum[0]_i_59_n_0 ; + wire \SR_sum[0]_i_5_n_0 ; + wire \SR_sum[0]_i_60_n_0 ; + wire \SR_sum[0]_i_6_n_0 ; + wire \SR_sum[0]_i_7_n_0 ; + wire \SR_sum[0]_i_8_n_0 ; + wire \SR_sum[0]_i_9_n_0 ; + wire \SR_sum[12]_i_2_n_0 ; + wire \SR_sum[12]_i_3_n_0 ; + wire \SR_sum[12]_i_4_n_0 ; + wire \SR_sum[12]_i_5_n_0 ; + wire \SR_sum[12]_i_6_n_0 ; + wire \SR_sum[4]_i_2_n_0 ; + wire \SR_sum[4]_i_3_n_0 ; + wire \SR_sum[4]_i_4_n_0 ; + wire \SR_sum[4]_i_5_n_0 ; + wire \SR_sum[4]_i_6_n_0 ; + wire \SR_sum[4]_i_7_n_0 ; + wire \SR_sum[4]_i_8_n_0 ; + wire \SR_sum[4]_i_9_n_0 ; + wire \SR_sum[8]_i_2_n_0 ; + wire \SR_sum[8]_i_3_n_0 ; + wire \SR_sum[8]_i_4_n_0 ; + wire \SR_sum[8]_i_5_n_0 ; + wire \SR_sum[8]_i_6_n_0 ; + wire \SR_sum[8]_i_7_n_0 ; + wire \SR_sum[8]_i_8_n_0 ; + wire \SR_sum[8]_i_9_n_0 ; + wire [14:0]SR_sum_reg; + wire \SR_sum_reg[0]_i_11_n_0 ; + wire \SR_sum_reg[0]_i_11_n_1 ; + wire \SR_sum_reg[0]_i_11_n_2 ; + wire \SR_sum_reg[0]_i_11_n_3 ; + wire \SR_sum_reg[0]_i_11_n_4 ; + wire \SR_sum_reg[0]_i_11_n_5 ; + wire \SR_sum_reg[0]_i_11_n_6 ; + wire \SR_sum_reg[0]_i_11_n_7 ; + wire \SR_sum_reg[0]_i_12_n_0 ; + wire \SR_sum_reg[0]_i_12_n_1 ; + wire \SR_sum_reg[0]_i_12_n_2 ; + wire \SR_sum_reg[0]_i_12_n_3 ; + wire \SR_sum_reg[0]_i_12_n_4 ; + wire \SR_sum_reg[0]_i_2_n_0 ; + wire \SR_sum_reg[0]_i_2_n_1 ; + wire \SR_sum_reg[0]_i_2_n_2 ; + wire \SR_sum_reg[0]_i_2_n_3 ; + wire \SR_sum_reg[0]_i_2_n_4 ; + wire \SR_sum_reg[0]_i_2_n_5 ; + wire \SR_sum_reg[0]_i_2_n_6 ; + wire \SR_sum_reg[0]_i_2_n_7 ; + wire \SR_sum_reg[0]_i_37_n_0 ; + wire \SR_sum_reg[0]_i_38_n_0 ; + wire \SR_sum_reg[0]_i_39_n_0 ; + wire \SR_sum_reg[0]_i_40_n_0 ; + wire \SR_sum_reg[0]_i_41_n_0 ; + wire \SR_sum_reg[0]_i_42_n_0 ; + wire \SR_sum_reg[0]_i_43_n_0 ; + wire \SR_sum_reg[0]_i_44_n_0 ; + wire \SR_sum_reg[12]_i_1_n_2 ; + wire \SR_sum_reg[12]_i_1_n_3 ; + wire \SR_sum_reg[12]_i_1_n_5 ; + wire \SR_sum_reg[12]_i_1_n_6 ; + wire \SR_sum_reg[12]_i_1_n_7 ; + wire \SR_sum_reg[4]_i_1_n_0 ; + wire \SR_sum_reg[4]_i_1_n_1 ; + wire \SR_sum_reg[4]_i_1_n_2 ; + wire \SR_sum_reg[4]_i_1_n_3 ; + wire \SR_sum_reg[4]_i_1_n_4 ; + wire \SR_sum_reg[4]_i_1_n_5 ; + wire \SR_sum_reg[4]_i_1_n_6 ; + wire \SR_sum_reg[4]_i_1_n_7 ; + wire \SR_sum_reg[8]_i_1_n_0 ; + wire \SR_sum_reg[8]_i_1_n_1 ; + wire \SR_sum_reg[8]_i_1_n_2 ; + wire \SR_sum_reg[8]_i_1_n_3 ; + wire \SR_sum_reg[8]_i_1_n_4 ; + wire \SR_sum_reg[8]_i_1_n_5 ; + wire \SR_sum_reg[8]_i_1_n_6 ; + wire \SR_sum_reg[8]_i_1_n_7 ; + wire [7:0]p_0_in; + wire [3:0]\NLW_SR_Y_reg[4]_i_10_O_UNCONNECTED ; + wire [3:0]\NLW_SR_Y_reg[4]_i_3_O_UNCONNECTED ; + wire [3:0]\NLW_SR_Y_reg[7]_i_14_CO_UNCONNECTED ; + + GND GND + (.G(\<const0> )); + BUFG I_clock_IBUF_BUFG_inst + (.I(I_clock_IBUF), + .O(I_clock_IBUF_BUFG)); + IBUF I_clock_IBUF_inst + (.I(I_clock), + .O(I_clock_IBUF)); + IBUF I_incrAddress_IBUF_inst + (.I(I_incrAddress), + .O(I_incrAddress_IBUF)); + IBUF I_initAddress_IBUF_inst + (.I(I_initAddress), + .O(I_initAddress_IBUF)); + IBUF I_initSum_IBUF_inst + (.I(I_initSum), + .O(I_initSum_IBUF)); + IBUF \I_inputSample_IBUF[0]_inst + (.I(I_inputSample[0]), + .O(I_inputSample_IBUF[0])); + IBUF \I_inputSample_IBUF[1]_inst + (.I(I_inputSample[1]), + .O(I_inputSample_IBUF[1])); + IBUF \I_inputSample_IBUF[2]_inst + (.I(I_inputSample[2]), + .O(I_inputSample_IBUF[2])); + IBUF \I_inputSample_IBUF[3]_inst + (.I(I_inputSample[3]), + .O(I_inputSample_IBUF[3])); + IBUF \I_inputSample_IBUF[4]_inst + (.I(I_inputSample[4]), + .O(I_inputSample_IBUF[4])); + IBUF \I_inputSample_IBUF[5]_inst + (.I(I_inputSample[5]), + .O(I_inputSample_IBUF[5])); + IBUF \I_inputSample_IBUF[6]_inst + (.I(I_inputSample[6]), + .O(I_inputSample_IBUF[6])); + IBUF \I_inputSample_IBUF[7]_inst + (.I(I_inputSample[7]), + .O(I_inputSample_IBUF[7])); + IBUF I_loadShift_IBUF_inst + (.I(I_loadShift), + .O(I_loadShift_IBUF)); + IBUF I_loadSum_IBUF_inst + (.I(I_loadSum), + .O(I_loadSum_IBUF)); + IBUF I_loadY_IBUF_inst + (.I(I_loadY), + .O(I_loadY_IBUF)); + IBUF I_reset_IBUF_inst + (.I(I_reset), + .O(I_reset_IBUF)); + OBUF \O_Y_OBUF[0]_inst + (.I(O_Y_OBUF[0]), + .O(O_Y[0])); + OBUF \O_Y_OBUF[1]_inst + (.I(O_Y_OBUF[1]), + .O(O_Y[1])); + OBUF \O_Y_OBUF[2]_inst + (.I(O_Y_OBUF[2]), + .O(O_Y[2])); + OBUF \O_Y_OBUF[3]_inst + (.I(O_Y_OBUF[3]), + .O(O_Y[3])); + OBUF \O_Y_OBUF[4]_inst + (.I(O_Y_OBUF[4]), + .O(O_Y[4])); + OBUF \O_Y_OBUF[5]_inst + (.I(O_Y_OBUF[5]), + .O(O_Y[5])); + OBUF \O_Y_OBUF[6]_inst + (.I(O_Y_OBUF[6]), + .O(O_Y[6])); + OBUF \O_Y_OBUF[7]_inst + (.I(O_Y_OBUF[7]), + .O(O_Y[7])); + OBUF O_processingDone_OBUF_inst + (.I(O_processingDone_OBUF), + .O(O_processingDone)); + LUT3 #( + .INIT(8'h80)) + O_processingDone_OBUF_inst_i_1 + (.I0(SR_readAddress_reg__0[1]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[2]), + .O(O_processingDone_OBUF)); + (* SOFT_HLUTNM = "soft_lutpair14" *) + LUT2 #( + .INIT(4'h6)) + \SR_Y[0]_i_1 + (.I0(\SR_Y_reg[4]_i_3_n_5 ), + .I1(L[7]), + .O(p_0_in[0])); + (* SOFT_HLUTNM = "soft_lutpair14" *) + LUT3 #( + .INIT(8'h78)) + \SR_Y[1]_i_1 + (.I0(\SR_Y_reg[4]_i_3_n_5 ), + .I1(L[7]), + .I2(L[8]), + .O(p_0_in[1])); + (* SOFT_HLUTNM = "soft_lutpair11" *) + LUT4 #( + .INIT(16'h7F80)) + \SR_Y[2]_i_1 + (.I0(L[7]), + .I1(\SR_Y_reg[4]_i_3_n_5 ), + .I2(L[8]), + .I3(L[9]), + .O(p_0_in[2])); + (* SOFT_HLUTNM = "soft_lutpair11" *) + LUT5 #( + .INIT(32'h7FFF8000)) + \SR_Y[3]_i_1 + (.I0(L[8]), + .I1(\SR_Y_reg[4]_i_3_n_5 ), + .I2(L[7]), + .I3(L[9]), + .I4(L[10]), + .O(p_0_in[3])); + LUT6 #( + .INIT(64'h7FFFFFFF80000000)) + \SR_Y[4]_i_1 + (.I0(L[9]), + .I1(L[7]), + .I2(\SR_Y_reg[4]_i_3_n_5 ), + .I3(L[8]), + .I4(L[10]), + .I5(L[11]), + .O(p_0_in[4])); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_11 + (.I0(SC_MultResult[7]), + .I1(SR_sum_reg[7]), + .O(\SR_Y[4]_i_11_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_12 + (.I0(SC_MultResult[6]), + .I1(SR_sum_reg[6]), + .O(\SR_Y[4]_i_12_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_13 + (.I0(SC_MultResult[5]), + .I1(SR_sum_reg[5]), + .O(\SR_Y[4]_i_13_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_14 + (.I0(SC_MultResult[4]), + .I1(SR_sum_reg[4]), + .O(\SR_Y[4]_i_14_n_0 )); + LUT2 #( + .INIT(4'h8)) + \SR_Y[4]_i_15 + (.I0(\SR_Y_reg[7]_i_10_n_5 ), + .I1(\SR_Y_reg[7]_i_14_n_6 ), + .O(\SR_Y[4]_i_15_n_0 )); + LUT2 #( + .INIT(4'h8)) + \SR_Y[4]_i_16 + (.I0(\SR_Y_reg[7]_i_10_n_6 ), + .I1(\SR_Y_reg[7]_i_14_n_7 ), + .O(\SR_Y[4]_i_16_n_0 )); + LUT2 #( + .INIT(4'hE)) + \SR_Y[4]_i_17 + (.I0(\SR_Y_reg[4]_i_27_n_4 ), + .I1(\SR_Y_reg[7]_i_10_n_7 ), + .O(\SR_Y[4]_i_17_n_0 )); + LUT2 #( + .INIT(4'h9)) + \SR_Y[4]_i_18 + (.I0(\SR_Y_reg[7]_i_10_n_7 ), + .I1(\SR_Y_reg[4]_i_27_n_4 ), + .O(\SR_Y[4]_i_18_n_0 )); + LUT4 #( + .INIT(16'h8778)) + \SR_Y[4]_i_19 + (.I0(\SR_Y_reg[7]_i_14_n_6 ), + .I1(\SR_Y_reg[7]_i_10_n_5 ), + .I2(\SR_Y_reg[7]_i_10_n_4 ), + .I3(\SR_Y_reg[7]_i_14_n_1 ), + .O(\SR_Y[4]_i_19_n_0 )); + LUT4 #( + .INIT(16'h8778)) + \SR_Y[4]_i_20 + (.I0(\SR_Y_reg[7]_i_14_n_7 ), + .I1(\SR_Y_reg[7]_i_10_n_6 ), + .I2(\SR_Y_reg[7]_i_10_n_5 ), + .I3(\SR_Y_reg[7]_i_14_n_6 ), + .O(\SR_Y[4]_i_20_n_0 )); + LUT4 #( + .INIT(16'hE11E)) + \SR_Y[4]_i_21 + (.I0(\SR_Y_reg[7]_i_10_n_7 ), + .I1(\SR_Y_reg[4]_i_27_n_4 ), + .I2(\SR_Y_reg[7]_i_10_n_6 ), + .I3(\SR_Y_reg[7]_i_14_n_7 ), + .O(\SR_Y[4]_i_21_n_0 )); + LUT4 #( + .INIT(16'h6999)) + \SR_Y[4]_i_22 + (.I0(\SR_Y_reg[7]_i_10_n_7 ), + .I1(\SR_Y_reg[4]_i_27_n_4 ), + .I2(\SR_Y_reg[4]_i_27_n_5 ), + .I3(\SR_sum_reg[0]_i_11_n_4 ), + .O(\SR_Y[4]_i_22_n_0 )); + LUT3 #( + .INIT(8'h96)) + \SR_Y[4]_i_23 + (.I0(\SR_sum_reg[0]_i_11_n_7 ), + .I1(\SR_sum_reg[0]_i_12_n_4 ), + .I2(SR_sum_reg[3]), + .O(\SR_Y[4]_i_23_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_24 + (.I0(SC_MultResult[2]), + .I1(SR_sum_reg[2]), + .O(\SR_Y[4]_i_24_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_25 + (.I0(SC_MultResult[1]), + .I1(SR_sum_reg[1]), + .O(\SR_Y[4]_i_25_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_26 + (.I0(SC_MultResult[0]), + .I1(SR_sum_reg[0]), + .O(\SR_Y[4]_i_26_n_0 )); + LUT3 #( + .INIT(8'h96)) + \SR_Y[4]_i_28 + (.I0(\SR_sum_reg[0]_i_11_n_5 ), + .I1(\SR_sum_reg[0]_i_11_n_4 ), + .I2(\SR_Y_reg[4]_i_27_n_5 ), + .O(\SR_Y[4]_i_28_n_0 )); + LUT2 #( + .INIT(4'h9)) + \SR_Y[4]_i_29 + (.I0(\SR_sum_reg[0]_i_11_n_5 ), + .I1(\SR_Y_reg[4]_i_27_n_6 ), + .O(\SR_Y[4]_i_29_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_30 + (.I0(\SR_Y_reg[4]_i_27_n_7 ), + .I1(\SR_sum_reg[0]_i_11_n_6 ), + .O(\SR_Y[4]_i_30_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_31 + (.I0(\SR_sum_reg[0]_i_12_n_4 ), + .I1(\SR_sum_reg[0]_i_11_n_7 ), + .O(SC_MultResult[3])); + LUT3 #( + .INIT(8'h17)) + \SR_Y[4]_i_32 + (.I0(\SR_Y[4]_i_40_n_0 ), + .I1(\SR_Y[4]_i_41_n_0 ), + .I2(\SR_Y[4]_i_42_n_0 ), + .O(\SR_Y[4]_i_32_n_0 )); + LUT3 #( + .INIT(8'h17)) + \SR_Y[4]_i_33 + (.I0(\SR_Y[4]_i_43_n_0 ), + .I1(\SR_Y[4]_i_44_n_0 ), + .I2(\SR_Y[4]_i_45_n_0 ), + .O(\SR_Y[4]_i_33_n_0 )); + LUT3 #( + .INIT(8'h17)) + \SR_Y[4]_i_34 + (.I0(\SR_Y[4]_i_46_n_0 ), + .I1(\SR_Y[4]_i_47_n_0 ), + .I2(\SR_Y[4]_i_48_n_0 ), + .O(\SR_Y[4]_i_34_n_0 )); + LUT3 #( + .INIT(8'h17)) + \SR_Y[4]_i_35 + (.I0(\SR_sum[0]_i_32_n_0 ), + .I1(\SR_sum[0]_i_31_n_0 ), + .I2(\SR_sum[0]_i_33_n_0 ), + .O(\SR_Y[4]_i_35_n_0 )); + LUT4 #( + .INIT(16'h6996)) + \SR_Y[4]_i_36 + (.I0(\SR_Y[4]_i_32_n_0 ), + .I1(\SR_Y[4]_i_49_n_0 ), + .I2(\SR_Y[4]_i_50_n_0 ), + .I3(\SR_Y[4]_i_51_n_0 ), + .O(\SR_Y[4]_i_36_n_0 )); + LUT6 #( + .INIT(64'h17E8E817E81717E8)) + \SR_Y[4]_i_37 + (.I0(\SR_Y[4]_i_45_n_0 ), + .I1(\SR_Y[4]_i_44_n_0 ), + .I2(\SR_Y[4]_i_43_n_0 ), + .I3(\SR_Y[4]_i_41_n_0 ), + .I4(\SR_Y[4]_i_40_n_0 ), + .I5(\SR_Y[4]_i_42_n_0 ), + .O(\SR_Y[4]_i_37_n_0 )); + LUT6 #( + .INIT(64'h17E8E817E81717E8)) + \SR_Y[4]_i_38 + (.I0(\SR_Y[4]_i_48_n_0 ), + .I1(\SR_Y[4]_i_47_n_0 ), + .I2(\SR_Y[4]_i_46_n_0 ), + .I3(\SR_Y[4]_i_44_n_0 ), + .I4(\SR_Y[4]_i_43_n_0 ), + .I5(\SR_Y[4]_i_45_n_0 ), + .O(\SR_Y[4]_i_38_n_0 )); + LUT6 #( + .INIT(64'h17E8E817E81717E8)) + \SR_Y[4]_i_39 + (.I0(\SR_sum[0]_i_33_n_0 ), + .I1(\SR_sum[0]_i_31_n_0 ), + .I2(\SR_sum[0]_i_32_n_0 ), + .I3(\SR_Y[4]_i_47_n_0 ), + .I4(\SR_Y[4]_i_46_n_0 ), + .I5(\SR_Y[4]_i_48_n_0 ), + .O(\SR_Y[4]_i_39_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair7" *) + LUT5 #( + .INIT(32'hF5FD7F5F)) + \SR_Y[4]_i_40 + (.I0(\SR_shiftRegister[0] [4]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_Y[4]_i_40_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT5 #( + .INIT(32'h557D7D55)) + \SR_Y[4]_i_41 + (.I0(\SR_shiftRegister[0] [5]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[2]), + .I4(SR_readAddress_reg__0[3]), + .O(\SR_Y[4]_i_41_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT5 #( + .INIT(32'hFF7D7DFF)) + \SR_Y[4]_i_42 + (.I0(\SR_shiftRegister[0] [6]), + .I1(SR_readAddress_reg__0[1]), + .I2(SR_readAddress_reg__0[3]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_Y[4]_i_42_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair9" *) + LUT5 #( + .INIT(32'hF5FD7F5F)) + \SR_Y[4]_i_43 + (.I0(\SR_shiftRegister[0] [3]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_Y[4]_i_43_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT5 #( + .INIT(32'h557D7D55)) + \SR_Y[4]_i_44 + (.I0(\SR_shiftRegister[0] [4]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[2]), + .I4(SR_readAddress_reg__0[3]), + .O(\SR_Y[4]_i_44_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair1" *) + LUT5 #( + .INIT(32'hFF7D7DFF)) + \SR_Y[4]_i_45 + (.I0(\SR_shiftRegister[0] [5]), + .I1(SR_readAddress_reg__0[1]), + .I2(SR_readAddress_reg__0[3]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_Y[4]_i_45_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT5 #( + .INIT(32'hF5FD7F5F)) + \SR_Y[4]_i_46 + (.I0(\SR_shiftRegister[0] [2]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_Y[4]_i_46_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT5 #( + .INIT(32'h557D7D55)) + \SR_Y[4]_i_47 + (.I0(\SR_shiftRegister[0] [3]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[2]), + .I4(SR_readAddress_reg__0[3]), + .O(\SR_Y[4]_i_47_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair4" *) + LUT5 #( + .INIT(32'hFF7D7DFF)) + \SR_Y[4]_i_48 + (.I0(\SR_shiftRegister[0] [4]), + .I1(SR_readAddress_reg__0[1]), + .I2(SR_readAddress_reg__0[3]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_Y[4]_i_48_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair0" *) + LUT5 #( + .INIT(32'h557D7D55)) + \SR_Y[4]_i_49 + (.I0(\SR_shiftRegister[0] [6]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[2]), + .I4(SR_readAddress_reg__0[3]), + .O(\SR_Y[4]_i_49_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_5 + (.I0(SC_MultResult[11]), + .I1(SR_sum_reg[11]), + .O(\SR_Y[4]_i_5_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair8" *) + LUT5 #( + .INIT(32'hF5FD7F5F)) + \SR_Y[4]_i_50 + (.I0(\SR_shiftRegister[0] [5]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_Y[4]_i_50_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT5 #( + .INIT(32'hFF7D7DFF)) + \SR_Y[4]_i_51 + (.I0(\SR_shiftRegister[0] [7]), + .I1(SR_readAddress_reg__0[1]), + .I2(SR_readAddress_reg__0[3]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_Y[4]_i_51_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_6 + (.I0(SC_MultResult[10]), + .I1(SR_sum_reg[10]), + .O(\SR_Y[4]_i_6_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_7 + (.I0(SC_MultResult[9]), + .I1(SR_sum_reg[9]), + .O(\SR_Y[4]_i_7_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[4]_i_8 + (.I0(SC_MultResult[8]), + .I1(SR_sum_reg[8]), + .O(\SR_Y[4]_i_8_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[5]_i_1 + (.I0(\SR_Y[7]_i_3_n_0 ), + .I1(L[12]), + .O(p_0_in[5])); + (* SOFT_HLUTNM = "soft_lutpair12" *) + LUT3 #( + .INIT(8'h78)) + \SR_Y[6]_i_1 + (.I0(\SR_Y[7]_i_3_n_0 ), + .I1(L[12]), + .I2(L[13]), + .O(p_0_in[6])); + (* SOFT_HLUTNM = "soft_lutpair12" *) + LUT4 #( + .INIT(16'h7F80)) + \SR_Y[7]_i_1 + (.I0(L[12]), + .I1(\SR_Y[7]_i_3_n_0 ), + .I2(L[13]), + .I3(L[14]), + .O(p_0_in[7])); + LUT6 #( + .INIT(64'hFFF55FFFDDF55F77)) + \SR_Y[7]_i_11 + (.I0(\SR_shiftRegister[0] [7]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[2]), + .I5(\SR_shiftRegister[0] [6]), + .O(\SR_Y[7]_i_11_n_0 )); + LUT5 #( + .INIT(32'hFDDD777F)) + \SR_Y[7]_i_12 + (.I0(\SR_shiftRegister[0] [7]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[3]), + .O(\SR_Y[7]_i_12_n_0 )); + LUT6 #( + .INIT(64'hDDC00377FFFFFFFF)) + \SR_Y[7]_i_13 + (.I0(\SR_shiftRegister[0] [6]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[2]), + .I5(\SR_shiftRegister[0] [7]), + .O(\SR_Y[7]_i_13_n_0 )); + LUT6 #( + .INIT(64'h333AACCC220AA088)) + \SR_Y[7]_i_15 + (.I0(\SR_shiftRegister[0] [6]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[2]), + .I5(\SR_shiftRegister[0] [5]), + .O(\SR_Y[7]_i_15_n_0 )); + LUT6 #( + .INIT(64'h333AACCC220AA088)) + \SR_Y[7]_i_16 + (.I0(\SR_shiftRegister[0] [5]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[2]), + .I5(\SR_shiftRegister[0] [4]), + .O(\SR_Y[7]_i_16_n_0 )); + LUT6 #( + .INIT(64'h333AACCC220AA088)) + \SR_Y[7]_i_17 + (.I0(\SR_shiftRegister[0] [4]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[2]), + .I5(\SR_shiftRegister[0] [3]), + .O(\SR_Y[7]_i_17_n_0 )); + LUT6 #( + .INIT(64'h333AACCC220AA088)) + \SR_Y[7]_i_18 + (.I0(\SR_shiftRegister[0] [3]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[2]), + .I5(\SR_shiftRegister[0] [2]), + .O(\SR_Y[7]_i_18_n_0 )); + LUT5 #( + .INIT(32'hD32C6060)) + \SR_Y[7]_i_19 + (.I0(\SR_shiftRegister[0] [5]), + .I1(\SR_shiftRegister[0] [6]), + .I2(SC_multOperand2[4]), + .I3(\SR_shiftRegister[0] [7]), + .I4(SC_multOperand2[3]), + .O(\SR_Y[7]_i_19_n_0 )); + LUT5 #( + .INIT(32'h2CD39F9F)) + \SR_Y[7]_i_20 + (.I0(\SR_shiftRegister[0] [4]), + .I1(\SR_shiftRegister[0] [5]), + .I2(SC_multOperand2[4]), + .I3(\SR_shiftRegister[0] [6]), + .I4(SC_multOperand2[3]), + .O(\SR_Y[7]_i_20_n_0 )); + LUT5 #( + .INIT(32'h2CD39F9F)) + \SR_Y[7]_i_21 + (.I0(\SR_shiftRegister[0] [3]), + .I1(\SR_shiftRegister[0] [4]), + .I2(SC_multOperand2[4]), + .I3(\SR_shiftRegister[0] [5]), + .I4(SC_multOperand2[3]), + .O(\SR_Y[7]_i_21_n_0 )); + LUT5 #( + .INIT(32'h2CD39F9F)) + \SR_Y[7]_i_22 + (.I0(\SR_shiftRegister[0] [2]), + .I1(\SR_shiftRegister[0] [3]), + .I2(SC_multOperand2[4]), + .I3(\SR_shiftRegister[0] [4]), + .I4(SC_multOperand2[3]), + .O(\SR_Y[7]_i_22_n_0 )); + LUT6 #( + .INIT(64'h134001C400000000)) + \SR_Y[7]_i_25 + (.I0(\SR_shiftRegister[0] [7]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[3]), + .I5(\SR_shiftRegister[0] [6]), + .O(\SR_Y[7]_i_25_n_0 )); + LUT3 #( + .INIT(8'h71)) + \SR_Y[7]_i_26 + (.I0(\SR_Y[4]_i_50_n_0 ), + .I1(\SR_Y[4]_i_49_n_0 ), + .I2(\SR_Y[4]_i_51_n_0 ), + .O(\SR_Y[7]_i_26_n_0 )); + LUT6 #( + .INIT(64'hCE3FFCB3DD7FFD77)) + \SR_Y[7]_i_27 + (.I0(\SR_shiftRegister[0] [6]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[3]), + .I5(\SR_shiftRegister[0] [7]), + .O(\SR_Y[7]_i_27_n_0 )); + LUT6 #( + .INIT(64'h8171FC0C1EEE3CCC)) + \SR_Y[7]_i_28 + (.I0(SC_multOperand2[0]), + .I1(\SR_Y[4]_i_50_n_0 ), + .I2(\SR_shiftRegister[0] [6]), + .I3(SC_multOperand2[2]), + .I4(\SR_shiftRegister[0] [7]), + .I5(SC_multOperand2[1]), + .O(\SR_Y[7]_i_28_n_0 )); + LUT6 #( + .INIT(64'h8000000000000000)) + \SR_Y[7]_i_3 + (.I0(L[11]), + .I1(L[9]), + .I2(L[7]), + .I3(\SR_Y_reg[4]_i_3_n_5 ), + .I4(L[8]), + .I5(L[10]), + .O(\SR_Y[7]_i_3_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair3" *) + LUT4 #( + .INIT(16'h542A)) + \SR_Y[7]_i_31 + (.I0(SR_readAddress_reg__0[3]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[2]), + .O(SC_multOperand2[4])); + (* SOFT_HLUTNM = "soft_lutpair9" *) + LUT4 #( + .INIT(16'h724E)) + \SR_Y[7]_i_32 + (.I0(SR_readAddress_reg__0[3]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .O(SC_multOperand2[3])); + (* SOFT_HLUTNM = "soft_lutpair8" *) + LUT4 #( + .INIT(16'h6006)) + \SR_Y[7]_i_37 + (.I0(SR_readAddress_reg__0[2]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[3]), + .I3(SR_readAddress_reg__0[1]), + .O(SC_multOperand2[0])); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_42 + (.I0(\SR_shiftRegister_reg[3]__0 [7]), + .I1(\SR_shiftRegister_reg[2]__0 [7]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[1]__0 [7]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[0]__0 [7]), + .O(\SR_Y[7]_i_42_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_43 + (.I0(\SR_shiftRegister_reg[7]__0 [7]), + .I1(\SR_shiftRegister_reg[6]__0 [7]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[5]__0 [7]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[4]__0 [7]), + .O(\SR_Y[7]_i_43_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_44 + (.I0(\SR_shiftRegister_reg[11]__0 [7]), + .I1(\SR_shiftRegister_reg[10]__0 [7]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[9]__0 [7]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[8]__0 [7]), + .O(\SR_Y[7]_i_44_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_45 + (.I0(\SR_shiftRegister_reg[15]__0 [7]), + .I1(\SR_shiftRegister_reg[14]__0 [7]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[13]__0 [7]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[12]__0 [7]), + .O(\SR_Y[7]_i_45_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_46 + (.I0(\SR_shiftRegister_reg[3]__0 [6]), + .I1(\SR_shiftRegister_reg[2]__0 [6]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[1]__0 [6]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[0]__0 [6]), + .O(\SR_Y[7]_i_46_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_47 + (.I0(\SR_shiftRegister_reg[7]__0 [6]), + .I1(\SR_shiftRegister_reg[6]__0 [6]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[5]__0 [6]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[4]__0 [6]), + .O(\SR_Y[7]_i_47_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_48 + (.I0(\SR_shiftRegister_reg[11]__0 [6]), + .I1(\SR_shiftRegister_reg[10]__0 [6]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[9]__0 [6]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[8]__0 [6]), + .O(\SR_Y[7]_i_48_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_49 + (.I0(\SR_shiftRegister_reg[15]__0 [6]), + .I1(\SR_shiftRegister_reg[14]__0 [6]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[13]__0 [6]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[12]__0 [6]), + .O(\SR_Y[7]_i_49_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[7]_i_5 + (.I0(SR_sum_reg[14]), + .I1(SC_MultResult[14]), + .O(\SR_Y[7]_i_5_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_50 + (.I0(\SR_shiftRegister_reg[3]__0 [5]), + .I1(\SR_shiftRegister_reg[2]__0 [5]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[1]__0 [5]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[0]__0 [5]), + .O(\SR_Y[7]_i_50_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_51 + (.I0(\SR_shiftRegister_reg[7]__0 [5]), + .I1(\SR_shiftRegister_reg[6]__0 [5]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[5]__0 [5]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[4]__0 [5]), + .O(\SR_Y[7]_i_51_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_52 + (.I0(\SR_shiftRegister_reg[11]__0 [5]), + .I1(\SR_shiftRegister_reg[10]__0 [5]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[9]__0 [5]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[8]__0 [5]), + .O(\SR_Y[7]_i_52_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_53 + (.I0(\SR_shiftRegister_reg[15]__0 [5]), + .I1(\SR_shiftRegister_reg[14]__0 [5]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[13]__0 [5]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[12]__0 [5]), + .O(\SR_Y[7]_i_53_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_54 + (.I0(\SR_shiftRegister_reg[3]__0 [4]), + .I1(\SR_shiftRegister_reg[2]__0 [4]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[1]__0 [4]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[0]__0 [4]), + .O(\SR_Y[7]_i_54_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_55 + (.I0(\SR_shiftRegister_reg[7]__0 [4]), + .I1(\SR_shiftRegister_reg[6]__0 [4]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[5]__0 [4]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[4]__0 [4]), + .O(\SR_Y[7]_i_55_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_56 + (.I0(\SR_shiftRegister_reg[11]__0 [4]), + .I1(\SR_shiftRegister_reg[10]__0 [4]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[9]__0 [4]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[8]__0 [4]), + .O(\SR_Y[7]_i_56_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_Y[7]_i_57 + (.I0(\SR_shiftRegister_reg[15]__0 [4]), + .I1(\SR_shiftRegister_reg[14]__0 [4]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[13]__0 [4]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[12]__0 [4]), + .O(\SR_Y[7]_i_57_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[7]_i_6 + (.I0(SC_MultResult[13]), + .I1(SR_sum_reg[13]), + .O(\SR_Y[7]_i_6_n_0 )); + LUT2 #( + .INIT(4'h6)) + \SR_Y[7]_i_7 + (.I0(SC_MultResult[12]), + .I1(SR_sum_reg[12]), + .O(\SR_Y[7]_i_7_n_0 )); + LUT3 #( + .INIT(8'h78)) + \SR_Y[7]_i_9 + (.I0(\SR_Y_reg[7]_i_14_n_1 ), + .I1(\SR_Y_reg[7]_i_10_n_4 ), + .I2(\SR_Y_reg[7]_i_8_n_7 ), + .O(\SR_Y[7]_i_9_n_0 )); + FDCE #( + .INIT(1'b0)) + \SR_Y_reg[0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadY_IBUF), + .CLR(I_reset_IBUF), + .D(p_0_in[0]), + .Q(O_Y_OBUF[0])); + FDCE #( + .INIT(1'b0)) + \SR_Y_reg[1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadY_IBUF), + .CLR(I_reset_IBUF), + .D(p_0_in[1]), + .Q(O_Y_OBUF[1])); + FDCE #( + .INIT(1'b0)) + \SR_Y_reg[2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadY_IBUF), + .CLR(I_reset_IBUF), + .D(p_0_in[2]), + .Q(O_Y_OBUF[2])); + FDCE #( + .INIT(1'b0)) + \SR_Y_reg[3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadY_IBUF), + .CLR(I_reset_IBUF), + .D(p_0_in[3]), + .Q(O_Y_OBUF[3])); + FDCE #( + .INIT(1'b0)) + \SR_Y_reg[4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadY_IBUF), + .CLR(I_reset_IBUF), + .D(p_0_in[4]), + .Q(O_Y_OBUF[4])); + CARRY4 \SR_Y_reg[4]_i_10 + (.CI(\<const0> ), + .CO({\SR_Y_reg[4]_i_10_n_0 ,\SR_Y_reg[4]_i_10_n_1 ,\SR_Y_reg[4]_i_10_n_2 ,\SR_Y_reg[4]_i_10_n_3 }), + .CYINIT(\<const0> ), + .DI({\SR_sum_reg[0]_i_11_n_5 ,\SR_Y_reg[4]_i_27_n_6 ,\SR_Y_reg[4]_i_27_n_7 ,\SR_sum_reg[0]_i_12_n_4 }), + .O({SC_MultResult[6:4],\NLW_SR_Y_reg[4]_i_10_O_UNCONNECTED [0]}), + .S({\SR_Y[4]_i_28_n_0 ,\SR_Y[4]_i_29_n_0 ,\SR_Y[4]_i_30_n_0 ,SC_MultResult[3]})); + CARRY4 \SR_Y_reg[4]_i_2 + (.CI(\SR_Y_reg[4]_i_3_n_0 ), + .CO({\SR_Y_reg[4]_i_2_n_0 ,\SR_Y_reg[4]_i_2_n_1 ,\SR_Y_reg[4]_i_2_n_2 ,\SR_Y_reg[4]_i_2_n_3 }), + .CYINIT(\<const0> ), + .DI(SC_MultResult[11:8]), + .O(L[11:8]), + .S({\SR_Y[4]_i_5_n_0 ,\SR_Y[4]_i_6_n_0 ,\SR_Y[4]_i_7_n_0 ,\SR_Y[4]_i_8_n_0 })); + CARRY4 \SR_Y_reg[4]_i_27 + (.CI(\SR_sum_reg[0]_i_12_n_0 ), + .CO({\SR_Y_reg[4]_i_27_n_0 ,\SR_Y_reg[4]_i_27_n_1 ,\SR_Y_reg[4]_i_27_n_2 ,\SR_Y_reg[4]_i_27_n_3 }), + .CYINIT(\<const0> ), + .DI({\SR_Y[4]_i_32_n_0 ,\SR_Y[4]_i_33_n_0 ,\SR_Y[4]_i_34_n_0 ,\SR_Y[4]_i_35_n_0 }), + .O({\SR_Y_reg[4]_i_27_n_4 ,\SR_Y_reg[4]_i_27_n_5 ,\SR_Y_reg[4]_i_27_n_6 ,\SR_Y_reg[4]_i_27_n_7 }), + .S({\SR_Y[4]_i_36_n_0 ,\SR_Y[4]_i_37_n_0 ,\SR_Y[4]_i_38_n_0 ,\SR_Y[4]_i_39_n_0 })); + CARRY4 \SR_Y_reg[4]_i_3 + (.CI(\SR_Y_reg[4]_i_9_n_0 ), + .CO({\SR_Y_reg[4]_i_3_n_0 ,\SR_Y_reg[4]_i_3_n_1 ,\SR_Y_reg[4]_i_3_n_2 ,\SR_Y_reg[4]_i_3_n_3 }), + .CYINIT(\<const0> ), + .DI(SC_MultResult[7:4]), + .O({L[7],\SR_Y_reg[4]_i_3_n_5 ,\NLW_SR_Y_reg[4]_i_3_O_UNCONNECTED [1:0]}), + .S({\SR_Y[4]_i_11_n_0 ,\SR_Y[4]_i_12_n_0 ,\SR_Y[4]_i_13_n_0 ,\SR_Y[4]_i_14_n_0 })); + CARRY4 \SR_Y_reg[4]_i_4 + (.CI(\SR_Y_reg[4]_i_10_n_0 ), + .CO({\SR_Y_reg[4]_i_4_n_0 ,\SR_Y_reg[4]_i_4_n_1 ,\SR_Y_reg[4]_i_4_n_2 ,\SR_Y_reg[4]_i_4_n_3 }), + .CYINIT(\<const0> ), + .DI({\SR_Y[4]_i_15_n_0 ,\SR_Y[4]_i_16_n_0 ,\SR_Y[4]_i_17_n_0 ,\SR_Y[4]_i_18_n_0 }), + .O(SC_MultResult[10:7]), + .S({\SR_Y[4]_i_19_n_0 ,\SR_Y[4]_i_20_n_0 ,\SR_Y[4]_i_21_n_0 ,\SR_Y[4]_i_22_n_0 })); + CARRY4 \SR_Y_reg[4]_i_9 + (.CI(\<const0> ), + .CO({\SR_Y_reg[4]_i_9_n_0 ,\SR_Y_reg[4]_i_9_n_1 ,\SR_Y_reg[4]_i_9_n_2 ,\SR_Y_reg[4]_i_9_n_3 }), + .CYINIT(\<const0> ), + .DI({SR_sum_reg[3],SC_MultResult[2:0]}), + .S({\SR_Y[4]_i_23_n_0 ,\SR_Y[4]_i_24_n_0 ,\SR_Y[4]_i_25_n_0 ,\SR_Y[4]_i_26_n_0 })); + FDCE #( + .INIT(1'b0)) + \SR_Y_reg[5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadY_IBUF), + .CLR(I_reset_IBUF), + .D(p_0_in[5]), + .Q(O_Y_OBUF[5])); + FDCE #( + .INIT(1'b0)) + \SR_Y_reg[6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadY_IBUF), + .CLR(I_reset_IBUF), + .D(p_0_in[6]), + .Q(O_Y_OBUF[6])); + FDCE #( + .INIT(1'b0)) + \SR_Y_reg[7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadY_IBUF), + .CLR(I_reset_IBUF), + .D(p_0_in[7]), + .Q(O_Y_OBUF[7])); + CARRY4 \SR_Y_reg[7]_i_10 + (.CI(\SR_sum_reg[0]_i_11_n_0 ), + .CO({\SR_Y_reg[7]_i_10_n_0 ,\SR_Y_reg[7]_i_10_n_1 ,\SR_Y_reg[7]_i_10_n_2 ,\SR_Y_reg[7]_i_10_n_3 }), + .CYINIT(\<const0> ), + .DI({\SR_Y[7]_i_15_n_0 ,\SR_Y[7]_i_16_n_0 ,\SR_Y[7]_i_17_n_0 ,\SR_Y[7]_i_18_n_0 }), + .O({\SR_Y_reg[7]_i_10_n_4 ,\SR_Y_reg[7]_i_10_n_5 ,\SR_Y_reg[7]_i_10_n_6 ,\SR_Y_reg[7]_i_10_n_7 }), + .S({\SR_Y[7]_i_19_n_0 ,\SR_Y[7]_i_20_n_0 ,\SR_Y[7]_i_21_n_0 ,\SR_Y[7]_i_22_n_0 })); + CARRY4 \SR_Y_reg[7]_i_14 + (.CI(\SR_Y_reg[4]_i_27_n_0 ), + .CO({\SR_Y_reg[7]_i_14_n_1 ,\NLW_SR_Y_reg[7]_i_14_CO_UNCONNECTED [1],\SR_Y_reg[7]_i_14_n_3 }), + .CYINIT(\<const0> ), + .DI({\<const0> ,\<const0> ,\SR_Y[7]_i_25_n_0 ,\SR_Y[7]_i_26_n_0 }), + .O({\SR_Y_reg[7]_i_14_n_6 ,\SR_Y_reg[7]_i_14_n_7 }), + .S({\<const0> ,\<const1> ,\SR_Y[7]_i_27_n_0 ,\SR_Y[7]_i_28_n_0 })); + CARRY4 \SR_Y_reg[7]_i_2 + (.CI(\SR_Y_reg[4]_i_2_n_0 ), + .CO({\SR_Y_reg[7]_i_2_n_2 ,\SR_Y_reg[7]_i_2_n_3 }), + .CYINIT(\<const0> ), + .DI({\<const0> ,\<const0> ,SC_MultResult[13:12]}), + .O(L[14:12]), + .S({\<const0> ,\SR_Y[7]_i_5_n_0 ,\SR_Y[7]_i_6_n_0 ,\SR_Y[7]_i_7_n_0 })); + MUXF8 \SR_Y_reg[7]_i_23 + (.I0(\SR_Y_reg[7]_i_33_n_0 ), + .I1(\SR_Y_reg[7]_i_34_n_0 ), + .O(\SR_shiftRegister[0] [7]), + .S(SR_readAddress_reg__0[3])); + MUXF8 \SR_Y_reg[7]_i_24 + (.I0(\SR_Y_reg[7]_i_35_n_0 ), + .I1(\SR_Y_reg[7]_i_36_n_0 ), + .O(\SR_shiftRegister[0] [6]), + .S(SR_readAddress_reg__0[3])); + MUXF8 \SR_Y_reg[7]_i_29 + (.I0(\SR_Y_reg[7]_i_38_n_0 ), + .I1(\SR_Y_reg[7]_i_39_n_0 ), + .O(\SR_shiftRegister[0] [5]), + .S(SR_readAddress_reg__0[3])); + MUXF8 \SR_Y_reg[7]_i_30 + (.I0(\SR_Y_reg[7]_i_40_n_0 ), + .I1(\SR_Y_reg[7]_i_41_n_0 ), + .O(\SR_shiftRegister[0] [4]), + .S(SR_readAddress_reg__0[3])); + MUXF7 \SR_Y_reg[7]_i_33 + (.I0(\SR_Y[7]_i_42_n_0 ), + .I1(\SR_Y[7]_i_43_n_0 ), + .O(\SR_Y_reg[7]_i_33_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_Y_reg[7]_i_34 + (.I0(\SR_Y[7]_i_44_n_0 ), + .I1(\SR_Y[7]_i_45_n_0 ), + .O(\SR_Y_reg[7]_i_34_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_Y_reg[7]_i_35 + (.I0(\SR_Y[7]_i_46_n_0 ), + .I1(\SR_Y[7]_i_47_n_0 ), + .O(\SR_Y_reg[7]_i_35_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_Y_reg[7]_i_36 + (.I0(\SR_Y[7]_i_48_n_0 ), + .I1(\SR_Y[7]_i_49_n_0 ), + .O(\SR_Y_reg[7]_i_36_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_Y_reg[7]_i_38 + (.I0(\SR_Y[7]_i_50_n_0 ), + .I1(\SR_Y[7]_i_51_n_0 ), + .O(\SR_Y_reg[7]_i_38_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_Y_reg[7]_i_39 + (.I0(\SR_Y[7]_i_52_n_0 ), + .I1(\SR_Y[7]_i_53_n_0 ), + .O(\SR_Y_reg[7]_i_39_n_0 ), + .S(SR_readAddress_reg__0[2])); + CARRY4 \SR_Y_reg[7]_i_4 + (.CI(\SR_Y_reg[4]_i_4_n_0 ), + .CO({\SR_Y_reg[7]_i_4_n_1 ,\SR_Y_reg[7]_i_4_n_2 ,\SR_Y_reg[7]_i_4_n_3 }), + .CYINIT(\<const0> ), + .DI({\<const0> ,\SR_Y_reg[7]_i_8_n_5 ,\<const0> ,\SR_Y_reg[7]_i_8_n_7 }), + .O(SC_MultResult[14:11]), + .S({\SR_Y_reg[7]_i_8_n_5 ,\SR_Y_reg[7]_i_8_n_5 ,\SR_Y_reg[7]_i_8_n_6 ,\SR_Y[7]_i_9_n_0 })); + MUXF7 \SR_Y_reg[7]_i_40 + (.I0(\SR_Y[7]_i_54_n_0 ), + .I1(\SR_Y[7]_i_55_n_0 ), + .O(\SR_Y_reg[7]_i_40_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_Y_reg[7]_i_41 + (.I0(\SR_Y[7]_i_56_n_0 ), + .I1(\SR_Y[7]_i_57_n_0 ), + .O(\SR_Y_reg[7]_i_41_n_0 ), + .S(SR_readAddress_reg__0[2])); + CARRY4 \SR_Y_reg[7]_i_8 + (.CI(\SR_Y_reg[7]_i_10_n_0 ), + .CO({\SR_Y_reg[7]_i_8_n_2 ,\SR_Y_reg[7]_i_8_n_3 }), + .CYINIT(\<const0> ), + .DI({\<const0> ,\<const0> ,\<const0> ,\SR_Y[7]_i_11_n_0 }), + .O({\SR_Y_reg[7]_i_8_n_5 ,\SR_Y_reg[7]_i_8_n_6 ,\SR_Y_reg[7]_i_8_n_7 }), + .S({\<const0> ,\<const1> ,\SR_Y[7]_i_12_n_0 ,\SR_Y[7]_i_13_n_0 })); + (* SOFT_HLUTNM = "soft_lutpair13" *) + LUT2 #( + .INIT(4'h1)) + \SR_readAddress[0]_i_1 + (.I0(SR_readAddress_reg__0[0]), + .I1(I_initAddress_IBUF), + .O(\SR_readAddress[0]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair13" *) + LUT3 #( + .INIT(8'h06)) + \SR_readAddress[1]_i_1 + (.I0(SR_readAddress_reg__0[1]), + .I1(SR_readAddress_reg__0[0]), + .I2(I_initAddress_IBUF), + .O(\SR_readAddress[1]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair10" *) + LUT4 #( + .INIT(16'h006A)) + \SR_readAddress[2]_i_1 + (.I0(SR_readAddress_reg__0[2]), + .I1(SR_readAddress_reg__0[1]), + .I2(SR_readAddress_reg__0[0]), + .I3(I_initAddress_IBUF), + .O(\SR_readAddress[2]_i_1_n_0 )); + LUT2 #( + .INIT(4'hE)) + \SR_readAddress[3]_i_1 + (.I0(I_incrAddress_IBUF), + .I1(I_initAddress_IBUF), + .O(\SR_readAddress[3]_i_1_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair10" *) + LUT5 #( + .INIT(32'h00006AAA)) + \SR_readAddress[3]_i_2 + (.I0(SR_readAddress_reg__0[3]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(I_initAddress_IBUF), + .O(\SR_readAddress[3]_i_2_n_0 )); + FDCE #( + .INIT(1'b0)) + \SR_readAddress_reg[0] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_readAddress[3]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_readAddress[0]_i_1_n_0 ), + .Q(SR_readAddress_reg__0[0])); + FDCE #( + .INIT(1'b0)) + \SR_readAddress_reg[1] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_readAddress[3]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_readAddress[1]_i_1_n_0 ), + .Q(SR_readAddress_reg__0[1])); + FDCE #( + .INIT(1'b0)) + \SR_readAddress_reg[2] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_readAddress[3]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_readAddress[2]_i_1_n_0 ), + .Q(SR_readAddress_reg__0[2])); + FDCE #( + .INIT(1'b0)) + \SR_readAddress_reg[3] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_readAddress[3]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_readAddress[3]_i_2_n_0 ), + .Q(SR_readAddress_reg__0[3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[0][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(I_inputSample_IBUF[0]), + .Q(\SR_shiftRegister_reg[0]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[0][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(I_inputSample_IBUF[1]), + .Q(\SR_shiftRegister_reg[0]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[0][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(I_inputSample_IBUF[2]), + .Q(\SR_shiftRegister_reg[0]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[0][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(I_inputSample_IBUF[3]), + .Q(\SR_shiftRegister_reg[0]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[0][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(I_inputSample_IBUF[4]), + .Q(\SR_shiftRegister_reg[0]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[0][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(I_inputSample_IBUF[5]), + .Q(\SR_shiftRegister_reg[0]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[0][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(I_inputSample_IBUF[6]), + .Q(\SR_shiftRegister_reg[0]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[0][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(I_inputSample_IBUF[7]), + .Q(\SR_shiftRegister_reg[0]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[10][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[9]__0 [0]), + .Q(\SR_shiftRegister_reg[10]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[10][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[9]__0 [1]), + .Q(\SR_shiftRegister_reg[10]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[10][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[9]__0 [2]), + .Q(\SR_shiftRegister_reg[10]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[10][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[9]__0 [3]), + .Q(\SR_shiftRegister_reg[10]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[10][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[9]__0 [4]), + .Q(\SR_shiftRegister_reg[10]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[10][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[9]__0 [5]), + .Q(\SR_shiftRegister_reg[10]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[10][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[9]__0 [6]), + .Q(\SR_shiftRegister_reg[10]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[10][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[9]__0 [7]), + .Q(\SR_shiftRegister_reg[10]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[11][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[10]__0 [0]), + .Q(\SR_shiftRegister_reg[11]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[11][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[10]__0 [1]), + .Q(\SR_shiftRegister_reg[11]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[11][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[10]__0 [2]), + .Q(\SR_shiftRegister_reg[11]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[11][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[10]__0 [3]), + .Q(\SR_shiftRegister_reg[11]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[11][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[10]__0 [4]), + .Q(\SR_shiftRegister_reg[11]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[11][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[10]__0 [5]), + .Q(\SR_shiftRegister_reg[11]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[11][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[10]__0 [6]), + .Q(\SR_shiftRegister_reg[11]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[11][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[10]__0 [7]), + .Q(\SR_shiftRegister_reg[11]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[12][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[11]__0 [0]), + .Q(\SR_shiftRegister_reg[12]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[12][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[11]__0 [1]), + .Q(\SR_shiftRegister_reg[12]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[12][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[11]__0 [2]), + .Q(\SR_shiftRegister_reg[12]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[12][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[11]__0 [3]), + .Q(\SR_shiftRegister_reg[12]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[12][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[11]__0 [4]), + .Q(\SR_shiftRegister_reg[12]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[12][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[11]__0 [5]), + .Q(\SR_shiftRegister_reg[12]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[12][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[11]__0 [6]), + .Q(\SR_shiftRegister_reg[12]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[12][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[11]__0 [7]), + .Q(\SR_shiftRegister_reg[12]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[13][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[12]__0 [0]), + .Q(\SR_shiftRegister_reg[13]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[13][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[12]__0 [1]), + .Q(\SR_shiftRegister_reg[13]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[13][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[12]__0 [2]), + .Q(\SR_shiftRegister_reg[13]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[13][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[12]__0 [3]), + .Q(\SR_shiftRegister_reg[13]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[13][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[12]__0 [4]), + .Q(\SR_shiftRegister_reg[13]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[13][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[12]__0 [5]), + .Q(\SR_shiftRegister_reg[13]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[13][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[12]__0 [6]), + .Q(\SR_shiftRegister_reg[13]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[13][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[12]__0 [7]), + .Q(\SR_shiftRegister_reg[13]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[14][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[13]__0 [0]), + .Q(\SR_shiftRegister_reg[14]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[14][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[13]__0 [1]), + .Q(\SR_shiftRegister_reg[14]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[14][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[13]__0 [2]), + .Q(\SR_shiftRegister_reg[14]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[14][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[13]__0 [3]), + .Q(\SR_shiftRegister_reg[14]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[14][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[13]__0 [4]), + .Q(\SR_shiftRegister_reg[14]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[14][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[13]__0 [5]), + .Q(\SR_shiftRegister_reg[14]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[14][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[13]__0 [6]), + .Q(\SR_shiftRegister_reg[14]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[14][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[13]__0 [7]), + .Q(\SR_shiftRegister_reg[14]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[15][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[14]__0 [0]), + .Q(\SR_shiftRegister_reg[15]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[15][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[14]__0 [1]), + .Q(\SR_shiftRegister_reg[15]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[15][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[14]__0 [2]), + .Q(\SR_shiftRegister_reg[15]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[15][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[14]__0 [3]), + .Q(\SR_shiftRegister_reg[15]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[15][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[14]__0 [4]), + .Q(\SR_shiftRegister_reg[15]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[15][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[14]__0 [5]), + .Q(\SR_shiftRegister_reg[15]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[15][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[14]__0 [6]), + .Q(\SR_shiftRegister_reg[15]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[15][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[14]__0 [7]), + .Q(\SR_shiftRegister_reg[15]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[1][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[0]__0 [0]), + .Q(\SR_shiftRegister_reg[1]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[1][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[0]__0 [1]), + .Q(\SR_shiftRegister_reg[1]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[1][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[0]__0 [2]), + .Q(\SR_shiftRegister_reg[1]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[1][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[0]__0 [3]), + .Q(\SR_shiftRegister_reg[1]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[1][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[0]__0 [4]), + .Q(\SR_shiftRegister_reg[1]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[1][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[0]__0 [5]), + .Q(\SR_shiftRegister_reg[1]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[1][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[0]__0 [6]), + .Q(\SR_shiftRegister_reg[1]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[1][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[0]__0 [7]), + .Q(\SR_shiftRegister_reg[1]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[2][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[1]__0 [0]), + .Q(\SR_shiftRegister_reg[2]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[2][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[1]__0 [1]), + .Q(\SR_shiftRegister_reg[2]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[2][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[1]__0 [2]), + .Q(\SR_shiftRegister_reg[2]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[2][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[1]__0 [3]), + .Q(\SR_shiftRegister_reg[2]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[2][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[1]__0 [4]), + .Q(\SR_shiftRegister_reg[2]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[2][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[1]__0 [5]), + .Q(\SR_shiftRegister_reg[2]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[2][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[1]__0 [6]), + .Q(\SR_shiftRegister_reg[2]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[2][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[1]__0 [7]), + .Q(\SR_shiftRegister_reg[2]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[3][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[2]__0 [0]), + .Q(\SR_shiftRegister_reg[3]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[3][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[2]__0 [1]), + .Q(\SR_shiftRegister_reg[3]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[3][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[2]__0 [2]), + .Q(\SR_shiftRegister_reg[3]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[3][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[2]__0 [3]), + .Q(\SR_shiftRegister_reg[3]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[3][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[2]__0 [4]), + .Q(\SR_shiftRegister_reg[3]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[3][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[2]__0 [5]), + .Q(\SR_shiftRegister_reg[3]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[3][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[2]__0 [6]), + .Q(\SR_shiftRegister_reg[3]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[3][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[2]__0 [7]), + .Q(\SR_shiftRegister_reg[3]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[4][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[3]__0 [0]), + .Q(\SR_shiftRegister_reg[4]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[4][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[3]__0 [1]), + .Q(\SR_shiftRegister_reg[4]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[4][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[3]__0 [2]), + .Q(\SR_shiftRegister_reg[4]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[4][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[3]__0 [3]), + .Q(\SR_shiftRegister_reg[4]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[4][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[3]__0 [4]), + .Q(\SR_shiftRegister_reg[4]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[4][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[3]__0 [5]), + .Q(\SR_shiftRegister_reg[4]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[4][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[3]__0 [6]), + .Q(\SR_shiftRegister_reg[4]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[4][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[3]__0 [7]), + .Q(\SR_shiftRegister_reg[4]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[5][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[4]__0 [0]), + .Q(\SR_shiftRegister_reg[5]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[5][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[4]__0 [1]), + .Q(\SR_shiftRegister_reg[5]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[5][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[4]__0 [2]), + .Q(\SR_shiftRegister_reg[5]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[5][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[4]__0 [3]), + .Q(\SR_shiftRegister_reg[5]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[5][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[4]__0 [4]), + .Q(\SR_shiftRegister_reg[5]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[5][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[4]__0 [5]), + .Q(\SR_shiftRegister_reg[5]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[5][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[4]__0 [6]), + .Q(\SR_shiftRegister_reg[5]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[5][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[4]__0 [7]), + .Q(\SR_shiftRegister_reg[5]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[6][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[5]__0 [0]), + .Q(\SR_shiftRegister_reg[6]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[6][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[5]__0 [1]), + .Q(\SR_shiftRegister_reg[6]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[6][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[5]__0 [2]), + .Q(\SR_shiftRegister_reg[6]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[6][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[5]__0 [3]), + .Q(\SR_shiftRegister_reg[6]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[6][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[5]__0 [4]), + .Q(\SR_shiftRegister_reg[6]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[6][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[5]__0 [5]), + .Q(\SR_shiftRegister_reg[6]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[6][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[5]__0 [6]), + .Q(\SR_shiftRegister_reg[6]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[6][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[5]__0 [7]), + .Q(\SR_shiftRegister_reg[6]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[7][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[6]__0 [0]), + .Q(\SR_shiftRegister_reg[7]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[7][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[6]__0 [1]), + .Q(\SR_shiftRegister_reg[7]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[7][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[6]__0 [2]), + .Q(\SR_shiftRegister_reg[7]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[7][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[6]__0 [3]), + .Q(\SR_shiftRegister_reg[7]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[7][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[6]__0 [4]), + .Q(\SR_shiftRegister_reg[7]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[7][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[6]__0 [5]), + .Q(\SR_shiftRegister_reg[7]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[7][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[6]__0 [6]), + .Q(\SR_shiftRegister_reg[7]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[7][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[6]__0 [7]), + .Q(\SR_shiftRegister_reg[7]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[8][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[7]__0 [0]), + .Q(\SR_shiftRegister_reg[8]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[8][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[7]__0 [1]), + .Q(\SR_shiftRegister_reg[8]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[8][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[7]__0 [2]), + .Q(\SR_shiftRegister_reg[8]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[8][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[7]__0 [3]), + .Q(\SR_shiftRegister_reg[8]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[8][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[7]__0 [4]), + .Q(\SR_shiftRegister_reg[8]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[8][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[7]__0 [5]), + .Q(\SR_shiftRegister_reg[8]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[8][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[7]__0 [6]), + .Q(\SR_shiftRegister_reg[8]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[8][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[7]__0 [7]), + .Q(\SR_shiftRegister_reg[8]__0 [7])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[9][0] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[8]__0 [0]), + .Q(\SR_shiftRegister_reg[9]__0 [0])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[9][1] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[8]__0 [1]), + .Q(\SR_shiftRegister_reg[9]__0 [1])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[9][2] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[8]__0 [2]), + .Q(\SR_shiftRegister_reg[9]__0 [2])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[9][3] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[8]__0 [3]), + .Q(\SR_shiftRegister_reg[9]__0 [3])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[9][4] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[8]__0 [4]), + .Q(\SR_shiftRegister_reg[9]__0 [4])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[9][5] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[8]__0 [5]), + .Q(\SR_shiftRegister_reg[9]__0 [5])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[9][6] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[8]__0 [6]), + .Q(\SR_shiftRegister_reg[9]__0 [6])); + FDCE #( + .INIT(1'b0)) + \SR_shiftRegister_reg[9][7] + (.C(I_clock_IBUF_BUFG), + .CE(I_loadShift_IBUF), + .CLR(I_reset_IBUF), + .D(\SR_shiftRegister_reg[8]__0 [7]), + .Q(\SR_shiftRegister_reg[9]__0 [7])); + LUT2 #( + .INIT(4'hE)) + \SR_sum[0]_i_1 + (.I0(I_loadSum_IBUF), + .I1(I_initSum_IBUF), + .O(\SR_sum[0]_i_1_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[0]_i_10 + (.I0(SC_MultResult[0]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[0]), + .O(\SR_sum[0]_i_10_n_0 )); + LUT1 #( + .INIT(2'h1)) + \SR_sum[0]_i_13 + (.I0(\SR_sum[0]_i_27_n_0 ), + .O(\SR_sum[0]_i_13_n_0 )); + LUT5 #( + .INIT(32'hFDDD777F)) + \SR_sum[0]_i_14 + (.I0(\SR_shiftRegister[0] [1]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[3]), + .O(\SR_sum[0]_i_14_n_0 )); + LUT5 #( + .INIT(32'h724E0000)) + \SR_sum[0]_i_15 + (.I0(SR_readAddress_reg__0[3]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(\SR_shiftRegister[0] [1]), + .O(\SR_sum[0]_i_15_n_0 )); + LUT6 #( + .INIT(64'h02228880FDDD777F)) + \SR_sum[0]_i_16 + (.I0(\SR_shiftRegister[0] [1]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[3]), + .I5(\SR_sum[0]_i_27_n_0 ), + .O(\SR_sum[0]_i_16_n_0 )); + LUT6 #( + .INIT(64'hCED287B3FDDD777F)) + \SR_sum[0]_i_17 + (.I0(\SR_shiftRegister[0] [1]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[3]), + .I5(\SR_shiftRegister[0] [2]), + .O(\SR_sum[0]_i_17_n_0 )); + LUT6 #( + .INIT(64'h113AAC44220AA088)) + \SR_sum[0]_i_18 + (.I0(\SR_shiftRegister[0] [1]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[2]), + .I5(\SR_shiftRegister[0] [0]), + .O(\SR_sum[0]_i_18_n_0 )); + LUT5 #( + .INIT(32'h028AA280)) + \SR_sum[0]_i_19 + (.I0(\SR_shiftRegister[0] [0]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[2]), + .I4(SR_readAddress_reg__0[3]), + .O(\SR_sum[0]_i_19_n_0 )); + LUT3 #( + .INIT(8'h69)) + \SR_sum[0]_i_20 + (.I0(\SR_sum[0]_i_31_n_0 ), + .I1(\SR_sum[0]_i_32_n_0 ), + .I2(\SR_sum[0]_i_33_n_0 ), + .O(\SR_sum[0]_i_20_n_0 )); + LUT6 #( + .INIT(64'h9B4AA1E6A88AA22A)) + \SR_sum[0]_i_21 + (.I0(\SR_shiftRegister[0] [1]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[3]), + .I5(\SR_shiftRegister[0] [0]), + .O(\SR_sum[0]_i_21_n_0 )); + LUT5 #( + .INIT(32'h60060000)) + \SR_sum[0]_i_22 + (.I0(SR_readAddress_reg__0[2]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[3]), + .I3(SR_readAddress_reg__0[1]), + .I4(\SR_shiftRegister[0] [1]), + .O(\SR_sum[0]_i_22_n_0 )); + LUT6 #( + .INIT(64'h6696969666666666)) + \SR_sum[0]_i_23 + (.I0(\SR_sum[0]_i_31_n_0 ), + .I1(\SR_sum[0]_i_33_n_0 ), + .I2(\SR_shiftRegister[0] [1]), + .I3(SC_multOperand2[1]), + .I4(\SR_shiftRegister[0] [0]), + .I5(SC_multOperand2[2]), + .O(\SR_sum[0]_i_23_n_0 )); + LUT6 #( + .INIT(64'h96AAAA96AAAAAAAA)) + \SR_sum[0]_i_24 + (.I0(\SR_sum[0]_i_21_n_0 ), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[3]), + .I4(SR_readAddress_reg__0[1]), + .I5(\SR_shiftRegister[0] [2]), + .O(\SR_sum[0]_i_24_n_0 )); + LUT6 #( + .INIT(64'hF7C143DF08028020)) + \SR_sum[0]_i_25 + (.I0(\SR_shiftRegister[0] [1]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[2]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister[0] [0]), + .O(\SR_sum[0]_i_25_n_0 )); + LUT5 #( + .INIT(32'h00828200)) + \SR_sum[0]_i_26 + (.I0(\SR_shiftRegister[0] [0]), + .I1(SR_readAddress_reg__0[1]), + .I2(SR_readAddress_reg__0[3]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_sum[0]_i_26_n_0 )); + LUT6 #( + .INIT(64'h113AAC44220AA088)) + \SR_sum[0]_i_27 + (.I0(\SR_shiftRegister[0] [3]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[0]), + .I3(SR_readAddress_reg__0[1]), + .I4(SR_readAddress_reg__0[2]), + .I5(\SR_shiftRegister[0] [2]), + .O(\SR_sum[0]_i_27_n_0 )); + LUT3 #( + .INIT(8'h06)) + \SR_sum[0]_i_3 + (.I0(\SR_sum_reg[0]_i_11_n_7 ), + .I1(\SR_sum_reg[0]_i_12_n_4 ), + .I2(I_initSum_IBUF), + .O(\SR_sum[0]_i_3_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair2" *) + LUT5 #( + .INIT(32'h557D7D55)) + \SR_sum[0]_i_31 + (.I0(\SR_shiftRegister[0] [2]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[2]), + .I4(SR_readAddress_reg__0[3]), + .O(\SR_sum[0]_i_31_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT5 #( + .INIT(32'hF5FD7F5F)) + \SR_sum[0]_i_32 + (.I0(\SR_shiftRegister[0] [1]), + .I1(SR_readAddress_reg__0[3]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_sum[0]_i_32_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair5" *) + LUT5 #( + .INIT(32'hFF7D7DFF)) + \SR_sum[0]_i_33 + (.I0(\SR_shiftRegister[0] [3]), + .I1(SR_readAddress_reg__0[1]), + .I2(SR_readAddress_reg__0[3]), + .I3(SR_readAddress_reg__0[0]), + .I4(SR_readAddress_reg__0[2]), + .O(\SR_sum[0]_i_33_n_0 )); + (* SOFT_HLUTNM = "soft_lutpair7" *) + LUT4 #( + .INIT(16'hF99F)) + \SR_sum[0]_i_34 + (.I0(SR_readAddress_reg__0[3]), + .I1(SR_readAddress_reg__0[2]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[0]), + .O(SC_multOperand2[1])); + (* SOFT_HLUTNM = "soft_lutpair6" *) + LUT4 #( + .INIT(16'h581A)) + \SR_sum[0]_i_35 + (.I0(SR_readAddress_reg__0[2]), + .I1(SR_readAddress_reg__0[0]), + .I2(SR_readAddress_reg__0[1]), + .I3(SR_readAddress_reg__0[3]), + .O(SC_multOperand2[2])); + LUT2 #( + .INIT(4'h2)) + \SR_sum[0]_i_4 + (.I0(SC_MultResult[2]), + .I1(I_initSum_IBUF), + .O(\SR_sum[0]_i_4_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_45 + (.I0(\SR_shiftRegister_reg[3]__0 [1]), + .I1(\SR_shiftRegister_reg[2]__0 [1]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[1]__0 [1]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[0]__0 [1]), + .O(\SR_sum[0]_i_45_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_46 + (.I0(\SR_shiftRegister_reg[7]__0 [1]), + .I1(\SR_shiftRegister_reg[6]__0 [1]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[5]__0 [1]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[4]__0 [1]), + .O(\SR_sum[0]_i_46_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_47 + (.I0(\SR_shiftRegister_reg[11]__0 [1]), + .I1(\SR_shiftRegister_reg[10]__0 [1]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[9]__0 [1]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[8]__0 [1]), + .O(\SR_sum[0]_i_47_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_48 + (.I0(\SR_shiftRegister_reg[15]__0 [1]), + .I1(\SR_shiftRegister_reg[14]__0 [1]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[13]__0 [1]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[12]__0 [1]), + .O(\SR_sum[0]_i_48_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_49 + (.I0(\SR_shiftRegister_reg[3]__0 [2]), + .I1(\SR_shiftRegister_reg[2]__0 [2]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[1]__0 [2]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[0]__0 [2]), + .O(\SR_sum[0]_i_49_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[0]_i_5 + (.I0(SC_MultResult[1]), + .I1(I_initSum_IBUF), + .O(\SR_sum[0]_i_5_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_50 + (.I0(\SR_shiftRegister_reg[7]__0 [2]), + .I1(\SR_shiftRegister_reg[6]__0 [2]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[5]__0 [2]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[4]__0 [2]), + .O(\SR_sum[0]_i_50_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_51 + (.I0(\SR_shiftRegister_reg[11]__0 [2]), + .I1(\SR_shiftRegister_reg[10]__0 [2]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[9]__0 [2]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[8]__0 [2]), + .O(\SR_sum[0]_i_51_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_52 + (.I0(\SR_shiftRegister_reg[15]__0 [2]), + .I1(\SR_shiftRegister_reg[14]__0 [2]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[13]__0 [2]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[12]__0 [2]), + .O(\SR_sum[0]_i_52_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_53 + (.I0(\SR_shiftRegister_reg[3]__0 [0]), + .I1(\SR_shiftRegister_reg[2]__0 [0]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[1]__0 [0]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[0]__0 [0]), + .O(\SR_sum[0]_i_53_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_54 + (.I0(\SR_shiftRegister_reg[7]__0 [0]), + .I1(\SR_shiftRegister_reg[6]__0 [0]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[5]__0 [0]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[4]__0 [0]), + .O(\SR_sum[0]_i_54_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_55 + (.I0(\SR_shiftRegister_reg[11]__0 [0]), + .I1(\SR_shiftRegister_reg[10]__0 [0]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[9]__0 [0]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[8]__0 [0]), + .O(\SR_sum[0]_i_55_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_56 + (.I0(\SR_shiftRegister_reg[15]__0 [0]), + .I1(\SR_shiftRegister_reg[14]__0 [0]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[13]__0 [0]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[12]__0 [0]), + .O(\SR_sum[0]_i_56_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_57 + (.I0(\SR_shiftRegister_reg[3]__0 [3]), + .I1(\SR_shiftRegister_reg[2]__0 [3]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[1]__0 [3]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[0]__0 [3]), + .O(\SR_sum[0]_i_57_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_58 + (.I0(\SR_shiftRegister_reg[7]__0 [3]), + .I1(\SR_shiftRegister_reg[6]__0 [3]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[5]__0 [3]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[4]__0 [3]), + .O(\SR_sum[0]_i_58_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_59 + (.I0(\SR_shiftRegister_reg[11]__0 [3]), + .I1(\SR_shiftRegister_reg[10]__0 [3]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[9]__0 [3]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[8]__0 [3]), + .O(\SR_sum[0]_i_59_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[0]_i_6 + (.I0(SC_MultResult[0]), + .I1(I_initSum_IBUF), + .O(\SR_sum[0]_i_6_n_0 )); + LUT6 #( + .INIT(64'hAFA0CFCFAFA0C0C0)) + \SR_sum[0]_i_60 + (.I0(\SR_shiftRegister_reg[15]__0 [3]), + .I1(\SR_shiftRegister_reg[14]__0 [3]), + .I2(SR_readAddress_reg__0[1]), + .I3(\SR_shiftRegister_reg[13]__0 [3]), + .I4(SR_readAddress_reg__0[0]), + .I5(\SR_shiftRegister_reg[12]__0 [3]), + .O(\SR_sum[0]_i_60_n_0 )); + LUT4 #( + .INIT(16'h0906)) + \SR_sum[0]_i_7 + (.I0(\SR_sum_reg[0]_i_12_n_4 ), + .I1(\SR_sum_reg[0]_i_11_n_7 ), + .I2(I_initSum_IBUF), + .I3(SR_sum_reg[3]), + .O(\SR_sum[0]_i_7_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[0]_i_8 + (.I0(SC_MultResult[2]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[2]), + .O(\SR_sum[0]_i_8_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[0]_i_9 + (.I0(SC_MultResult[1]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[1]), + .O(\SR_sum[0]_i_9_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[12]_i_2 + (.I0(SC_MultResult[13]), + .I1(I_initSum_IBUF), + .O(\SR_sum[12]_i_2_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[12]_i_3 + (.I0(SC_MultResult[12]), + .I1(I_initSum_IBUF), + .O(\SR_sum[12]_i_3_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[12]_i_4 + (.I0(SC_MultResult[14]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[14]), + .O(\SR_sum[12]_i_4_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[12]_i_5 + (.I0(SC_MultResult[13]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[13]), + .O(\SR_sum[12]_i_5_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[12]_i_6 + (.I0(SC_MultResult[12]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[12]), + .O(\SR_sum[12]_i_6_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[4]_i_2 + (.I0(SC_MultResult[7]), + .I1(I_initSum_IBUF), + .O(\SR_sum[4]_i_2_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[4]_i_3 + (.I0(SC_MultResult[6]), + .I1(I_initSum_IBUF), + .O(\SR_sum[4]_i_3_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[4]_i_4 + (.I0(SC_MultResult[5]), + .I1(I_initSum_IBUF), + .O(\SR_sum[4]_i_4_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[4]_i_5 + (.I0(SC_MultResult[4]), + .I1(I_initSum_IBUF), + .O(\SR_sum[4]_i_5_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[4]_i_6 + (.I0(SC_MultResult[7]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[7]), + .O(\SR_sum[4]_i_6_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[4]_i_7 + (.I0(SC_MultResult[6]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[6]), + .O(\SR_sum[4]_i_7_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[4]_i_8 + (.I0(SC_MultResult[5]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[5]), + .O(\SR_sum[4]_i_8_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[4]_i_9 + (.I0(SC_MultResult[4]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[4]), + .O(\SR_sum[4]_i_9_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[8]_i_2 + (.I0(SC_MultResult[11]), + .I1(I_initSum_IBUF), + .O(\SR_sum[8]_i_2_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[8]_i_3 + (.I0(SC_MultResult[10]), + .I1(I_initSum_IBUF), + .O(\SR_sum[8]_i_3_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[8]_i_4 + (.I0(SC_MultResult[9]), + .I1(I_initSum_IBUF), + .O(\SR_sum[8]_i_4_n_0 )); + LUT2 #( + .INIT(4'h2)) + \SR_sum[8]_i_5 + (.I0(SC_MultResult[8]), + .I1(I_initSum_IBUF), + .O(\SR_sum[8]_i_5_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[8]_i_6 + (.I0(SC_MultResult[11]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[11]), + .O(\SR_sum[8]_i_6_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[8]_i_7 + (.I0(SC_MultResult[10]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[10]), + .O(\SR_sum[8]_i_7_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[8]_i_8 + (.I0(SC_MultResult[9]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[9]), + .O(\SR_sum[8]_i_8_n_0 )); + LUT3 #( + .INIT(8'h12)) + \SR_sum[8]_i_9 + (.I0(SC_MultResult[8]), + .I1(I_initSum_IBUF), + .I2(SR_sum_reg[8]), + .O(\SR_sum[8]_i_9_n_0 )); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[0] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[0]_i_2_n_7 ), + .Q(SR_sum_reg[0])); + CARRY4 \SR_sum_reg[0]_i_11 + (.CI(\<const0> ), + .CO({\SR_sum_reg[0]_i_11_n_0 ,\SR_sum_reg[0]_i_11_n_1 ,\SR_sum_reg[0]_i_11_n_2 ,\SR_sum_reg[0]_i_11_n_3 }), + .CYINIT(\<const0> ), + .DI({\SR_sum[0]_i_13_n_0 ,\SR_sum[0]_i_14_n_0 ,\SR_sum[0]_i_15_n_0 ,\<const0> }), + .O({\SR_sum_reg[0]_i_11_n_4 ,\SR_sum_reg[0]_i_11_n_5 ,\SR_sum_reg[0]_i_11_n_6 ,\SR_sum_reg[0]_i_11_n_7 }), + .S({\SR_sum[0]_i_16_n_0 ,\SR_sum[0]_i_17_n_0 ,\SR_sum[0]_i_18_n_0 ,\SR_sum[0]_i_19_n_0 })); + CARRY4 \SR_sum_reg[0]_i_12 + (.CI(\<const0> ), + .CO({\SR_sum_reg[0]_i_12_n_0 ,\SR_sum_reg[0]_i_12_n_1 ,\SR_sum_reg[0]_i_12_n_2 ,\SR_sum_reg[0]_i_12_n_3 }), + .CYINIT(\<const0> ), + .DI({\SR_sum[0]_i_20_n_0 ,\SR_sum[0]_i_21_n_0 ,\SR_sum[0]_i_22_n_0 ,\<const0> }), + .O({\SR_sum_reg[0]_i_12_n_4 ,SC_MultResult[2:0]}), + .S({\SR_sum[0]_i_23_n_0 ,\SR_sum[0]_i_24_n_0 ,\SR_sum[0]_i_25_n_0 ,\SR_sum[0]_i_26_n_0 })); + CARRY4 \SR_sum_reg[0]_i_2 + (.CI(\<const0> ), + .CO({\SR_sum_reg[0]_i_2_n_0 ,\SR_sum_reg[0]_i_2_n_1 ,\SR_sum_reg[0]_i_2_n_2 ,\SR_sum_reg[0]_i_2_n_3 }), + .CYINIT(\<const0> ), + .DI({\SR_sum[0]_i_3_n_0 ,\SR_sum[0]_i_4_n_0 ,\SR_sum[0]_i_5_n_0 ,\SR_sum[0]_i_6_n_0 }), + .O({\SR_sum_reg[0]_i_2_n_4 ,\SR_sum_reg[0]_i_2_n_5 ,\SR_sum_reg[0]_i_2_n_6 ,\SR_sum_reg[0]_i_2_n_7 }), + .S({\SR_sum[0]_i_7_n_0 ,\SR_sum[0]_i_8_n_0 ,\SR_sum[0]_i_9_n_0 ,\SR_sum[0]_i_10_n_0 })); + MUXF8 \SR_sum_reg[0]_i_28 + (.I0(\SR_sum_reg[0]_i_37_n_0 ), + .I1(\SR_sum_reg[0]_i_38_n_0 ), + .O(\SR_shiftRegister[0] [1]), + .S(SR_readAddress_reg__0[3])); + MUXF8 \SR_sum_reg[0]_i_29 + (.I0(\SR_sum_reg[0]_i_39_n_0 ), + .I1(\SR_sum_reg[0]_i_40_n_0 ), + .O(\SR_shiftRegister[0] [2]), + .S(SR_readAddress_reg__0[3])); + MUXF8 \SR_sum_reg[0]_i_30 + (.I0(\SR_sum_reg[0]_i_41_n_0 ), + .I1(\SR_sum_reg[0]_i_42_n_0 ), + .O(\SR_shiftRegister[0] [0]), + .S(SR_readAddress_reg__0[3])); + MUXF8 \SR_sum_reg[0]_i_36 + (.I0(\SR_sum_reg[0]_i_43_n_0 ), + .I1(\SR_sum_reg[0]_i_44_n_0 ), + .O(\SR_shiftRegister[0] [3]), + .S(SR_readAddress_reg__0[3])); + MUXF7 \SR_sum_reg[0]_i_37 + (.I0(\SR_sum[0]_i_45_n_0 ), + .I1(\SR_sum[0]_i_46_n_0 ), + .O(\SR_sum_reg[0]_i_37_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_sum_reg[0]_i_38 + (.I0(\SR_sum[0]_i_47_n_0 ), + .I1(\SR_sum[0]_i_48_n_0 ), + .O(\SR_sum_reg[0]_i_38_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_sum_reg[0]_i_39 + (.I0(\SR_sum[0]_i_49_n_0 ), + .I1(\SR_sum[0]_i_50_n_0 ), + .O(\SR_sum_reg[0]_i_39_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_sum_reg[0]_i_40 + (.I0(\SR_sum[0]_i_51_n_0 ), + .I1(\SR_sum[0]_i_52_n_0 ), + .O(\SR_sum_reg[0]_i_40_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_sum_reg[0]_i_41 + (.I0(\SR_sum[0]_i_53_n_0 ), + .I1(\SR_sum[0]_i_54_n_0 ), + .O(\SR_sum_reg[0]_i_41_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_sum_reg[0]_i_42 + (.I0(\SR_sum[0]_i_55_n_0 ), + .I1(\SR_sum[0]_i_56_n_0 ), + .O(\SR_sum_reg[0]_i_42_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_sum_reg[0]_i_43 + (.I0(\SR_sum[0]_i_57_n_0 ), + .I1(\SR_sum[0]_i_58_n_0 ), + .O(\SR_sum_reg[0]_i_43_n_0 ), + .S(SR_readAddress_reg__0[2])); + MUXF7 \SR_sum_reg[0]_i_44 + (.I0(\SR_sum[0]_i_59_n_0 ), + .I1(\SR_sum[0]_i_60_n_0 ), + .O(\SR_sum_reg[0]_i_44_n_0 ), + .S(SR_readAddress_reg__0[2])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[10] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[8]_i_1_n_5 ), + .Q(SR_sum_reg[10])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[11] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[8]_i_1_n_4 ), + .Q(SR_sum_reg[11])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[12] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[12]_i_1_n_7 ), + .Q(SR_sum_reg[12])); + CARRY4 \SR_sum_reg[12]_i_1 + (.CI(\SR_sum_reg[8]_i_1_n_0 ), + .CO({\SR_sum_reg[12]_i_1_n_2 ,\SR_sum_reg[12]_i_1_n_3 }), + .CYINIT(\<const0> ), + .DI({\<const0> ,\<const0> ,\SR_sum[12]_i_2_n_0 ,\SR_sum[12]_i_3_n_0 }), + .O({\SR_sum_reg[12]_i_1_n_5 ,\SR_sum_reg[12]_i_1_n_6 ,\SR_sum_reg[12]_i_1_n_7 }), + .S({\<const0> ,\SR_sum[12]_i_4_n_0 ,\SR_sum[12]_i_5_n_0 ,\SR_sum[12]_i_6_n_0 })); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[13] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[12]_i_1_n_6 ), + .Q(SR_sum_reg[13])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[14] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[12]_i_1_n_5 ), + .Q(SR_sum_reg[14])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[1] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[0]_i_2_n_6 ), + .Q(SR_sum_reg[1])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[2] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[0]_i_2_n_5 ), + .Q(SR_sum_reg[2])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[3] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[0]_i_2_n_4 ), + .Q(SR_sum_reg[3])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[4] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[4]_i_1_n_7 ), + .Q(SR_sum_reg[4])); + CARRY4 \SR_sum_reg[4]_i_1 + (.CI(\SR_sum_reg[0]_i_2_n_0 ), + .CO({\SR_sum_reg[4]_i_1_n_0 ,\SR_sum_reg[4]_i_1_n_1 ,\SR_sum_reg[4]_i_1_n_2 ,\SR_sum_reg[4]_i_1_n_3 }), + .CYINIT(\<const0> ), + .DI({\SR_sum[4]_i_2_n_0 ,\SR_sum[4]_i_3_n_0 ,\SR_sum[4]_i_4_n_0 ,\SR_sum[4]_i_5_n_0 }), + .O({\SR_sum_reg[4]_i_1_n_4 ,\SR_sum_reg[4]_i_1_n_5 ,\SR_sum_reg[4]_i_1_n_6 ,\SR_sum_reg[4]_i_1_n_7 }), + .S({\SR_sum[4]_i_6_n_0 ,\SR_sum[4]_i_7_n_0 ,\SR_sum[4]_i_8_n_0 ,\SR_sum[4]_i_9_n_0 })); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[5] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[4]_i_1_n_6 ), + .Q(SR_sum_reg[5])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[6] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[4]_i_1_n_5 ), + .Q(SR_sum_reg[6])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[7] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[4]_i_1_n_4 ), + .Q(SR_sum_reg[7])); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[8] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[8]_i_1_n_7 ), + .Q(SR_sum_reg[8])); + CARRY4 \SR_sum_reg[8]_i_1 + (.CI(\SR_sum_reg[4]_i_1_n_0 ), + .CO({\SR_sum_reg[8]_i_1_n_0 ,\SR_sum_reg[8]_i_1_n_1 ,\SR_sum_reg[8]_i_1_n_2 ,\SR_sum_reg[8]_i_1_n_3 }), + .CYINIT(\<const0> ), + .DI({\SR_sum[8]_i_2_n_0 ,\SR_sum[8]_i_3_n_0 ,\SR_sum[8]_i_4_n_0 ,\SR_sum[8]_i_5_n_0 }), + .O({\SR_sum_reg[8]_i_1_n_4 ,\SR_sum_reg[8]_i_1_n_5 ,\SR_sum_reg[8]_i_1_n_6 ,\SR_sum_reg[8]_i_1_n_7 }), + .S({\SR_sum[8]_i_6_n_0 ,\SR_sum[8]_i_7_n_0 ,\SR_sum[8]_i_8_n_0 ,\SR_sum[8]_i_9_n_0 })); + FDCE #( + .INIT(1'b0)) + \SR_sum_reg[9] + (.C(I_clock_IBUF_BUFG), + .CE(\SR_sum[0]_i_1_n_0 ), + .CLR(I_reset_IBUF), + .D(\SR_sum_reg[8]_i_1_n_6 ), + .Q(SR_sum_reg[9])); + VCC VCC + (.P(\<const1> )); +endmodule diff --git a/tp_vivado/src/hdl/tb_firUnit.vhd b/tp_vivado/src/hdl/tb_firUnit.vhd new file mode 100644 index 0000000..76f7d19 --- /dev/null +++ b/tp_vivado/src/hdl/tb_firUnit.vhd @@ -0,0 +1,87 @@ +------------------------------------------------------------------------------- +-- Title : FirUnit +-- Project : +------------------------------------------------------------------------------- +-- File : operativeUnit.vhd +-- Author : Jean-Noel BAZIN <jnbazin@pc-disi-026.enst-bretagne.fr> +-- Company : +-- Created : 2018-04-11 +-- Last update: 2019-02-26 +-- Platform : +-- Standard : VHDL'93/02 +------------------------------------------------------------------------------- +-- Description: 8 bit FIR +------------------------------------------------------------------------------- +-- Copyright (c) 2018 +------------------------------------------------------------------------------- +-- Revisions : +-- Date Version Author Description +-- 2018-04-11 1.0 jnbazin Created +-- 2018-04-18 1.1 marzel Modified to add more test inputs +-- 2019-02-26 1.1 marzel Adapted to 16-tap filtering +------------------------------------------------------------------------------- + +library ieee; +use ieee.std_logic_1164.all; +use ieee.numeric_std.all; + +entity tb_firUnit is +end entity tb_firUnit; + +architecture archi_tb_firUnit of tb_firUnit is + component firUnit is + port ( + I_clock : in std_logic; + I_reset : in std_logic; + I_inputSample : in std_logic_vector(10 downto 0); + I_inputSampleValid : in std_logic; + O_filteredSample : out std_logic_vector(10 downto 0); + O_filteredSampleValid : out std_logic); + end component firUnit; + + signal SC_clock : std_logic := '0'; + signal SC_reset : std_logic; + signal SC_inputSample : std_logic_vector(10 downto 0); + signal SC_inputSampleValid : std_logic:='0'; + signal SC_filteredSample : std_logic_vector(10 downto 0); + signal SC_filteredSampleValid : std_logic; + +begin + + SC_clock <= not SC_clock after 5 ns; + SC_reset <= '0', '1' after 19 ns, '0' after 57 ns; + + -- Sample period = 20 clk period + SC_inputSampleValid <= not SC_inputSampleValid after 100 ns; + + -- Null signal followed by a Dirac and then an arbitrary sequence + SC_inputSample <= "00000000000", + "00001111111" after 401 ns, + "00000000000" after 601 ns, + "00000100100" after 4201 ns, + "00001100100" after 4401 ns, + "00010100010" after 4601 ns, + "00011011011" after 4801 ns, + "00000001011" after 5001 ns, + "00010000000" after 5201 ns, + "00001111111" after 5401 ns, + "00010111010" after 5601 ns; + + +-- the filter output on 8 bits is a sequence of signed numbers (with the assumption +-- of rounding the output, so the accuracy can be slightly different depending +-- on your final stage): + -- 0 2 3 6 10 15 20 24 26 26 24 20 15 10 6 3 2 0 0 0 1 2 3 5 7 7 8 4 -1 -8 + -- -17 -27 -38 -49 -61 -71 -82 -93 -101 -107 -112 -113 -116 + + + firUnit_1 : entity work.firUnit + port map ( + I_clock => SC_clock, + I_reset => SC_reset, + I_inputSample => SC_inputSample, + I_inputSampleValid => SC_inputSampleValid, + O_filteredSample => SC_filteredSample, + O_filteredSampleValid => SC_filteredSampleValid); + +end architecture archi_tb_firUnit; diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.dcp b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.dcp new file mode 100644 index 0000000000000000000000000000000000000000..1df5ec10a4ff9e7c1b2e8c55ee8f41698941ff5f GIT binary patch literal 12528 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 literal 0 HcmV?d00001 diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.upgrade_log b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.upgrade_log new file mode 100644 index 0000000..6bd8d52 --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.upgrade_log @@ -0,0 +1,332 @@ +Copyright 1986-2015 Xilinx, Inc. All Rights Reserved. +------------------------------------------------------------------------------------ +| Tool Version : Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015 +| Date : Thu Jan 21 16:58:14 2016 +| Host : WK86 running 64-bit Service Pack 1 (build 7601) +| Command : upgrade_ip +| Device : xc7a200tsbg484-1 +------------------------------------------------------------------------------------ + +Upgrade Log for IP 'clk_wiz_0' + +1. Summary +---------- + +CAUTION (success, with warnings) in the update of clk_wiz_0 (xilinx.com:ip:clk_wiz:5.2) to current project options. + +After upgrade, an IP may have parameter and port differences compared to the original customization. Please review the parameters within the IP customization GUI to ensure proper functionality. Also, please review the updated IP instantiation template to ensure proper connectivity, and update your design if required. + +2. Warnings +----------- + +WARNING: The upgraded user parameter set contained parameters that could not be mapped on to the upgraded IP. When checking the upgrade script, note that parameter names are case sensitive. + + +3. Interface Information +------------------------ + +Detected external interface differences while upgrading IP 'clk_wiz_0'. + + +-upgrade has removed interface 'clock_CLK_OUT2' +-upgrade has removed interface 'clock_CLK_OUT3' +-upgrade has removed interface 'clock_CLK_OUT4' +-upgrade has added interface 'reset' + +4. Connection Warnings +---------------------- + +Detected external port differences while upgrading IP 'clk_wiz_0'. These changes may impact your design. + + +-upgrade has removed port 'clk_out2' +-upgrade has removed port 'clk_out3' +-upgrade has removed port 'clk_out4' +-upgrade has added port 'reset' + +5. Customization warnings +------------------------- + +WARNING: Value 'sys_clock' is out of the range for parameter 'CLK IN1 BOARD INTERFACE(CLK_IN1_BOARD_INTERFACE)' for IP 'clk_wiz_0' . Valid values are - Custom, sys_diff_clock + +WARNING: Customization errors found on 'clk_wiz_0'. Restoring to previous valid configuration. + +WARNING: An attempt to modify the value of disabled parameter 'CLKOUT2_REQUESTED_OUT_FREQ' from '200.000' to '100.000' has been ignored for IP 'clk_wiz_0' + +WARNING: An attempt to modify the value of disabled parameter 'CLKOUT3_REQUESTED_OUT_FREQ' from '12.000' to '100.000' has been ignored for IP 'clk_wiz_0' + +WARNING: An attempt to modify the value of disabled parameter 'CLKOUT4_REQUESTED_OUT_FREQ' from '50.000' to '100.000' has been ignored for IP 'clk_wiz_0' + + +6. Debug Commands +----------------- + + The following debug information can be passed to Vivado as Tcl commands, +in order to validate or debug the output of the upgrade flow. + Please consult the warnings from the previous sections, and alter or remove +the configuration parameter(s) which caused the warning; then execute the Tcl +commands, and use the IP Customization GUI to verify the IP configuration. + +create_ip -vlnv xilinx.com:ip:clk_wiz:5.2 -user_name clk_wiz_0 +set_property -dict "\ + CONFIG.CALC_DONE empty \ + CONFIG.CDDCDONE_PORT cddcdone \ + CONFIG.CDDCREQ_PORT cddcreq \ + CONFIG.CLKFB_IN_N_PORT clkfb_in_n \ + CONFIG.CLKFB_IN_PORT clkfb_in \ + CONFIG.CLKFB_IN_P_PORT clkfb_in_p \ + CONFIG.CLKFB_IN_SIGNALING SINGLE \ + CONFIG.CLKFB_OUT_N_PORT clkfb_out_n \ + CONFIG.CLKFB_OUT_PORT clkfb_out \ + CONFIG.CLKFB_OUT_P_PORT clkfb_out_p \ + CONFIG.CLKFB_STOPPED_PORT clkfb_stopped \ + CONFIG.CLKIN1_JITTER_PS 100.0 \ + CONFIG.CLKIN1_UI_JITTER 0.010 \ + CONFIG.CLKIN2_JITTER_PS 100.0 \ + CONFIG.CLKIN2_UI_JITTER 0.010 \ + CONFIG.CLKOUT1_DRIVES BUFG \ + CONFIG.CLKOUT1_JITTER 151.366 \ + CONFIG.CLKOUT1_PHASE_ERROR 132.063 \ + CONFIG.CLKOUT1_REQUESTED_DUTY_CYCLE 50.000 \ + CONFIG.CLKOUT1_REQUESTED_OUT_FREQ 100.000 \ + CONFIG.CLKOUT1_REQUESTED_PHASE 0.000 \ + CONFIG.CLKOUT1_SEQUENCE_NUMBER 1 \ + CONFIG.CLKOUT1_USED true \ + CONFIG.CLKOUT2_DRIVES BUFG \ + CONFIG.CLKOUT2_JITTER 132.221 \ + CONFIG.CLKOUT2_PHASE_ERROR 132.063 \ + CONFIG.CLKOUT2_REQUESTED_DUTY_CYCLE 50.000 \ + CONFIG.CLKOUT2_REQUESTED_OUT_FREQ 200.000 \ + CONFIG.CLKOUT2_REQUESTED_PHASE 0.000 \ + CONFIG.CLKOUT2_SEQUENCE_NUMBER 1 \ + CONFIG.CLKOUT2_USED true \ + CONFIG.CLKOUT3_DRIVES BUFG \ + CONFIG.CLKOUT3_JITTER 231.952 \ + CONFIG.CLKOUT3_PHASE_ERROR 132.063 \ + CONFIG.CLKOUT3_REQUESTED_DUTY_CYCLE 50.000 \ + CONFIG.CLKOUT3_REQUESTED_OUT_FREQ 12.000 \ + CONFIG.CLKOUT3_REQUESTED_PHASE 0.000 \ + CONFIG.CLKOUT3_SEQUENCE_NUMBER 1 \ + CONFIG.CLKOUT3_USED true \ + CONFIG.CLKOUT4_DRIVES BUFG \ + CONFIG.CLKOUT4_JITTER 174.353 \ + CONFIG.CLKOUT4_PHASE_ERROR 132.063 \ + CONFIG.CLKOUT4_REQUESTED_DUTY_CYCLE 50.000 \ + CONFIG.CLKOUT4_REQUESTED_OUT_FREQ 50.000 \ + CONFIG.CLKOUT4_REQUESTED_PHASE 0.000 \ + CONFIG.CLKOUT4_SEQUENCE_NUMBER 1 \ + CONFIG.CLKOUT4_USED true \ + CONFIG.CLKOUT5_DRIVES BUFG \ + CONFIG.CLKOUT5_JITTER 0.0 \ + CONFIG.CLKOUT5_PHASE_ERROR 0.0 \ + CONFIG.CLKOUT5_REQUESTED_DUTY_CYCLE 50.000 \ + CONFIG.CLKOUT5_REQUESTED_OUT_FREQ 100.000 \ + CONFIG.CLKOUT5_REQUESTED_PHASE 0.000 \ + CONFIG.CLKOUT5_SEQUENCE_NUMBER 1 \ + CONFIG.CLKOUT5_USED false \ + CONFIG.CLKOUT6_DRIVES BUFG \ + CONFIG.CLKOUT6_JITTER 0.0 \ + CONFIG.CLKOUT6_PHASE_ERROR 0.0 \ + CONFIG.CLKOUT6_REQUESTED_DUTY_CYCLE 50.000 \ + CONFIG.CLKOUT6_REQUESTED_OUT_FREQ 100.000 \ + CONFIG.CLKOUT6_REQUESTED_PHASE 0.000 \ + CONFIG.CLKOUT6_SEQUENCE_NUMBER 1 \ + CONFIG.CLKOUT6_USED false \ + CONFIG.CLKOUT7_DRIVES BUFG \ + CONFIG.CLKOUT7_JITTER 0.0 \ + CONFIG.CLKOUT7_PHASE_ERROR 0.0 \ + CONFIG.CLKOUT7_REQUESTED_DUTY_CYCLE 50.000 \ + CONFIG.CLKOUT7_REQUESTED_OUT_FREQ 100.000 \ + CONFIG.CLKOUT7_REQUESTED_PHASE 0.000 \ + CONFIG.CLKOUT7_SEQUENCE_NUMBER 1 \ + CONFIG.CLKOUT7_USED false \ + CONFIG.CLKOUTPHY_REQUESTED_FREQ 600.000 \ + CONFIG.CLK_IN1_BOARD_INTERFACE sys_clock \ + CONFIG.CLK_IN2_BOARD_INTERFACE Custom \ + CONFIG.CLK_IN_SEL_PORT clk_in_sel \ + CONFIG.CLK_OUT1_PORT clk_out1 \ + CONFIG.CLK_OUT1_USE_FINE_PS_GUI false \ + CONFIG.CLK_OUT2_PORT clk_out2 \ + CONFIG.CLK_OUT2_USE_FINE_PS_GUI false \ + CONFIG.CLK_OUT3_PORT clk_out3 \ + CONFIG.CLK_OUT3_USE_FINE_PS_GUI false \ + CONFIG.CLK_OUT4_PORT clk_out4 \ + CONFIG.CLK_OUT4_USE_FINE_PS_GUI false \ + CONFIG.CLK_OUT5_PORT clk_out5 \ + CONFIG.CLK_OUT5_USE_FINE_PS_GUI false \ + CONFIG.CLK_OUT6_PORT clk_out6 \ + CONFIG.CLK_OUT6_USE_FINE_PS_GUI false \ + CONFIG.CLK_OUT7_PORT clk_out7 \ + CONFIG.CLK_OUT7_USE_FINE_PS_GUI false \ + CONFIG.CLK_VALID_PORT CLK_VALID \ + CONFIG.CLOCK_MGR_TYPE auto \ + CONFIG.Component_Name clk_wiz_0 \ + CONFIG.DADDR_PORT daddr \ + CONFIG.DCLK_PORT dclk \ + CONFIG.DEN_PORT den \ + CONFIG.DIFF_CLK_IN1_BOARD_INTERFACE Custom \ + CONFIG.DIFF_CLK_IN2_BOARD_INTERFACE Custom \ + CONFIG.DIN_PORT din \ + CONFIG.DOUT_PORT dout \ + CONFIG.DRDY_PORT drdy \ + CONFIG.DWE_PORT dwe \ + CONFIG.ENABLE_CDDC false \ + CONFIG.ENABLE_CLKOUTPHY false \ + CONFIG.FEEDBACK_SOURCE FDBK_AUTO \ + CONFIG.INPUT_CLK_STOPPED_PORT input_clk_stopped \ + CONFIG.INPUT_MODE frequency \ + CONFIG.INTERFACE_SELECTION Enable_AXI \ + CONFIG.IN_FREQ_UNITS Units_MHz \ + CONFIG.IN_JITTER_UNITS Units_UI \ + CONFIG.JITTER_OPTIONS UI \ + CONFIG.JITTER_SEL No_Jitter \ + CONFIG.LOCKED_PORT locked \ + CONFIG.MMCM_BANDWIDTH OPTIMIZED \ + CONFIG.MMCM_CLKFBOUT_MULT_F 6.000 \ + CONFIG.MMCM_CLKFBOUT_PHASE 0.000 \ + CONFIG.MMCM_CLKFBOUT_USE_FINE_PS false \ + CONFIG.MMCM_CLKIN1_PERIOD 10.0 \ + CONFIG.MMCM_CLKIN2_PERIOD 10.0 \ + CONFIG.MMCM_CLKOUT0_DIVIDE_F 6.000 \ + CONFIG.MMCM_CLKOUT0_DUTY_CYCLE 0.500 \ + CONFIG.MMCM_CLKOUT0_PHASE 0.000 \ + CONFIG.MMCM_CLKOUT0_USE_FINE_PS false \ + CONFIG.MMCM_CLKOUT1_DIVIDE 3 \ + CONFIG.MMCM_CLKOUT1_DUTY_CYCLE 0.500 \ + CONFIG.MMCM_CLKOUT1_PHASE 0.000 \ + CONFIG.MMCM_CLKOUT1_USE_FINE_PS false \ + CONFIG.MMCM_CLKOUT2_DIVIDE 50 \ + CONFIG.MMCM_CLKOUT2_DUTY_CYCLE 0.500 \ + CONFIG.MMCM_CLKOUT2_PHASE 0.000 \ + CONFIG.MMCM_CLKOUT2_USE_FINE_PS false \ + CONFIG.MMCM_CLKOUT3_DIVIDE 12 \ + CONFIG.MMCM_CLKOUT3_DUTY_CYCLE 0.500 \ + CONFIG.MMCM_CLKOUT3_PHASE 0.000 \ + CONFIG.MMCM_CLKOUT3_USE_FINE_PS false \ + CONFIG.MMCM_CLKOUT4_CASCADE false \ + CONFIG.MMCM_CLKOUT4_DIVIDE 1 \ + CONFIG.MMCM_CLKOUT4_DUTY_CYCLE 0.500 \ + CONFIG.MMCM_CLKOUT4_PHASE 0.000 \ + CONFIG.MMCM_CLKOUT4_USE_FINE_PS false \ + CONFIG.MMCM_CLKOUT5_DIVIDE 1 \ + CONFIG.MMCM_CLKOUT5_DUTY_CYCLE 0.500 \ + CONFIG.MMCM_CLKOUT5_PHASE 0.000 \ + CONFIG.MMCM_CLKOUT5_USE_FINE_PS false \ + CONFIG.MMCM_CLKOUT6_DIVIDE 1 \ + CONFIG.MMCM_CLKOUT6_DUTY_CYCLE 0.500 \ + CONFIG.MMCM_CLKOUT6_PHASE 0.000 \ + CONFIG.MMCM_CLKOUT6_USE_FINE_PS false \ + CONFIG.MMCM_CLOCK_HOLD false \ + CONFIG.MMCM_COMPENSATION ZHOLD \ + CONFIG.MMCM_DIVCLK_DIVIDE 1 \ + CONFIG.MMCM_NOTES None \ + CONFIG.MMCM_REF_JITTER1 0.010 \ + CONFIG.MMCM_REF_JITTER2 0.010 \ + CONFIG.MMCM_STARTUP_WAIT false \ + CONFIG.NUM_OUT_CLKS 4 \ + CONFIG.OVERRIDE_MMCM false \ + CONFIG.OVERRIDE_PLL false \ + CONFIG.PHASE_DUTY_CONFIG false \ + CONFIG.PLATFORM UNKNOWN \ + CONFIG.PLL_BANDWIDTH OPTIMIZED \ + CONFIG.PLL_CLKFBOUT_MULT 4 \ + CONFIG.PLL_CLKFBOUT_PHASE 0.000 \ + CONFIG.PLL_CLKIN_PERIOD 10.000 \ + CONFIG.PLL_CLKOUT0_DIVIDE 1 \ + CONFIG.PLL_CLKOUT0_DUTY_CYCLE 0.500 \ + CONFIG.PLL_CLKOUT0_PHASE 0.000 \ + CONFIG.PLL_CLKOUT1_DIVIDE 1 \ + CONFIG.PLL_CLKOUT1_DUTY_CYCLE 0.500 \ + CONFIG.PLL_CLKOUT1_PHASE 0.000 \ + CONFIG.PLL_CLKOUT2_DIVIDE 1 \ + CONFIG.PLL_CLKOUT2_DUTY_CYCLE 0.500 \ + CONFIG.PLL_CLKOUT2_PHASE 0.000 \ + CONFIG.PLL_CLKOUT3_DIVIDE 1 \ + CONFIG.PLL_CLKOUT3_DUTY_CYCLE 0.500 \ + CONFIG.PLL_CLKOUT3_PHASE 0.000 \ + CONFIG.PLL_CLKOUT4_DIVIDE 1 \ + CONFIG.PLL_CLKOUT4_DUTY_CYCLE 0.500 \ + CONFIG.PLL_CLKOUT4_PHASE 0.000 \ + CONFIG.PLL_CLKOUT5_DIVIDE 1 \ + CONFIG.PLL_CLKOUT5_DUTY_CYCLE 0.500 \ + CONFIG.PLL_CLKOUT5_PHASE 0.000 \ + CONFIG.PLL_CLK_FEEDBACK CLKFBOUT \ + CONFIG.PLL_COMPENSATION SYSTEM_SYNCHRONOUS \ + CONFIG.PLL_DIVCLK_DIVIDE 1 \ + CONFIG.PLL_NOTES None \ + CONFIG.PLL_REF_JITTER 0.010 \ + CONFIG.POWER_DOWN_PORT power_down \ + CONFIG.PRIMARY_PORT clk_in1 \ + CONFIG.PRIMITIVE MMCM \ + CONFIG.PRIMTYPE_SEL mmcm_adv \ + CONFIG.PRIM_IN_FREQ 100.000 \ + CONFIG.PRIM_IN_JITTER 0.010 \ + CONFIG.PRIM_IN_TIMEPERIOD 10.000 \ + CONFIG.PRIM_SOURCE Single_ended_clock_capable_pin \ + CONFIG.PSCLK_PORT psclk \ + CONFIG.PSDONE_PORT psdone \ + CONFIG.PSEN_PORT psen \ + CONFIG.PSINCDEC_PORT psincdec \ + CONFIG.RELATIVE_INCLK REL_PRIMARY \ + CONFIG.RESET_BOARD_INTERFACE Custom \ + CONFIG.RESET_PORT reset \ + CONFIG.RESET_TYPE ACTIVE_HIGH \ + CONFIG.SECONDARY_IN_FREQ 100.000 \ + CONFIG.SECONDARY_IN_JITTER 0.010 \ + CONFIG.SECONDARY_IN_TIMEPERIOD 10.000 \ + CONFIG.SECONDARY_PORT clk_in2 \ + CONFIG.SECONDARY_SOURCE Single_ended_clock_capable_pin \ + CONFIG.SS_MODE CENTER_HIGH \ + CONFIG.SS_MOD_FREQ 250 \ + CONFIG.SS_MOD_TIME 0.004 \ + CONFIG.STATUS_PORT STATUS \ + CONFIG.SUMMARY_STRINGS empty \ + CONFIG.USE_BOARD_FLOW false \ + CONFIG.USE_CLKFB_STOPPED false \ + CONFIG.USE_CLK_VALID false \ + CONFIG.USE_CLOCK_SEQUENCING false \ + CONFIG.USE_DYN_PHASE_SHIFT false \ + CONFIG.USE_DYN_RECONFIG false \ + CONFIG.USE_FREEZE false \ + CONFIG.USE_FREQ_SYNTH true \ + CONFIG.USE_INCLK_STOPPED false \ + CONFIG.USE_INCLK_SWITCHOVER false \ + CONFIG.USE_LOCKED true \ + CONFIG.USE_MAX_I_JITTER false \ + CONFIG.USE_MIN_O_JITTER false \ + CONFIG.USE_MIN_POWER false \ + CONFIG.USE_PHASE_ALIGNMENT true \ + CONFIG.USE_POWER_DOWN false \ + CONFIG.USE_RESET false \ + CONFIG.USE_SAFE_CLOCK_STARTUP false \ + CONFIG.USE_SPREAD_SPECTRUM false \ + CONFIG.USE_STATUS false " [get_ips clk_wiz_0] + + + + + + + +Copyright 1986-2015 Xilinx, Inc. All Rights Reserved. +------------------------------------------------------------------------------------ +| Tool Version : Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015 +| Date : Thu Jan 21 15:55:32 2016 +| Host : WK86 running 64-bit Service Pack 1 (build 7601) +| Command : upgrade_ip +| Device : xc7a200tsbg484-1 +------------------------------------------------------------------------------------ + +Upgrade Log for IP 'clk_wiz_0' + +1. Summary +---------- + +SUCCESS in the upgrade of clk_wiz_0 from xilinx.com:ip:clk_wiz:5.1 (Rev. 7) to xilinx.com:ip:clk_wiz:5.2 + +2. Upgrade messages +------------------- + +Removed parameter PRIM_IN_FREQ +Added parameter PRIM_IN_FREQ with value 100.000 (source 'default') + diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.v b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.v new file mode 100644 index 0000000..2e3a203 --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.v @@ -0,0 +1,100 @@ +// file: clk_wiz_0.v +// +// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//---------------------------------------------------------------------------- +// User entered comments +//---------------------------------------------------------------------------- +// None +// +//---------------------------------------------------------------------------- +// Output Output Phase Duty Cycle Pk-to-Pk Phase +// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps) +//---------------------------------------------------------------------------- +// CLK_OUT1___100.000______0.000______50.0______151.366____132.063 +// CLK_OUT2___200.000______0.000______50.0______132.221____132.063 +// CLK_OUT3____12.000______0.000______50.0______231.952____132.063 +// CLK_OUT4____50.000______0.000______50.0______174.353____132.063 +// +//---------------------------------------------------------------------------- +// Input Clock Freq (MHz) Input Jitter (UI) +//---------------------------------------------------------------------------- +// __primary_________100.000____________0.010 + +`timescale 1ps/1ps + +(* CORE_GENERATION_INFO = "clk_wiz_0,clk_wiz_v5_2_0,{component_name=clk_wiz_0,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=4,clkin1_period=10.0,clkin2_period=10.0,use_power_down=false,use_reset=true,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}" *) + +module clk_wiz_0 + ( + // Clock in ports + input clk_in1, + // Clock out ports + output clk_out1, + output clk_out2, + output clk_out3, + output clk_out4, + // Status and control signals + input reset, + output locked + ); + + clk_wiz_0_clk_wiz inst + ( + // Clock in ports + .clk_in1(clk_in1), + // Clock out ports + .clk_out1(clk_out1), + .clk_out2(clk_out2), + .clk_out3(clk_out3), + .clk_out4(clk_out4), + // Status and control signals + .reset(reset), + .locked(locked) + ); + +endmodule diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.vho b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.vho new file mode 100644 index 0000000..c6b126b --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.vho @@ -0,0 +1,103 @@ +-- +-- (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved. +-- +-- This file contains confidential and proprietary information +-- of Xilinx, Inc. and is protected under U.S. and +-- international copyright and other intellectual property +-- laws. +-- +-- DISCLAIMER +-- This disclaimer is not a license and does not grant any +-- rights to the materials distributed herewith. Except as +-- otherwise provided in a valid license issued to you by +-- Xilinx, and to the maximum extent permitted by applicable +-- law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +-- WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +-- AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +-- BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +-- INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +-- (2) Xilinx shall not be liable (whether in contract or tort, +-- including negligence, or under any other theory of +-- liability) for any loss or damage of any kind or nature +-- related to, arising under or in connection with these +-- materials, including for any direct, or any indirect, +-- special, incidental, or consequential loss or damage +-- (including loss of data, profits, goodwill, or any type of +-- loss or damage suffered as a result of any action brought +-- by a third party) even if such damage or loss was +-- reasonably foreseeable or Xilinx had been advised of the +-- possibility of the same. +-- +-- CRITICAL APPLICATIONS +-- Xilinx products are not designed or intended to be fail- +-- safe, or for use in any application requiring fail-safe +-- performance, such as life-support or safety devices or +-- systems, Class III medical devices, nuclear facilities, +-- applications related to the deployment of airbags, or any +-- other applications that could lead to death, personal +-- injury, or severe property or environmental damage +-- (individually and collectively, "Critical +-- Applications"). Customer assumes the sole risk and +-- liability of any use of Xilinx products in Critical +-- Applications, subject only to applicable laws and +-- regulations governing limitations on product liability. +-- +-- THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +-- PART OF THIS FILE AT ALL TIMES. +-- +------------------------------------------------------------------------------ +-- User entered comments +------------------------------------------------------------------------------ +-- None +-- +------------------------------------------------------------------------------ +-- Output Output Phase Duty Cycle Pk-to-Pk Phase +-- Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps) +------------------------------------------------------------------------------ +-- CLK_OUT1___100.000______0.000______50.0______151.366____132.063 +-- CLK_OUT2___200.000______0.000______50.0______132.221____132.063 +-- CLK_OUT3____12.000______0.000______50.0______231.952____132.063 +-- CLK_OUT4____50.000______0.000______50.0______174.353____132.063 +-- +------------------------------------------------------------------------------ +-- Input Clock Freq (MHz) Input Jitter (UI) +------------------------------------------------------------------------------ +-- __primary_________100.000____________0.010 + + +-- The following code must appear in the VHDL architecture header: +------------- Begin Cut here for COMPONENT Declaration ------ COMP_TAG +component clk_wiz_0 +port + (-- Clock in ports + clk_in1 : in std_logic; + -- Clock out ports + clk_out1 : out std_logic; + clk_out2 : out std_logic; + clk_out3 : out std_logic; + clk_out4 : out std_logic; + -- Status and control signals + reset : in std_logic; + locked : out std_logic + ); +end component; + +-- COMP_TAG_END ------ End COMPONENT Declaration ------------ +-- The following code must appear in the VHDL architecture +-- body. Substitute your own instance name and net names. +------------- Begin Cut here for INSTANTIATION Template ----- INST_TAG +your_instance_name : clk_wiz_0 + port map ( + + -- Clock in ports + clk_in1 => clk_in1, + -- Clock out ports + clk_out1 => clk_out1, + clk_out2 => clk_out2, + clk_out3 => clk_out3, + clk_out4 => clk_out4, + -- Status and control signals + reset => reset, + locked => locked + ); +-- INST_TAG_END ------ End INSTANTIATION Template ------------ diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xci b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xci new file mode 100644 index 0000000..79f1c0a --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xci @@ -0,0 +1,525 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:design xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>xilinx.com</spirit:vendor> + <spirit:library>xci</spirit:library> + <spirit:name>unknown</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:componentInstances> + <spirit:componentInstance> + <spirit:instanceName>clk_wiz_0</spirit:instanceName> + <spirit:componentRef spirit:vendor="xilinx.com" spirit:library="ip" spirit:name="clk_wiz" spirit:version="5.2"/> + <spirit:configurableElementValues> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CDDCDONE_PORT">cddcdone</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CDDCREQ_PORT">cddcreq</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_N_PORT">clkfb_in_n</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_PORT">clkfb_in</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_P_PORT">clkfb_in_p</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING">SINGLE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_OUT_N_PORT">clkfb_out_n</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_OUT_PORT">clkfb_out</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_OUT_P_PORT">clkfb_out_p</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKFB_STOPPED_PORT">clkfb_stopped</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKIN1_JITTER_PS">100.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKIN2_JITTER_PS">100.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT1_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_OUT_FREQ">200.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_OUT_FREQ">200.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT2_USED">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_OUT_FREQ">12.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_OUT_FREQ">12.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT3_USED">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_DUTY_CYCLE">50.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_OUT_FREQ">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_OUT_FREQ">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT4_USED">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT5_USED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT6_USED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUT7_USED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLKOUTPHY_MODE">VCO</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_IN_SEL_PORT">clk_in_sel</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT1_PORT">clk_out1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT2_PORT">clk_out2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT3_PORT">clk_out3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT4_PORT">clk_out4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT5_PORT">clk_out5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT6_PORT">clk_out6</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_OUT7_PORT">clk_out7</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLK_VALID_PORT">CLK_VALID</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_CLOCK_MGR_TYPE">NA</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DADDR_PORT">daddr</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DCLK_PORT">dclk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DEN_PORT">den</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DIN_PORT">din</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DOUT_PORT">dout</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DRDY_PORT">drdy</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_DWE_PORT">dwe</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_ENABLE_CLKOUTPHY">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_FEEDBACK_SOURCE">FDBK_AUTO</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_HAS_CDDC">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INCLK_SUM_ROW0">Input Clock Freq (MHz) Input Jitter (UI)</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INCLK_SUM_ROW1">__primary_________100.000____________0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INCLK_SUM_ROW2">no_secondary_input_clock </spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INPUT_CLK_STOPPED_PORT">input_clk_stopped</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_INTERFACE_SELECTION">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_IN_FREQ_UNITS">Units_MHz</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_JITTER_SEL">No_Jitter</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_LOCKED_PORT">locked</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_MULT_F">6.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKIN1_PERIOD">10.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKIN2_PERIOD">10.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DIVIDE_F">6.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT0_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_DIVIDE">3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT1_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_DIVIDE">50</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT2_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_DIVIDE">12</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT3_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_CASCADE">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT4_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT5_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLKOUT6_USE_FINE_PS">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_CLOCK_HOLD">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_COMPENSATION">ZHOLD</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_DIVCLK_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_REF_JITTER1">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_REF_JITTER2">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_MMCM_STARTUP_WAIT">FALSE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_NUM_OUT_CLKS">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW0A"> Output Output Phase Duty Cycle Pk-to-Pk Phase</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW0B"> Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW1">CLK_OUT1___100.000______0.000______50.0______151.366____132.063</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW2">CLK_OUT2___200.000______0.000______50.0______132.221____132.063</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW3">CLK_OUT3____12.000______0.000______50.0______231.952____132.063</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW4">CLK_OUT4____50.000______0.000______50.0______174.353____132.063</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW5">no_CLK_OUT5_output</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW6">no_CLK_OUT6_output</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW7">no_CLK_OUT7_output</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_MMCM">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_OVERRIDE_PLL">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLATFORM">UNKNOWN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKFBOUT_MULT">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKIN_PERIOD">1.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT0_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT0_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT1_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT2_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT3_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT4_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT4_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT5_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLKOUT5_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_CLK_FEEDBACK">CLKFBOUT</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_COMPENSATION">SYSTEM_SYNCHRONOUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_DIVCLK_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_NOTES">No notes</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PLL_REF_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_POWER_DOWN_PORT">power_down</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIMARY_PORT">clk_in1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIMITIVE">MMCM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIMTYPE_SEL">AUTO</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_IN_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_IN_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_IN_TIMEPERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PRIM_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSCLK_PORT">psclk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSDONE_PORT">psdone</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSEN_PORT">psen</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_PSINCDEC_PORT">psincdec</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RESET_LOW">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_RESET_PORT">reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_IN_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_IN_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_IN_TIMEPERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_PORT">clk_in2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SECONDARY_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SS_MODE">CENTER_HIGH</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SS_MOD_PERIOD">4000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_SS_MOD_TIME">0.004</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_STATUS_PORT">STATUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH">11</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH">32</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKFB_STOPPED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKOUT1_BAR">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKOUT2_BAR">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKOUT3_BAR">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLKOUT4_BAR">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLK_VALID">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_CLOCK_SEQUENCING">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_DYN_RECONFIG">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FAST_SIMULATION">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FREEZE">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_FREQ_SYNTH">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_INCLK_STOPPED">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_LOCKED">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MAX_I_JITTER">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MIN_O_JITTER">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_MIN_POWER">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_POWER_DOWN">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_RESET">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.C_USE_STATUS">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="MODELPARAM_VALUE.c_component_name">clk_wiz_0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CALC_DONE">empty</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CDDCDONE_PORT">cddcdone</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CDDCREQ_PORT">cddcreq</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_N_PORT">clkfb_in_n</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_PORT">clkfb_in</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_P_PORT">clkfb_in_p</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_IN_SIGNALING">SINGLE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_OUT_N_PORT">clkfb_out_n</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_OUT_PORT">clkfb_out</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_OUT_P_PORT">clkfb_out_p</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKFB_STOPPED_PORT">clkfb_stopped</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN1_JITTER_PS">100.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN1_UI_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN2_JITTER_PS">100.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKIN2_UI_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_JITTER">151.366</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_PHASE_ERROR">132.063</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT1_USED">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_JITTER">132.221</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_PHASE_ERROR">132.063</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_OUT_FREQ">200.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT2_USED">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_JITTER">231.952</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_PHASE_ERROR">132.063</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_OUT_FREQ">12.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT3_USED">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_JITTER">174.353</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_PHASE_ERROR">132.063</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_OUT_FREQ">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT4_USED">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_JITTER">0.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_PHASE_ERROR">0.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT5_USED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_JITTER">0.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_PHASE_ERROR">0.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT6_USED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_DRIVES">BUFG</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_JITTER">0.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_PHASE_ERROR">0.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_DUTY_CYCLE">50.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_OUT_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_REQUESTED_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_SEQUENCE_NUMBER">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUT7_USED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLKOUTPHY_REQUESTED_FREQ">600.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_IN1_BOARD_INTERFACE">Custom</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_IN2_BOARD_INTERFACE">Custom</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_IN_SEL_PORT">clk_in_sel</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT1_PORT">clk_out1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT1_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT2_PORT">clk_out2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT2_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT3_PORT">clk_out3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT3_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT4_PORT">clk_out4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT4_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT5_PORT">clk_out5</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT5_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT6_PORT">clk_out6</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT6_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT7_PORT">clk_out7</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_OUT7_USE_FINE_PS_GUI">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLK_VALID_PORT">CLK_VALID</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.CLOCK_MGR_TYPE">auto</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.Component_Name">clk_wiz_0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DADDR_PORT">daddr</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DCLK_PORT">dclk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DEN_PORT">den</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DIFF_CLK_IN1_BOARD_INTERFACE">Custom</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DIFF_CLK_IN2_BOARD_INTERFACE">Custom</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DIN_PORT">din</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DOUT_PORT">dout</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DRDY_PORT">drdy</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.DWE_PORT">dwe</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_CDDC">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.ENABLE_CLKOUTPHY">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.FEEDBACK_SOURCE">FDBK_AUTO</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_CLK_STOPPED_PORT">input_clk_stopped</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INPUT_MODE">frequency</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.INTERFACE_SELECTION">Enable_AXI</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.IN_FREQ_UNITS">Units_MHz</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.IN_JITTER_UNITS">Units_UI</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.JITTER_OPTIONS">UI</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.JITTER_SEL">No_Jitter</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.LOCKED_PORT">locked</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F">6.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKIN1_PERIOD">10.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKIN2_PERIOD">10.0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F">6.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT0_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE">3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT1_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE">50</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT2_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_DIVIDE">12</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT3_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_CASCADE">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT4_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT5_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLKOUT6_USE_FINE_PS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_CLOCK_HOLD">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_COMPENSATION">ZHOLD</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_DIVCLK_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_REF_JITTER1">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_REF_JITTER2">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.MMCM_STARTUP_WAIT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.NUM_OUT_CLKS">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERRIDE_MMCM">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.OVERRIDE_PLL">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PHASE_DUTY_CONFIG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLATFORM">UNKNOWN</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_BANDWIDTH">OPTIMIZED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKFBOUT_MULT">4</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKFBOUT_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKIN_PERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT0_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT0_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT0_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT1_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT1_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT1_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT2_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT2_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT2_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT3_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT3_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT3_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT4_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT4_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT4_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT5_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT5_DUTY_CYCLE">0.500</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLKOUT5_PHASE">0.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_CLK_FEEDBACK">CLKFBOUT</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_COMPENSATION">SYSTEM_SYNCHRONOUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_DIVCLK_DIVIDE">1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_NOTES">None</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PLL_REF_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.POWER_DOWN_PORT">power_down</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIMARY_PORT">clk_in1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIMITIVE">MMCM</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIMTYPE_SEL">mmcm_adv</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_IN_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_IN_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_IN_TIMEPERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PRIM_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSCLK_PORT">psclk</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSDONE_PORT">psdone</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSEN_PORT">psen</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.PSINCDEC_PORT">psincdec</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RELATIVE_INCLK">REL_PRIMARY</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_BOARD_INTERFACE">Custom</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_PORT">reset</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.RESET_TYPE">ACTIVE_HIGH</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_IN_FREQ">100.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_IN_JITTER">0.010</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_IN_TIMEPERIOD">10.000</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_PORT">clk_in2</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SECONDARY_SOURCE">Single_ended_clock_capable_pin</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SS_MODE">CENTER_HIGH</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SS_MOD_FREQ">250</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SS_MOD_TIME">0.004</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.STATUS_PORT">STATUS</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.SUMMARY_STRINGS">empty</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_BOARD_FLOW">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_CLKFB_STOPPED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_CLK_VALID">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_CLOCK_SEQUENCING">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DYN_PHASE_SHIFT">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_DYN_RECONFIG">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_FREEZE">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_FREQ_SYNTH">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_INCLK_STOPPED">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_INCLK_SWITCHOVER">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_LOCKED">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_MAX_I_JITTER">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_MIN_O_JITTER">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_MIN_POWER">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_PHASE_ALIGNMENT">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_POWER_DOWN">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_RESET">true</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_SAFE_CLOCK_STARTUP">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_SPREAD_SPECTRUM">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PARAM_VALUE.USE_STATUS">false</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.ARCHITECTURE">artix7</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.BOARD"/> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.DEVICE">xc7a200t</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PACKAGE">sbg484</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.PREFHDL">VHDL</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SILICON_REVISION"/> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SIMULATOR_LANGUAGE">MIXED</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.SPEEDGRADE">-1</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.TEMPERATURE_GRADE">C</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_CUSTOMIZATION">TRUE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="PROJECT_PARAM.USE_RDI_GENERATION">TRUE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPCONTEXT">IP_Flow</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.IPREVISION">0</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.MANAGED">TRUE</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.OUTPUTDIR">.</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SELECTEDSIMMODEL"/> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SHAREDDIR">.</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SWVERSION">2015.3</spirit:configurableElementValue> + <spirit:configurableElementValue spirit:referenceId="RUNTIME_PARAM.SYNTHESISFLOW">OUT_OF_CONTEXT</spirit:configurableElementValue> + </spirit:configurableElementValues> + <spirit:vendorExtensions> + <xilinx:componentInstanceExtensions> + <xilinx:configElementInfos> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_JITTER" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_PHASE_ERROR" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_JITTER" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_PHASE_ERROR" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_USED" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_JITTER" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_PHASE_ERROR" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_USED" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_JITTER" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_PHASE_ERROR" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_USED" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT3_DIVIDE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_DIVCLK_DIVIDE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.NUM_OUT_CLKS" xilinx:valueSource="user"/> + </xilinx:configElementInfos> + </xilinx:componentInstanceExtensions> + </spirit:vendorExtensions> + </spirit:componentInstance> + </spirit:componentInstances> +</spirit:design> diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xdc b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xdc new file mode 100644 index 0000000..420a6de --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xdc @@ -0,0 +1,59 @@ +# file: clk_wiz_0.xdc +# +# (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +# Input clock periods. These duplicate the values entered for the +# input clocks. You can use these to time your system. If required +# commented constraints can be used in the top level xdc +#---------------------------------------------------------------- +# Connect to input port when clock capable pin is selected for input +create_clock -period 10.0 [get_ports clk_in1] +set_input_jitter [get_clocks -of_objects [get_ports clk_in1]] 0.10000000000000001 + + + diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xml b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xml new file mode 100644 index 0000000..66fd124 --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0.xml @@ -0,0 +1,4933 @@ +<?xml version="1.0" encoding="UTF-8"?> +<spirit:component xmlns:xilinx="http://www.xilinx.com" xmlns:spirit="http://www.spiritconsortium.org/XMLSchema/SPIRIT/1685-2009" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + <spirit:vendor>xilinx.com</spirit:vendor> + <spirit:library>customized_ip</spirit:library> + <spirit:name>clk_wiz_0</spirit:name> + <spirit:version>1.0</spirit:version> + <spirit:busInterfaces> + <spirit:busInterface> + <spirit:name>s_axi_lite</spirit:name> + <spirit:displayName>S_AXI_LITE</spirit:displayName> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="aximm" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="aximm_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>ARADDR</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_araddr</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>ARREADY</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_arready</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>ARVALID</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_arvalid</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>AWADDR</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_awaddr</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>AWREADY</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_awready</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>AWVALID</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_awvalid</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>BREADY</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_bready</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>BRESP</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_bresp</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>BVALID</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_bvalid</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>RDATA</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_rdata</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>RREADY</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_rready</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>RRESP</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_rresp</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>RVALID</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_rvalid</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>WDATA</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_wdata</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>WREADY</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_wready</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>WSTRB</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_wstrb</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>WVALID</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_wvalid</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.s_axi_lite" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>s_axi_aclk</spirit:name> + <spirit:displayName>s_axi_aclk</spirit:displayName> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_aclk</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>ASSOCIATED_BUSIF</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.ASSOCIATED_BUSIF">s_axi_lite</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ASSOCIATED_RESET</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_ACLK.ASSOCIATED_RESET">aresetn</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.s_axi_aclk" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>s_axi_resetn</spirit:name> + <spirit:displayName>S_AXI_RESETN</spirit:displayName> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>RST</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>s_axi_aresetn</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>ASSOCIATED_RESET</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_RESETN.ASSOCIATED_RESET">aresetn</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>POLARITY</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.S_AXI_RESETN.POLARITY">ACTIVE_LOW</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.s_axi_resetn" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>intr</spirit:name> + <spirit:displayName>Intr</spirit:displayName> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="interrupt" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="interrupt_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>INTERRUPT</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>ip2intc_irpt</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.intr" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLK_IN1</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_in1</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN1.BOARD.ASSOCIATED_PARAM">CLK_IN1_BOARD_INTERFACE</spirit:value> + <spirit:vendorExtensions> + <xilinx:parameterInfo> + <xilinx:enablement> + <xilinx:presence>required</xilinx:presence> + </xilinx:enablement> + </xilinx:parameterInfo> + </spirit:vendorExtensions> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_IN1" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Single_ended_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Single_ended_non_clock_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="No_buffer") or (spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Global_buffer"))">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>CLK_IN1_D</spirit:name> + <spirit:displayName>CLK_IN1_D</spirit:displayName> + <spirit:description>Differential Clock input</spirit:description> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK_N</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_in1_n</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK_P</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_in1_p</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLK_IN1_D.BOARD.ASSOCIATED_PARAM">CLK_IN1_BOARD_INTERFACE</spirit:value> + <spirit:vendorExtensions> + <xilinx:parameterInfo> + <xilinx:enablement> + <xilinx:presence>required</xilinx:presence> + </xilinx:enablement> + </xilinx:parameterInfo> + </spirit:vendorExtensions> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLK_IN1_D" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Differential_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Differential_non_clock_pin"))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLK_IN2</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_in2</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_IN2.BOARD.ASSOCIATED_PARAM">CLK_IN2_BOARD_INTERFACE</spirit:value> + <spirit:vendorExtensions> + <xilinx:parameterInfo> + <xilinx:enablement> + <xilinx:presence>required</xilinx:presence> + </xilinx:enablement> + </xilinx:parameterInfo> + </spirit:vendorExtensions> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_IN2" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Single_ended_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Single_ended_non_clock_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="No_buffer") or (spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Global_buffer")) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER'))=1))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>CLK_IN2_D</spirit:name> + <spirit:displayName>CLK_IN2_D</spirit:displayName> + <spirit:description>Differential Clock input</spirit:description> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK_N</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_in2_n</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK_P</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_in2_p</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLK_IN2_D.BOARD.ASSOCIATED_PARAM">CLK_IN2_BOARD_INTERFACE</spirit:value> + <spirit:vendorExtensions> + <xilinx:parameterInfo> + <xilinx:enablement> + <xilinx:presence>required</xilinx:presence> + </xilinx:enablement> + </xilinx:parameterInfo> + </spirit:vendorExtensions> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLK_IN2_D" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Differential_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Differential_non_clock_pin")) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER'))=1))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLKFB_IN</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clkfb_in</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLKFB_IN" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))!=1) or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO_OFFCHIP") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))!="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>CLKFB_IN_D</spirit:name> + <spirit:displayName>CLKFB_IN_D</spirit:displayName> + <spirit:description>Differential Feedback Clock input</spirit:description> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK_N</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clkfb_in_n</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK_P</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clkfb_in_p</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLKFB_IN_D" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLK_OUT1</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_out1</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>FREQ_HZ</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.FREQ_HZ">100000000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT1.ASSOCIATED_MMCM_LOCK">locked</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLK_OUT2</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_out2</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>FREQ_HZ</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.FREQ_HZ">100000000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT2.ASSOCIATED_MMCM_LOCK">locked</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT2" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT2_USED'))=1)">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLK_OUT3</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_out3</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>FREQ_HZ</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.FREQ_HZ">100000000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT3.ASSOCIATED_MMCM_LOCK">locked</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT3" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT3_USED'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM'))=0)">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLK_OUT4</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_out4</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>FREQ_HZ</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.FREQ_HZ">100000000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT4.ASSOCIATED_MMCM_LOCK">locked</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT4" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT4_USED'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM'))=0)">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLK_OUT5</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_out5</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>FREQ_HZ</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT5.FREQ_HZ">100000000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT5.ASSOCIATED_MMCM_LOCK">locked</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT5" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT5_USED'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLK_OUT6</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_out6</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>FREQ_HZ</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT6.FREQ_HZ">100000000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT6.ASSOCIATED_MMCM_LOCK">locked</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT6" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT6_USED'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLK_OUT7</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clk_out7</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>FREQ_HZ</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT7.FREQ_HZ">100000000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ASSOCIATED_MMCM_LOCK</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.CLOCK_CLK_OUT7.ASSOCIATED_MMCM_LOCK">locked</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLK_OUT7" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT7_USED'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>clock_CLKFB_OUT</spirit:name> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="clock_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clkfb_out</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.clock_CLKFB_OUT" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))!=1) or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO_OFFCHIP") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))!="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>CLKFB_OUT_D</spirit:name> + <spirit:displayName>CLKFB_OUT_D</spirit:displayName> + <spirit:description>Differential Feeback Clock Output</spirit:description> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="diff_clock_rtl" spirit:version="1.0"/> + <spirit:master/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK_N</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clkfb_out_n</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>CLK_P</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>clkfb_out_p</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.CLKFB_OUT_D" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>reset</spirit:name> + <spirit:displayName>reset</spirit:displayName> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>RST</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>reset</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>POLARITY</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.RESET.POLARITY">ACTIVE_HIGH</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>BOARD.ASSOCIATED_PARAM</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.RESET.BOARD.ASSOCIATED_PARAM">RESET_BOARD_INTERFACE</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.reset" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_RESET'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_RESET_LOW'))=0) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>resetn</spirit:name> + <spirit:displayName>resetn</spirit:displayName> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="signal" spirit:name="reset_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>RST</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>resetn</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:parameters> + <spirit:parameter> + <spirit:name>POLARITY</spirit:name> + <spirit:value spirit:id="BUSIFPARAM_VALUE.RESETN.POLARITY">ACTIVE_LOW</spirit:value> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.resetn" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_RESET'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_RESET_LOW'))=1) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + <spirit:busInterface> + <spirit:name>s_drp</spirit:name> + <spirit:displayName>s_drp</spirit:displayName> + <spirit:description>Slave DRP Port</spirit:description> + <spirit:busType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="drp" spirit:version="1.0"/> + <spirit:abstractionType spirit:vendor="xilinx.com" spirit:library="interface" spirit:name="drp_rtl" spirit:version="1.0"/> + <spirit:slave/> + <spirit:portMaps> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>DADDR</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>daddr</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>DEN</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>den</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>DI</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>din</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>DO</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>dout</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>DRDY</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>drdy</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + <spirit:portMap> + <spirit:logicalPort> + <spirit:name>DWE</spirit:name> + </spirit:logicalPort> + <spirit:physicalPort> + <spirit:name>dwe</spirit:name> + </spirit:physicalPort> + </spirit:portMap> + </spirit:portMaps> + <spirit:vendorExtensions> + <xilinx:busInterfaceInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="BUSIF_ENABLEMENT.s_drp" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_RECONFIG')) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:busInterfaceInfo> + </spirit:vendorExtensions> + </spirit:busInterface> + </spirit:busInterfaces> + <spirit:model> + <spirit:views> + <spirit:view> + <spirit:name>xilinx_vhdlinstantiationtemplate</spirit:name> + <spirit:displayName>VHDL Instantiation Template</spirit:displayName> + <spirit:envIdentifier>vhdlSource:vivado.xilinx.com:synthesis.template</spirit:envIdentifier> + <spirit:language>vhdl</spirit:language> + <spirit:fileSetRef> + <spirit:localName>xilinx_vhdlinstantiationtemplate_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>df5bfb27</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>5</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>893de65f</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Fri Jan 22 01:11:32 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>StaleAtRelink</spirit:name> + <spirit:value>false</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_anylanguagesynthesis</spirit:name> + <spirit:displayName>Synthesis</spirit:displayName> + <spirit:envIdentifier>:vivado.xilinx.com:synthesis</spirit:envIdentifier> + <spirit:fileSetRef> + <spirit:localName>xilinx_anylanguagesynthesis_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>df5bfb27</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>5</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>893de65f</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>StaleAtRelink</spirit:name> + <spirit:value>false</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_anylanguagesynthesiswrapper</spirit:name> + <spirit:displayName>Synthesis Wrapper</spirit:displayName> + <spirit:envIdentifier>:vivado.xilinx.com:synthesis.wrapper</spirit:envIdentifier> + <spirit:fileSetRef> + <spirit:localName>xilinx_anylanguagesynthesiswrapper_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>df5bfb27</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>5</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>893de65f</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>StaleAtRelink</spirit:name> + <spirit:value>false</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_anylanguagebehavioralsimulation</spirit:name> + <spirit:displayName>Simulation</spirit:displayName> + <spirit:envIdentifier>:vivado.xilinx.com:simulation</spirit:envIdentifier> + <spirit:fileSetRef> + <spirit:localName>xilinx_anylanguagebehavioralsimulation_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>b7329546</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>5</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>893de65f</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>StaleAtRelink</spirit:name> + <spirit:value>false</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_anylanguagesimulationwrapper</spirit:name> + <spirit:displayName>Simulation Wrapper</spirit:displayName> + <spirit:envIdentifier>:vivado.xilinx.com:simulation.wrapper</spirit:envIdentifier> + <spirit:fileSetRef> + <spirit:localName>xilinx_anylanguagesimulationwrapper_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>b7329546</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>5</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>893de65f</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>StaleAtRelink</spirit:name> + <spirit:value>false</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_implementation</spirit:name> + <spirit:displayName>Implementation</spirit:displayName> + <spirit:envIdentifier>:vivado.xilinx.com:implementation</spirit:envIdentifier> + <spirit:fileSetRef> + <spirit:localName>xilinx_implementation_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>df5bfb27</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>5</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>893de65f</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>StaleAtRelink</spirit:name> + <spirit:value>false</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_versioninformation</spirit:name> + <spirit:displayName>Version Information</spirit:displayName> + <spirit:envIdentifier>:vivado.xilinx.com:docs.versioninfo</spirit:envIdentifier> + <spirit:fileSetRef> + <spirit:localName>xilinx_versioninformation_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>df5bfb27</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>5</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>893de65f</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Fri Jan 22 01:11:33 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>StaleAtRelink</spirit:name> + <spirit:value>false</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + <spirit:view> + <spirit:name>xilinx_externalfiles</spirit:name> + <spirit:displayName>External Files</spirit:displayName> + <spirit:envIdentifier>:vivado.xilinx.com:external.files</spirit:envIdentifier> + <spirit:fileSetRef> + <spirit:localName>xilinx_externalfiles_view_fileset</spirit:localName> + </spirit:fileSetRef> + <spirit:parameters> + <spirit:parameter> + <spirit:name>customizationCRC</spirit:name> + <spirit:value>df5bfb27</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>customizationCRCversion</spirit:name> + <spirit:value>5</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRC</spirit:name> + <spirit:value>893de65f</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>boundaryCRCversion</spirit:name> + <spirit:value>1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>GENtimestamp</spirit:name> + <spirit:value>Fri Jan 22 01:13:26 UTC 2016</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>StaleAtRelink</spirit:name> + <spirit:value>false</spirit:value> + </spirit:parameter> + </spirit:parameters> + </spirit:view> + </spirit:views> + <spirit:ports> + <spirit:port> + <spirit:name>s_axi_aclk</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_aclk" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_aresetn</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_aresetn" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_awaddr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH')) - 1)">10</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_awaddr" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_awvalid</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_awvalid" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_awready</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_awready" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_wdata</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH')) - 1)">31</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wdata" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_wstrb</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH')) div 8) - 1)">3</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wstrb" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_wvalid</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wvalid" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_wready</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_wready" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_bresp</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long">1</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_bresp" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_bvalid</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_bvalid" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_bready</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_bready" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_araddr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH')) - 1)">10</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_araddr" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_arvalid</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_arvalid" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_arready</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_arready" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_rdata</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long" spirit:resolve="dependent" spirit:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH')) - 1)">31</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rdata" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_rresp</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long">1</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rresp" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_rvalid</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rvalid" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>s_axi_rready</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.s_axi_rready" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION'))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_in1</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in1" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Single_ended_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Single_ended_non_clock_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="No_buffer") or (spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Global_buffer"))">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_in1_p</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in1_p" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Differential_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Differential_non_clock_pin"))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_in1_n</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in1_n" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Differential_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_PRIM_SOURCE'))="Differential_non_clock_pin"))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_in2</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in2" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Single_ended_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Single_ended_non_clock_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="No_buffer") or (spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Global_buffer")) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER'))=1))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_in2_p</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in2_p" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Differential_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Differential_non_clock_pin")) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER'))=1))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_in2_n</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in2_n" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Differential_clock_capable_pin") or (spirit:decode(id('MODELPARAM_VALUE.C_SECONDARY_SOURCE'))="Differential_non_clock_pin")) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER'))=1))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_in_sel</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_in_sel" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clkfb_in</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_in" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))!=1) or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO_OFFCHIP") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))!="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clkfb_in_p</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_in_p" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clkfb_in_n</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_in_n" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>daddr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long">6</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.daddr" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_RECONFIG')) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>dclk</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.dclk" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_RECONFIG')) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>den</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.den" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_RECONFIG')) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>din</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long">15</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.din" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_RECONFIG')) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>dout</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:vector> + <spirit:left spirit:format="long">15</spirit:left> + <spirit:right spirit:format="long">0</spirit:right> + </spirit:vector> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic_vector</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.dout" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_RECONFIG')) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>drdy</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.drdy" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_RECONFIG')) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>dwe</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.dwe" xilinx:dependency="spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_RECONFIG')) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>psclk</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.psclk" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>psen</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.psen" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>psincdec</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.psincdec" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>psdone</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.psdone" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out1</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + </spirit:port> + <spirit:port> + <spirit:name>clk_out1_ce</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out1_ce" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT1_DRIVES'))="BUFGCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT1_DRIVES'))="BUFHCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT1_DRIVES'))="BUFR")) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP'))=0)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out1_clr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out1_clr" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT1_DRIVES'))="BUFR")">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out2</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out2" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT2_USED'))=1)">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out2_ce</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out2_ce" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT2_DRIVES'))="BUFGCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT2_DRIVES'))="BUFHCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT2_DRIVES'))="BUFR")) and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT2_USED'))=1)) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP'))=0)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out2_clr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out2_clr" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT2_DRIVES'))="BUFR") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT2_USED'))=1))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out3</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out3" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT3_USED'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM'))=0)">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out3_ce</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out3_ce" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT3_DRIVES'))="BUFGCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT3_DRIVES'))="BUFHCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT3_DRIVES'))="BUFR")) and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT3_USED'))=1)) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM'))=0) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP'))=0)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out3_clr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out3_clr" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT3_DRIVES'))="BUFR") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT3_USED'))=1)) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM'))=0)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out4</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out4" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT4_USED'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM'))=0)">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out4_ce</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out4_ce" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT4_DRIVES'))="BUFGCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT4_DRIVES'))="BUFHCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT4_DRIVES'))="BUFR")) and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT4_USED'))=1)) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM'))=0) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP'))=0)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out4_clr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out4_clr" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT4_DRIVES'))="BUFR") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT4_USED'))=1)) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM'))=0)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out5</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out5" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT5_USED'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out5_ce</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out5_ce" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT5_DRIVES'))="BUFGCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT5_DRIVES'))="BUFHCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT5_DRIVES'))="BUFR")) and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT5_USED'))=1)) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP'))=0)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out5_clr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out5_clr" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT5_DRIVES'))="BUFR") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT5_USED'))=1))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out6</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out6" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT6_USED'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out6_ce</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out6_ce" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT6_DRIVES'))="BUFGCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT6_DRIVES'))="BUFHCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT6_DRIVES'))="BUFR")) and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT6_USED'))=1)) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP'))=0)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out6_clr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out6_clr" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT6_DRIVES'))="BUFR") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT6_USED'))=1))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out7</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out7" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT7_USED'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out7_ce</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out7_ce" xilinx:dependency="(((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT7_DRIVES'))="BUFGCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT7_DRIVES'))="BUFHCE") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT7_DRIVES'))="BUFR")) and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT7_USED'))=1)) and (spirit:decode(id('MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP'))=0)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clk_out7_clr</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clk_out7_clr" xilinx:dependency="((spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT7_DRIVES'))="BUFR") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKOUT7_USED'))=1))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clkfb_out</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_out" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))!=1) or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO_OFFCHIP") or (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))!="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clkfb_out_p</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_out_p" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clkfb_out_n</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_out_n" xilinx:dependency="((((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and ((spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))!="FDBK_AUTO") or (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) or ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP"))) and ((spirit:decode(id('MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_FEEDBACK_SOURCE'))="FDBK_AUTO_OFFCHIP") and (spirit:decode(id('MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING'))="DIFF")))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>reset</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.reset" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_RESET'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_RESET_LOW'))=0) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>resetn</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.resetn" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_RESET'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_RESET_LOW'))=1) and (not spirit:decode(id('MODELPARAM_VALUE.C_INTERFACE_SELECTION')))">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>power_down</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.power_down" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_POWER_DOWN'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>input_clk_stopped</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.input_clk_stopped" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_INCLK_STOPPED'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_PRIMITIVE'))="MMCM")">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>clkfb_stopped</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.clkfb_stopped" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_CLKFB_STOPPED'))=1) and (spirit:decode(id('MODELPARAM_VALUE.C_PRIMITIVE'))="MMCM")">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>locked</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.locked" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_USE_LOCKED'))=1)">true</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>cddcdone</spirit:name> + <spirit:wire> + <spirit:direction>out</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.cddcdone" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_HAS_CDDC'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + <spirit:port> + <spirit:name>cddcreq</spirit:name> + <spirit:wire> + <spirit:direction>in</spirit:direction> + <spirit:wireTypeDefs> + <spirit:wireTypeDef> + <spirit:typeName>std_logic</spirit:typeName> + <spirit:viewNameRef>xilinx_anylanguagesynthesis</spirit:viewNameRef> + <spirit:viewNameRef>xilinx_anylanguagebehavioralsimulation</spirit:viewNameRef> + </spirit:wireTypeDef> + </spirit:wireTypeDefs> + <spirit:driver> + <spirit:defaultValue spirit:format="long">0</spirit:defaultValue> + </spirit:driver> + </spirit:wire> + <spirit:vendorExtensions> + <xilinx:portInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PORT_ENABLEMENT.cddcreq" xilinx:dependency="(spirit:decode(id('MODELPARAM_VALUE.C_HAS_CDDC'))=1)">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:portInfo> + </spirit:vendorExtensions> + </spirit:port> + </spirit:ports> + <spirit:modelParameters> + <spirit:modelParameter xsi:type="spirit:nameValueTypeType" spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT2_USED</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_USED" spirit:order="194">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT3_USED</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_USED" spirit:order="195">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT4_USED</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_USED" spirit:order="196">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT5_USED</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_USED" spirit:order="197">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT6_USED</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_USED" spirit:order="198">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT7_USED</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_USED" spirit:order="199">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_CLKOUT1_BAR</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_CLKOUT1_BAR" spirit:order="200">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_CLKOUT2_BAR</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_CLKOUT2_BAR" spirit:order="201">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_CLKOUT3_BAR</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_CLKOUT3_BAR" spirit:order="202">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_CLKOUT4_BAR</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_CLKOUT4_BAR" spirit:order="203">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>c_component_name</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.c_component_name">clk_wiz_0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLATFORM</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLATFORM" spirit:order="204">UNKNOWN</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_FREQ_SYNTH</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_FREQ_SYNTH" spirit:order="205">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_PHASE_ALIGNMENT</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_PHASE_ALIGNMENT" spirit:order="206">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PRIM_IN_JITTER</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIM_IN_JITTER" spirit:order="207">0.010</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_SECONDARY_IN_JITTER</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SECONDARY_IN_JITTER" spirit:order="208">0.010</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_JITTER_SEL</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_JITTER_SEL" spirit:order="209">No_Jitter</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_MIN_POWER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_MIN_POWER" spirit:order="210">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_MIN_O_JITTER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_MIN_O_JITTER" spirit:order="211">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_MAX_I_JITTER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_MAX_I_JITTER" spirit:order="212">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_DYN_PHASE_SHIFT</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_DYN_PHASE_SHIFT" spirit:order="213">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_INCLK_SWITCHOVER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_INCLK_SWITCHOVER" spirit:order="214">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_DYN_RECONFIG</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_DYN_RECONFIG" spirit:order="215">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_SPREAD_SPECTRUM</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_SPREAD_SPECTRUM" spirit:order="216">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_FAST_SIMULATION</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_FAST_SIMULATION" spirit:order="217">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PRIMTYPE_SEL</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIMTYPE_SEL" spirit:order="218">AUTO</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_CLK_VALID</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_CLK_VALID" spirit:order="219">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PRIM_IN_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIM_IN_FREQ" spirit:order="220">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PRIM_IN_TIMEPERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIM_IN_TIMEPERIOD" spirit:order="220.001">10.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_IN_FREQ_UNITS</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_IN_FREQ_UNITS" spirit:order="221">Units_MHz</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_SECONDARY_IN_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SECONDARY_IN_FREQ" spirit:order="222">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_SECONDARY_IN_TIMEPERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SECONDARY_IN_TIMEPERIOD" spirit:order="222.001">10.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_FEEDBACK_SOURCE</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_FEEDBACK_SOURCE" spirit:order="223">FDBK_AUTO</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PRIM_SOURCE</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIM_SOURCE" spirit:order="224">Single_ended_clock_capable_pin</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_SECONDARY_SOURCE</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SECONDARY_SOURCE" spirit:order="225">Single_ended_clock_capable_pin</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKFB_IN_SIGNALING</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_SIGNALING" spirit:order="226">SINGLE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_RESET</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_RESET" spirit:order="227">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_RESET_LOW</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_RESET_LOW" spirit:order="408">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_LOCKED</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_LOCKED" spirit:order="228">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_INCLK_STOPPED</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_INCLK_STOPPED" spirit:order="229">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_CLKFB_STOPPED</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_CLKFB_STOPPED" spirit:order="230">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_POWER_DOWN</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_POWER_DOWN" spirit:order="231">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_STATUS</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_STATUS" spirit:order="232">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_FREEZE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_FREEZE" spirit:order="233">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_NUM_OUT_CLKS</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_NUM_OUT_CLKS" spirit:order="234">4</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT1_DRIVES</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_DRIVES" spirit:order="235">BUFG</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT2_DRIVES</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_DRIVES" spirit:order="236">BUFG</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT3_DRIVES</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_DRIVES" spirit:order="237">BUFG</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT4_DRIVES</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_DRIVES" spirit:order="238">BUFG</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT5_DRIVES</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_DRIVES" spirit:order="239">BUFG</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT6_DRIVES</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_DRIVES" spirit:order="240">BUFG</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT7_DRIVES</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_DRIVES" spirit:order="241">BUFG</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_INCLK_SUM_ROW0</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_INCLK_SUM_ROW0" spirit:order="242">Input Clock Freq (MHz) Input Jitter (UI)</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_INCLK_SUM_ROW1</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_INCLK_SUM_ROW1" spirit:order="243">__primary_________100.000____________0.010</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_INCLK_SUM_ROW2</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_INCLK_SUM_ROW2" spirit:order="244">no_secondary_input_clock </spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_OUTCLK_SUM_ROW0A</spirit:name> + <spirit:displayName>C Outclk Sum Row0a</spirit:displayName> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW0A" spirit:order="245"> Output Output Phase Duty Cycle Pk-to-Pk Phase</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_OUTCLK_SUM_ROW0B</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW0B" spirit:order="246"> Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps)</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_OUTCLK_SUM_ROW1</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW1" spirit:order="247">CLK_OUT1___100.000______0.000______50.0______151.366____132.063</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_OUTCLK_SUM_ROW2</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW2" spirit:order="248">CLK_OUT2___200.000______0.000______50.0______132.221____132.063</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_OUTCLK_SUM_ROW3</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW3" spirit:order="249">CLK_OUT3____12.000______0.000______50.0______231.952____132.063</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_OUTCLK_SUM_ROW4</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW4" spirit:order="250">CLK_OUT4____50.000______0.000______50.0______174.353____132.063</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_OUTCLK_SUM_ROW5</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW5" spirit:order="251">no_CLK_OUT5_output</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_OUTCLK_SUM_ROW6</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW6" spirit:order="252">no_CLK_OUT6_output</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_OUTCLK_SUM_ROW7</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OUTCLK_SUM_ROW7" spirit:order="253">no_CLK_OUT7_output</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT1_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_OUT_FREQ" spirit:order="254">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT2_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_OUT_FREQ" spirit:order="255">200.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT3_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_OUT_FREQ" spirit:order="256">12.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT4_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_OUT_FREQ" spirit:order="257">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT5_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_OUT_FREQ" spirit:order="258">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT6_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_OUT_FREQ" spirit:order="259">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT7_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_OUT_FREQ" spirit:order="260">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT1_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_PHASE" spirit:order="261">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT2_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_PHASE" spirit:order="262">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT3_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_PHASE" spirit:order="263">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT4_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_PHASE" spirit:order="264">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT5_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_PHASE" spirit:order="265">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT6_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_PHASE" spirit:order="266">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT7_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_PHASE" spirit:order="267">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT1_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_REQUESTED_DUTY_CYCLE" spirit:order="268">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT2_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_REQUESTED_DUTY_CYCLE" spirit:order="269">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT3_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_REQUESTED_DUTY_CYCLE" spirit:order="270">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT4_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_REQUESTED_DUTY_CYCLE" spirit:order="271">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT5_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_REQUESTED_DUTY_CYCLE" spirit:order="272">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT6_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_REQUESTED_DUTY_CYCLE" spirit:order="273">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT7_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_REQUESTED_DUTY_CYCLE" spirit:order="274">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT1_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_OUT_FREQ" spirit:order="275">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT2_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_OUT_FREQ" spirit:order="276">200.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT3_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_OUT_FREQ" spirit:order="277">12.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT4_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_OUT_FREQ" spirit:order="278">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT5_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_OUT_FREQ" spirit:order="279">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT6_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_OUT_FREQ" spirit:order="280">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT7_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_OUT_FREQ" spirit:order="281">100.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT1_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_PHASE" spirit:order="282">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT2_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_PHASE" spirit:order="283">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT3_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_PHASE" spirit:order="284">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT4_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_PHASE" spirit:order="285">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT5_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_PHASE" spirit:order="286">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT6_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_PHASE" spirit:order="287">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT7_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_PHASE" spirit:order="288">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT1_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_DUTY_CYCLE" spirit:order="289">50.0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT2_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_DUTY_CYCLE" spirit:order="290">50.0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT3_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_DUTY_CYCLE" spirit:order="291">50.0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT4_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_DUTY_CYCLE" spirit:order="292">50.0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT5_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_DUTY_CYCLE" spirit:order="293">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT6_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_DUTY_CYCLE" spirit:order="294">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUT7_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_DUTY_CYCLE" spirit:order="295">50.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_SAFE_CLOCK_STARTUP</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_SAFE_CLOCK_STARTUP" spirit:order="500">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_USE_CLOCK_SEQUENCING</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_USE_CLOCK_SEQUENCING" spirit:order="501">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT1_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT1_SEQUENCE_NUMBER" spirit:order="502">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT2_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT2_SEQUENCE_NUMBER" spirit:order="503">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT3_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT3_SEQUENCE_NUMBER" spirit:order="504">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT4_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT4_SEQUENCE_NUMBER" spirit:order="505">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT5_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT5_SEQUENCE_NUMBER" spirit:order="506">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT6_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT6_SEQUENCE_NUMBER" spirit:order="507">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_CLKOUT7_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUT7_SEQUENCE_NUMBER" spirit:order="508">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_NOTES</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_NOTES" spirit:order="296">None</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_BANDWIDTH</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_BANDWIDTH" spirit:order="297">OPTIMIZED</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKFBOUT_MULT_F</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_MULT_F" spirit:order="298">6.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKIN1_PERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKIN1_PERIOD" spirit:order="299">10.0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKIN2_PERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKIN2_PERIOD" spirit:order="300">10.0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT4_CASCADE</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT4_CASCADE" spirit:order="301">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLOCK_HOLD</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLOCK_HOLD" spirit:order="302">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_COMPENSATION</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_COMPENSATION" spirit:order="303">ZHOLD</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_MMCM_DIVCLK_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_DIVCLK_DIVIDE" spirit:order="304">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_REF_JITTER1</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_REF_JITTER1" spirit:order="305">0.010</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_REF_JITTER2</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_REF_JITTER2" spirit:order="306">0.010</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_STARTUP_WAIT</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_STARTUP_WAIT" spirit:order="307">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT0_DIVIDE_F</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DIVIDE_F" spirit:order="308">6.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_MMCM_CLKOUT1_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT1_DIVIDE" spirit:order="309">3</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_MMCM_CLKOUT2_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT2_DIVIDE" spirit:order="310">50</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_MMCM_CLKOUT3_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT3_DIVIDE" spirit:order="311">12</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_MMCM_CLKOUT4_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT4_DIVIDE" spirit:order="312">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_MMCM_CLKOUT5_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DIVIDE" spirit:order="313">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_MMCM_CLKOUT6_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DIVIDE" spirit:order="314">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT0_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT0_DUTY_CYCLE" spirit:order="315">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT1_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT1_DUTY_CYCLE" spirit:order="316">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT2_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT2_DUTY_CYCLE" spirit:order="317">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT3_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT3_DUTY_CYCLE" spirit:order="318">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT4_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT4_DUTY_CYCLE" spirit:order="319">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT5_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT5_DUTY_CYCLE" spirit:order="320">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT6_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT6_DUTY_CYCLE" spirit:order="321">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKFBOUT_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_PHASE" spirit:order="322">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT0_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT0_PHASE" spirit:order="323">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT1_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT1_PHASE" spirit:order="324">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT2_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT2_PHASE" spirit:order="325">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT3_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT3_PHASE" spirit:order="326">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT4_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT4_PHASE" spirit:order="327">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT5_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT5_PHASE" spirit:order="328">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT6_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT6_PHASE" spirit:order="329">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKFBOUT_USE_FINE_PS</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKFBOUT_USE_FINE_PS" spirit:order="330">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT0_USE_FINE_PS</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT0_USE_FINE_PS" spirit:order="331">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT1_USE_FINE_PS</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT1_USE_FINE_PS" spirit:order="332">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT2_USE_FINE_PS</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT2_USE_FINE_PS" spirit:order="333">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT3_USE_FINE_PS</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT3_USE_FINE_PS" spirit:order="334">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT4_USE_FINE_PS</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT4_USE_FINE_PS" spirit:order="335">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT5_USE_FINE_PS</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT5_USE_FINE_PS" spirit:order="336">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_MMCM_CLKOUT6_USE_FINE_PS</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_MMCM_CLKOUT6_USE_FINE_PS" spirit:order="337">FALSE</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_NOTES</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_NOTES" spirit:order="338">No notes</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_BANDWIDTH</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_BANDWIDTH" spirit:order="339">OPTIMIZED</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLK_FEEDBACK</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLK_FEEDBACK" spirit:order="340">CLKFBOUT</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_PLL_CLKFBOUT_MULT</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKFBOUT_MULT" spirit:order="341">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKIN_PERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKIN_PERIOD" spirit:order="342">1.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_COMPENSATION</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_COMPENSATION" spirit:order="343">SYSTEM_SYNCHRONOUS</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_PLL_DIVCLK_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_DIVCLK_DIVIDE" spirit:order="344">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_REF_JITTER</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_REF_JITTER" spirit:order="345">0.010</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_PLL_CLKOUT0_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT0_DIVIDE" spirit:order="346">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_PLL_CLKOUT1_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT1_DIVIDE" spirit:order="347">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_PLL_CLKOUT2_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT2_DIVIDE" spirit:order="348">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_PLL_CLKOUT3_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT3_DIVIDE" spirit:order="349">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_PLL_CLKOUT4_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT4_DIVIDE" spirit:order="350">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_PLL_CLKOUT5_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT5_DIVIDE" spirit:order="351">1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT0_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT0_DUTY_CYCLE" spirit:order="352">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT1_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT1_DUTY_CYCLE" spirit:order="353">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT2_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT2_DUTY_CYCLE" spirit:order="354">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT3_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT3_DUTY_CYCLE" spirit:order="355">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT4_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT4_DUTY_CYCLE" spirit:order="356">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT5_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT5_DUTY_CYCLE" spirit:order="357">0.500</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKFBOUT_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKFBOUT_PHASE" spirit:order="358">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT0_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT0_PHASE" spirit:order="359">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT1_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT1_PHASE" spirit:order="360">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT2_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT2_PHASE" spirit:order="361">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT3_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT3_PHASE" spirit:order="362">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT4_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT4_PHASE" spirit:order="363">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PLL_CLKOUT5_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PLL_CLKOUT5_PHASE" spirit:order="364">0.000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLOCK_MGR_TYPE</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLOCK_MGR_TYPE" spirit:order="365">NA</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_OVERRIDE_MMCM</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OVERRIDE_MMCM" spirit:order="366">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_OVERRIDE_PLL</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_OVERRIDE_PLL" spirit:order="367">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PRIMARY_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIMARY_PORT" spirit:order="368">clk_in1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_SECONDARY_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SECONDARY_PORT" spirit:order="369">clk_in2</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLK_OUT1_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT1_PORT" spirit:order="370">clk_out1</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLK_OUT2_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT2_PORT" spirit:order="371">clk_out2</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLK_OUT3_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT3_PORT" spirit:order="372">clk_out3</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLK_OUT4_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT4_PORT" spirit:order="373">clk_out4</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLK_OUT5_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT5_PORT" spirit:order="374">clk_out5</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLK_OUT6_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT6_PORT" spirit:order="375">clk_out6</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLK_OUT7_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_OUT7_PORT" spirit:order="376">clk_out7</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_RESET_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_RESET_PORT" spirit:order="377">reset</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_LOCKED_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_LOCKED_PORT" spirit:order="378">locked</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKFB_IN_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_PORT" spirit:order="379">clkfb_in</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKFB_IN_P_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_P_PORT" spirit:order="380">clkfb_in_p</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKFB_IN_N_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_IN_N_PORT" spirit:order="381">clkfb_in_n</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKFB_OUT_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_OUT_PORT" spirit:order="382">clkfb_out</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKFB_OUT_P_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_OUT_P_PORT" spirit:order="383">clkfb_out_p</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKFB_OUT_N_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_OUT_N_PORT" spirit:order="384">clkfb_out_n</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_POWER_DOWN_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_POWER_DOWN_PORT" spirit:order="385">power_down</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_DADDR_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DADDR_PORT" spirit:order="386">daddr</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_DCLK_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DCLK_PORT" spirit:order="387">dclk</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_DRDY_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DRDY_PORT" spirit:order="388">drdy</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_DWE_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DWE_PORT" spirit:order="389">dwe</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_DIN_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DIN_PORT" spirit:order="390">din</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_DOUT_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DOUT_PORT" spirit:order="391">dout</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_DEN_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_DEN_PORT" spirit:order="392">den</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PSCLK_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSCLK_PORT" spirit:order="393">psclk</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PSEN_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSEN_PORT" spirit:order="394">psen</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PSINCDEC_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSINCDEC_PORT" spirit:order="395">psincdec</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PSDONE_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PSDONE_PORT" spirit:order="396">psdone</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLK_VALID_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_VALID_PORT" spirit:order="397">CLK_VALID</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_STATUS_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_STATUS_PORT" spirit:order="398">STATUS</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLK_IN_SEL_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLK_IN_SEL_PORT" spirit:order="399">clk_in_sel</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_INPUT_CLK_STOPPED_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_INPUT_CLK_STOPPED_PORT" spirit:order="400">input_clk_stopped</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKFB_STOPPED_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKFB_STOPPED_PORT" spirit:order="401">clkfb_stopped</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKIN1_JITTER_PS</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKIN1_JITTER_PS" spirit:order="402">100.0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKIN2_JITTER_PS</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKIN2_JITTER_PS" spirit:order="403">100.0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_PRIMITIVE</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_PRIMITIVE" spirit:order="404">MMCM</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_SS_MODE</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SS_MODE" spirit:order="405">CENTER_HIGH</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_SS_MOD_PERIOD</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SS_MOD_PERIOD" spirit:order="406">4000</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_SS_MOD_TIME</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_SS_MOD_TIME" spirit:order="406.001">0.004</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_HAS_CDDC</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_HAS_CDDC" spirit:order="407">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CDDCDONE_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CDDCDONE_PORT" spirit:order="408">cddcdone</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CDDCREQ_PORT</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CDDCREQ_PORT" spirit:order="409">cddcreq</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="STRING"> + <spirit:name>C_CLKOUTPHY_MODE</spirit:name> + <spirit:value spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_CLKOUTPHY_MODE" spirit:order="410">VCO</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_ENABLE_CLKOUTPHY</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_ENABLE_CLKOUTPHY" spirit:order="411">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_INTERFACE_SELECTION</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_INTERFACE_SELECTION" spirit:order="412">0</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_S_AXI_ADDR_WIDTH</spirit:name> + <spirit:displayName>C S Axi Addr Width</spirit:displayName> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_S_AXI_ADDR_WIDTH" spirit:order="215" spirit:minimum="2" spirit:maximum="32" spirit:rangeType="long">11</spirit:value> + </spirit:modelParameter> + <spirit:modelParameter spirit:dataType="INTEGER"> + <spirit:name>C_S_AXI_DATA_WIDTH</spirit:name> + <spirit:displayName>C S Axi Data Width</spirit:displayName> + <spirit:value spirit:format="long" spirit:resolve="generated" spirit:id="MODELPARAM_VALUE.C_S_AXI_DATA_WIDTH" spirit:order="216" spirit:minimum="32" spirit:maximum="128" spirit:rangeType="long">32</spirit:value> + </spirit:modelParameter> + </spirit:modelParameters> + </spirit:model> + <spirit:choices> + <spirit:choice> + <spirit:name>choice_list_876bfc32</spirit:name> + <spirit:enumeration>UI</spirit:enumeration> + <spirit:enumeration>PS</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_list_a9bdfce0</spirit:name> + <spirit:enumeration>LOW</spirit:enumeration> + <spirit:enumeration>HIGH</spirit:enumeration> + <spirit:enumeration>OPTIMIZED</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_list_ac75ef1e</spirit:name> + <spirit:enumeration>Custom</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_list_b9d38208</spirit:name> + <spirit:enumeration>CLKFBOUT</spirit:enumeration> + <spirit:enumeration>CLKOUT0</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_list_e099fe6c</spirit:name> + <spirit:enumeration>MMCM</spirit:enumeration> + <spirit:enumeration>PLL</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_035ca1c3</spirit:name> + <spirit:enumeration spirit:text="SYSTEM SYNCHRONOUS">SYSTEM_SYNCHRONOUS</spirit:enumeration> + <spirit:enumeration spirit:text="SOURCE SYNCHRONOUS">SOURCE_SYNCHRONOUS</spirit:enumeration> + <spirit:enumeration spirit:text="INTERNAL">INTERNAL</spirit:enumeration> + <spirit:enumeration spirit:text="EXTERNAL">EXTERNAL</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_0920eb1b</spirit:name> + <spirit:enumeration spirit:text="Custom">Custom</spirit:enumeration> + <spirit:enumeration spirit:text="sys diff clock">sys_diff_clock</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_11d71346</spirit:name> + <spirit:enumeration spirit:text="Single ended clock capable pin">Single_ended_clock_capable_pin</spirit:enumeration> + <spirit:enumeration spirit:text="Differential clock capable pin">Differential_clock_capable_pin</spirit:enumeration> + <spirit:enumeration spirit:text="Global buffer">Global_buffer</spirit:enumeration> + <spirit:enumeration spirit:text="No buffer">No_buffer</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_15c806d5</spirit:name> + <spirit:enumeration spirit:text="Automatic Control On-Chip">FDBK_AUTO</spirit:enumeration> + <spirit:enumeration spirit:text="Automatic Control Off-Chip">FDBK_AUTO_OFFCHIP</spirit:enumeration> + <spirit:enumeration spirit:text="User-Controlled On-Chip">FDBK_ONCHIP</spirit:enumeration> + <spirit:enumeration spirit:text="User-Controlled Off-Chip">FDBK_OFFCHIP</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_3c2d3ec7</spirit:name> + <spirit:enumeration spirit:text="Single-ended">SINGLE</spirit:enumeration> + <spirit:enumeration spirit:text="Differential">DIFF</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_502d9f23</spirit:name> + <spirit:enumeration spirit:text="ZHOLD">ZHOLD</spirit:enumeration> + <spirit:enumeration spirit:text="EXTERNAL">EXTERNAL</spirit:enumeration> + <spirit:enumeration spirit:text="INTERNAL">INTERNAL</spirit:enumeration> + <spirit:enumeration spirit:text="BUF IN">BUF_IN</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_66e4c81f</spirit:name> + <spirit:enumeration spirit:text="BUFG">BUFG</spirit:enumeration> + <spirit:enumeration spirit:text="BUFH">BUFH</spirit:enumeration> + <spirit:enumeration spirit:text="BUFGCE">BUFGCE</spirit:enumeration> + <spirit:enumeration spirit:text="BUFHCE">BUFHCE</spirit:enumeration> + <spirit:enumeration spirit:text="No buffer">No_buffer</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_8b28f1f7</spirit:name> + <spirit:enumeration spirit:text="AXI4Lite">Enable_AXI</spirit:enumeration> + <spirit:enumeration spirit:text="DRP">Enable_DRP</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_8eea9b32</spirit:name> + <spirit:enumeration spirit:text="Units MHz">Units_MHz</spirit:enumeration> + <spirit:enumeration spirit:text="Units ns">Units_ns</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_a4fbc00c</spirit:name> + <spirit:enumeration spirit:text="Active High">ACTIVE_HIGH</spirit:enumeration> + <spirit:enumeration spirit:text="Active Low">ACTIVE_LOW</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_a8642b4c</spirit:name> + <spirit:enumeration spirit:text="Balanced">No_Jitter</spirit:enumeration> + <spirit:enumeration spirit:text="Minimize Output Jitter">Min_O_Jitter</spirit:enumeration> + <spirit:enumeration spirit:text="Maximize Input Jitter filtering">Max_I_Jitter</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_c5ef7212</spirit:name> + <spirit:enumeration spirit:text="Units UI">Units_UI</spirit:enumeration> + <spirit:enumeration spirit:text="Units ps">Units_ps</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_e1c87518</spirit:name> + <spirit:enumeration spirit:text="Primary Clock">REL_PRIMARY</spirit:enumeration> + <spirit:enumeration spirit:text="Secondary Clock">REL_SECONDARY</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_f4e10086</spirit:name> + <spirit:enumeration spirit:text="CENTER HIGH">CENTER_HIGH</spirit:enumeration> + <spirit:enumeration spirit:text="CENTER LOW">CENTER_LOW</spirit:enumeration> + <spirit:enumeration spirit:text="DOWN HIGH">DOWN_HIGH</spirit:enumeration> + <spirit:enumeration spirit:text="DOWN LOW">DOWN_LOW</spirit:enumeration> + </spirit:choice> + <spirit:choice> + <spirit:name>choice_pairs_f669c2f5</spirit:name> + <spirit:enumeration spirit:text="Frequency">frequency</spirit:enumeration> + <spirit:enumeration spirit:text="Time">Time</spirit:enumeration> + </spirit:choice> + </spirit:choices> + <spirit:fileSets> + <spirit:fileSet> + <spirit:name>xilinx_vhdlinstantiationtemplate_view_fileset</spirit:name> + <spirit:file> + <spirit:name>clk_wiz_0.vho</spirit:name> + <spirit:userFileType>vhdlTemplate</spirit:userFileType> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_anylanguagesynthesis_view_fileset</spirit:name> + <spirit:file> + <spirit:name>clk_wiz_0.xdc</spirit:name> + <spirit:userFileType>xdc</spirit:userFileType> + <spirit:define> + <spirit:name>processing_order</spirit:name> + <spirit:value>early</spirit:value> + </spirit:define> + </spirit:file> + <spirit:file> + <spirit:name>clk_wiz_0_ooc.xdc</spirit:name> + <spirit:userFileType>xdc</spirit:userFileType> + <spirit:userFileType>USED_IN_implementation</spirit:userFileType> + <spirit:userFileType>USED_IN_out_of_context</spirit:userFileType> + <spirit:userFileType>USED_IN_synthesis</spirit:userFileType> + </spirit:file> + <spirit:file> + <spirit:name>clk_wiz_0_clk_wiz.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_anylanguagesynthesiswrapper_view_fileset</spirit:name> + <spirit:file> + <spirit:name>clk_wiz_0.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_anylanguagebehavioralsimulation_view_fileset</spirit:name> + <spirit:file> + <spirit:name>clk_wiz_0_clk_wiz.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_anylanguagesimulationwrapper_view_fileset</spirit:name> + <spirit:file> + <spirit:name>clk_wiz_0.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_implementation_view_fileset</spirit:name> + <spirit:file> + <spirit:name>clk_wiz_0_board.xdc</spirit:name> + <spirit:userFileType>xdc</spirit:userFileType> + <spirit:userFileType>USED_IN_board</spirit:userFileType> + <spirit:userFileType>USED_IN_implementation</spirit:userFileType> + <spirit:userFileType>USED_IN_synthesis</spirit:userFileType> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_versioninformation_view_fileset</spirit:name> + <spirit:file> + <spirit:name>doc/clk_wiz_v5_2_changelog.txt</spirit:name> + <spirit:userFileType>text</spirit:userFileType> + </spirit:file> + </spirit:fileSet> + <spirit:fileSet> + <spirit:name>xilinx_externalfiles_view_fileset</spirit:name> + <spirit:file> + <spirit:name>clk_wiz_0.dcp</spirit:name> + <spirit:userFileType>dcp</spirit:userFileType> + <spirit:userFileType>USED_IN_implementation</spirit:userFileType> + <spirit:userFileType>USED_IN_synthesis</spirit:userFileType> + <spirit:logicalName>xil_defaultlib</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>clk_wiz_0_stub.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_synth_blackbox_stub</spirit:userFileType> + <spirit:logicalName>xil_defaultlib</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>clk_wiz_0_stub.vhdl</spirit:name> + <spirit:fileType>vhdlSource</spirit:fileType> + <spirit:userFileType>USED_IN_synth_blackbox_stub</spirit:userFileType> + <spirit:logicalName>xil_defaultlib</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>clk_wiz_0_sim_netlist.v</spirit:name> + <spirit:fileType>verilogSource</spirit:fileType> + <spirit:userFileType>USED_IN_simulation</spirit:userFileType> + <spirit:userFileType>USED_IN_single_language</spirit:userFileType> + <spirit:logicalName>xil_defaultlib</spirit:logicalName> + </spirit:file> + <spirit:file> + <spirit:name>clk_wiz_0_sim_netlist.vhdl</spirit:name> + <spirit:fileType>vhdlSource</spirit:fileType> + <spirit:userFileType>USED_IN_simulation</spirit:userFileType> + <spirit:userFileType>USED_IN_single_language</spirit:userFileType> + <spirit:logicalName>xil_defaultlib</spirit:logicalName> + </spirit:file> + </spirit:fileSet> + </spirit:fileSets> + <spirit:description>The Clocking Wizard creates an HDL file (Verilog or VHDL) that contains a clocking circuit customized to the user's clocking requirements.</spirit:description> + <spirit:parameters> + <spirit:parameter> + <spirit:name>Component_Name</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.Component_Name" spirit:order="1">clk_wiz_0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PRIMITIVE</spirit:name> + <spirit:displayName>Primitive</spirit:displayName> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PRIMITIVE" spirit:choiceRef="choice_list_e099fe6c" spirit:order="2">MMCM</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PRIMTYPE_SEL</spirit:name> + <spirit:displayName>Primtype Sel</spirit:displayName> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PRIMTYPE_SEL" spirit:order="3">mmcm_adv</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLOCK_MGR_TYPE</spirit:name> + <spirit:displayName>Clock Mgr Type</spirit:displayName> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLOCK_MGR_TYPE" spirit:order="410">auto</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_FREQ_SYNTH</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_FREQ_SYNTH" spirit:order="6" spirit:configGroups="0 NoDisplay">true</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_SPREAD_SPECTRUM</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_SPREAD_SPECTRUM" spirit:order="7" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_PHASE_ALIGNMENT</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_PHASE_ALIGNMENT" spirit:order="8" spirit:configGroups="0 NoDisplay">true</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_MIN_POWER</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_MIN_POWER" spirit:order="9" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_DYN_PHASE_SHIFT</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_DYN_PHASE_SHIFT" spirit:order="10" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_DYN_RECONFIG</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_DYN_RECONFIG" spirit:order="11" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>JITTER_SEL</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.JITTER_SEL" spirit:choiceRef="choice_pairs_a8642b4c" spirit:order="13" spirit:configGroups="0 NoDisplay">No_Jitter</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PRIM_IN_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PRIM_IN_FREQ" spirit:order="14.401" spirit:configGroups="0 NoDisplay">100.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PRIM_IN_TIMEPERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PRIM_IN_TIMEPERIOD" spirit:order="14.9" spirit:configGroups="0 NoDisplay">10.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>IN_FREQ_UNITS</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.IN_FREQ_UNITS" spirit:choiceRef="choice_pairs_8eea9b32" spirit:order="15" spirit:configGroups="0 NoDisplay">Units_MHz</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>IN_JITTER_UNITS</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.IN_JITTER_UNITS" spirit:choiceRef="choice_pairs_c5ef7212" spirit:order="16" spirit:configGroups="0 NoDisplay">Units_UI</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>RELATIVE_INCLK</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.RELATIVE_INCLK" spirit:choiceRef="choice_pairs_e1c87518" spirit:order="17" spirit:configGroups="0 NoDisplay">REL_PRIMARY</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_INCLK_SWITCHOVER</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_INCLK_SWITCHOVER" spirit:order="13.9" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>SECONDARY_IN_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.SECONDARY_IN_FREQ" spirit:order="21.3" spirit:configGroups="0 NoDisplay">100.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>SECONDARY_IN_TIMEPERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.SECONDARY_IN_TIMEPERIOD" spirit:order="21.299" spirit:configGroups="0 NoDisplay">10.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>SECONDARY_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.SECONDARY_PORT" spirit:order="20" spirit:configGroups="0 NoDisplay">clk_in2</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>SECONDARY_SOURCE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.SECONDARY_SOURCE" spirit:choiceRef="choice_pairs_11d71346" spirit:order="21" spirit:configGroups="0 NoDisplay">Single_ended_clock_capable_pin</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>JITTER_OPTIONS</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.JITTER_OPTIONS" spirit:choiceRef="choice_list_876bfc32" spirit:order="22" spirit:configGroups="0 NoDisplay">UI</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKIN1_UI_JITTER</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKIN1_UI_JITTER" spirit:order="23" spirit:configGroups="0 NoDisplay">0.010</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKIN2_UI_JITTER</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKIN2_UI_JITTER" spirit:order="24" spirit:configGroups="0 NoDisplay">0.010</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PRIM_IN_JITTER</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PRIM_IN_JITTER" spirit:order="25" spirit:configGroups="0 NoDisplay">0.010</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>SECONDARY_IN_JITTER</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.SECONDARY_IN_JITTER" spirit:order="26" spirit:configGroups="0 NoDisplay">0.010</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKIN1_JITTER_PS</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKIN1_JITTER_PS" spirit:order="27" spirit:configGroups="0 NoDisplay">100.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKIN2_JITTER_PS</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKIN2_JITTER_PS" spirit:order="28" spirit:configGroups="0 NoDisplay">100.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT1_USED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT1_USED" spirit:order="4" spirit:configGroups="0 NoDisplay">true</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT2_USED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT2_USED" spirit:order="29" spirit:configGroups="0 NoDisplay">true</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT3_USED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT3_USED" spirit:order="30" spirit:configGroups="0 NoDisplay">true</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT4_USED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT4_USED" spirit:order="31" spirit:configGroups="0 NoDisplay">true</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT5_USED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT5_USED" spirit:order="32" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT6_USED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT6_USED" spirit:order="33" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT7_USED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT7_USED" spirit:order="34" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>NUM_OUT_CLKS</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.NUM_OUT_CLKS" spirit:order="407" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="7" spirit:rangeType="long">4</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT1_USE_FINE_PS_GUI</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT1_USE_FINE_PS_GUI" spirit:order="36" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT2_USE_FINE_PS_GUI</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT2_USE_FINE_PS_GUI" spirit:order="37" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT3_USE_FINE_PS_GUI</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT3_USE_FINE_PS_GUI" spirit:order="38" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT4_USE_FINE_PS_GUI</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT4_USE_FINE_PS_GUI" spirit:order="39" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT5_USE_FINE_PS_GUI</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT5_USE_FINE_PS_GUI" spirit:order="40" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT6_USE_FINE_PS_GUI</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT6_USE_FINE_PS_GUI" spirit:order="41" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT7_USE_FINE_PS_GUI</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT7_USE_FINE_PS_GUI" spirit:order="42" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PRIMARY_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PRIMARY_PORT" spirit:order="43" spirit:configGroups="0 NoDisplay">clk_in1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT1_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT1_PORT" spirit:order="44" spirit:configGroups="0 NoDisplay">clk_out1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT2_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT2_PORT" spirit:order="45" spirit:configGroups="0 NoDisplay">clk_out2</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT3_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT3_PORT" spirit:order="46" spirit:configGroups="0 NoDisplay">clk_out3</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT4_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT4_PORT" spirit:order="47" spirit:configGroups="0 NoDisplay">clk_out4</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT5_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT5_PORT" spirit:order="48" spirit:configGroups="0 NoDisplay">clk_out5</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT6_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT6_PORT" spirit:order="49" spirit:configGroups="0 NoDisplay">clk_out6</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_OUT7_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_OUT7_PORT" spirit:order="50" spirit:configGroups="0 NoDisplay">clk_out7</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>DADDR_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DADDR_PORT" spirit:order="51" spirit:configGroups="0 NoDisplay">daddr</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>DCLK_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DCLK_PORT" spirit:order="52" spirit:configGroups="0 NoDisplay">dclk</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>DRDY_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DRDY_PORT" spirit:order="53" spirit:configGroups="0 NoDisplay">drdy</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>DWE_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DWE_PORT" spirit:order="54" spirit:configGroups="0 NoDisplay">dwe</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>DIN_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DIN_PORT" spirit:order="55" spirit:configGroups="0 NoDisplay">din</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>DOUT_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DOUT_PORT" spirit:order="56" spirit:configGroups="0 NoDisplay">dout</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>DEN_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DEN_PORT" spirit:order="57" spirit:configGroups="0 NoDisplay">den</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PSCLK_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PSCLK_PORT" spirit:order="58" spirit:configGroups="0 NoDisplay">psclk</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PSEN_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PSEN_PORT" spirit:order="59" spirit:configGroups="0 NoDisplay">psen</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PSINCDEC_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PSINCDEC_PORT" spirit:order="60" spirit:configGroups="0 NoDisplay">psincdec</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PSDONE_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PSDONE_PORT" spirit:order="61" spirit:configGroups="0 NoDisplay">psdone</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT1_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT1_REQUESTED_OUT_FREQ" spirit:order="62" spirit:configGroups="0 NoDisplay">100.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT1_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT1_REQUESTED_PHASE" spirit:order="63" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT1_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT1_REQUESTED_DUTY_CYCLE" spirit:order="64" spirit:configGroups="0 NoDisplay">50.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT2_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT2_REQUESTED_OUT_FREQ" spirit:order="65" spirit:configGroups="0 NoDisplay">200.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT2_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT2_REQUESTED_PHASE" spirit:order="66" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT2_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT2_REQUESTED_DUTY_CYCLE" spirit:order="67" spirit:configGroups="0 NoDisplay">50.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT3_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT3_REQUESTED_OUT_FREQ" spirit:order="68" spirit:configGroups="0 NoDisplay">12.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT3_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT3_REQUESTED_PHASE" spirit:order="69" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT3_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT3_REQUESTED_DUTY_CYCLE" spirit:order="70" spirit:configGroups="0 NoDisplay">50.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT4_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT4_REQUESTED_OUT_FREQ" spirit:order="71" spirit:configGroups="0 NoDisplay">50.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT4_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT4_REQUESTED_PHASE" spirit:order="72" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT4_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT4_REQUESTED_DUTY_CYCLE" spirit:order="73" spirit:configGroups="0 NoDisplay">50.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT5_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT5_REQUESTED_OUT_FREQ" spirit:order="74" spirit:configGroups="0 NoDisplay">100.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT5_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT5_REQUESTED_PHASE" spirit:order="75" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT5_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT5_REQUESTED_DUTY_CYCLE" spirit:order="76" spirit:configGroups="0 NoDisplay">50.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT6_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT6_REQUESTED_OUT_FREQ" spirit:order="77" spirit:configGroups="0 NoDisplay">100.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT6_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT6_REQUESTED_PHASE" spirit:order="78" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT6_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT6_REQUESTED_DUTY_CYCLE" spirit:order="79" spirit:configGroups="0 NoDisplay">50.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT7_REQUESTED_OUT_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT7_REQUESTED_OUT_FREQ" spirit:order="80" spirit:configGroups="0 NoDisplay">100.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT7_REQUESTED_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT7_REQUESTED_PHASE" spirit:order="81" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT7_REQUESTED_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT7_REQUESTED_DUTY_CYCLE" spirit:order="82" spirit:configGroups="0 NoDisplay">50.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_MAX_I_JITTER</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_MAX_I_JITTER" spirit:order="83" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_MIN_O_JITTER</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_MIN_O_JITTER" spirit:order="84" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PRIM_SOURCE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PRIM_SOURCE" spirit:choiceRef="choice_pairs_11d71346" spirit:order="14.1" spirit:configGroups="0 NoDisplay">Single_ended_clock_capable_pin</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT1_DRIVES</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT1_DRIVES" spirit:choiceRef="choice_pairs_66e4c81f" spirit:order="86" spirit:configGroups="0 NoDisplay">BUFG</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT2_DRIVES</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT2_DRIVES" spirit:choiceRef="choice_pairs_66e4c81f" spirit:order="87" spirit:configGroups="0 NoDisplay">BUFG</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT3_DRIVES</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT3_DRIVES" spirit:choiceRef="choice_pairs_66e4c81f" spirit:order="88" spirit:configGroups="0 NoDisplay">BUFG</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT4_DRIVES</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT4_DRIVES" spirit:choiceRef="choice_pairs_66e4c81f" spirit:order="89" spirit:configGroups="0 NoDisplay">BUFG</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT5_DRIVES</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT5_DRIVES" spirit:choiceRef="choice_pairs_66e4c81f" spirit:order="90" spirit:configGroups="0 NoDisplay">BUFG</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT6_DRIVES</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT6_DRIVES" spirit:choiceRef="choice_pairs_66e4c81f" spirit:order="91" spirit:configGroups="0 NoDisplay">BUFG</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT7_DRIVES</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT7_DRIVES" spirit:choiceRef="choice_pairs_66e4c81f" spirit:order="92" spirit:configGroups="0 NoDisplay">BUFG</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>FEEDBACK_SOURCE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.FEEDBACK_SOURCE" spirit:choiceRef="choice_pairs_15c806d5" spirit:order="93" spirit:configGroups="0 NoDisplay">FDBK_AUTO</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKFB_IN_SIGNALING</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKFB_IN_SIGNALING" spirit:choiceRef="choice_pairs_3c2d3ec7" spirit:order="94" spirit:configGroups="0 NoDisplay">SINGLE</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKFB_IN_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKFB_IN_PORT" spirit:order="95" spirit:configGroups="0 NoDisplay">clkfb_in</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKFB_IN_P_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKFB_IN_P_PORT" spirit:order="96" spirit:configGroups="0 NoDisplay">clkfb_in_p</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKFB_IN_N_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKFB_IN_N_PORT" spirit:order="97" spirit:configGroups="0 NoDisplay">clkfb_in_n</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKFB_OUT_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKFB_OUT_PORT" spirit:order="98" spirit:configGroups="0 NoDisplay">clkfb_out</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKFB_OUT_P_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKFB_OUT_P_PORT" spirit:order="99" spirit:configGroups="0 NoDisplay">clkfb_out_p</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKFB_OUT_N_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKFB_OUT_N_PORT" spirit:order="100" spirit:configGroups="0 NoDisplay">clkfb_out_n</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLATFORM</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PLATFORM" spirit:order="101" spirit:configGroups="0 NoDisplay">UNKNOWN</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>SUMMARY_STRINGS</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.SUMMARY_STRINGS" spirit:order="102" spirit:configGroups="0 NoDisplay">empty</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_LOCKED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_LOCKED" spirit:order="103" spirit:configGroups="0 NoDisplay">true</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CALC_DONE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CALC_DONE" spirit:order="104" spirit:configGroups="0 NoDisplay">empty</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_RESET</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_RESET" spirit:order="105" spirit:configGroups="0 NoDisplay">true</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_POWER_DOWN</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_POWER_DOWN" spirit:order="106" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_STATUS</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_STATUS" spirit:order="107" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_FREEZE</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_FREEZE" spirit:order="108" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_CLK_VALID</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_CLK_VALID" spirit:order="109" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_INCLK_STOPPED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_INCLK_STOPPED" spirit:order="110" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_CLKFB_STOPPED</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_CLKFB_STOPPED" spirit:order="111" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>RESET_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.RESET_PORT" spirit:order="409" spirit:configGroups="0 NoDisplay">reset</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>LOCKED_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.LOCKED_PORT" spirit:order="113" spirit:configGroups="0 NoDisplay">locked</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>POWER_DOWN_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.POWER_DOWN_PORT" spirit:order="114" spirit:configGroups="0 NoDisplay">power_down</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_VALID_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_VALID_PORT" spirit:order="115" spirit:configGroups="0 NoDisplay">CLK_VALID</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>STATUS_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.STATUS_PORT" spirit:order="116" spirit:configGroups="0 NoDisplay">STATUS</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_IN_SEL_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_IN_SEL_PORT" spirit:order="117" spirit:configGroups="0 NoDisplay">clk_in_sel</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>INPUT_CLK_STOPPED_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.INPUT_CLK_STOPPED_PORT" spirit:order="118" spirit:configGroups="0 NoDisplay">input_clk_stopped</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKFB_STOPPED_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLKFB_STOPPED_PORT" spirit:order="119" spirit:configGroups="0 NoDisplay">clkfb_stopped</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>SS_MODE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.SS_MODE" spirit:choiceRef="choice_pairs_f4e10086" spirit:order="120" spirit:configGroups="0 NoDisplay">CENTER_HIGH</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>SS_MOD_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.SS_MOD_FREQ" spirit:order="121" spirit:configGroups="0 NoDisplay">250</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>SS_MOD_TIME</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.SS_MOD_TIME" spirit:order="121.001" spirit:configGroups="0 NoDisplay">0.004</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>OVERRIDE_MMCM</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.OVERRIDE_MMCM" spirit:order="122" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_NOTES</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_NOTES" spirit:order="123" spirit:configGroups="0 NoDisplay">None</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_DIVCLK_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_DIVCLK_DIVIDE" spirit:order="124" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="106" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_BANDWIDTH</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_BANDWIDTH" spirit:choiceRef="choice_list_a9bdfce0" spirit:order="125" spirit:configGroups="0 NoDisplay">OPTIMIZED</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKFBOUT_MULT_F</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F" spirit:order="126" spirit:configGroups="0 NoDisplay">6.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKFBOUT_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKFBOUT_PHASE" spirit:order="127" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKFBOUT_USE_FINE_PS</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKFBOUT_USE_FINE_PS" spirit:order="128" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKIN1_PERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKIN1_PERIOD" spirit:order="129" spirit:configGroups="0 NoDisplay">10.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKIN2_PERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKIN2_PERIOD" spirit:order="130" spirit:configGroups="0 NoDisplay">10.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT4_CASCADE</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT4_CASCADE" spirit:order="131" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLOCK_HOLD</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLOCK_HOLD" spirit:order="132" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_COMPENSATION</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_COMPENSATION" spirit:choiceRef="choice_pairs_502d9f23" spirit:order="133" spirit:configGroups="0 NoDisplay">ZHOLD</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_REF_JITTER1</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_REF_JITTER1" spirit:order="134" spirit:configGroups="0 NoDisplay">0.010</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_REF_JITTER2</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_REF_JITTER2" spirit:order="135" spirit:configGroups="0 NoDisplay">0.010</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_STARTUP_WAIT</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_STARTUP_WAIT" spirit:order="136" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT0_DIVIDE_F</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F" spirit:order="137" spirit:configGroups="0 NoDisplay">6.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT0_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT0_DUTY_CYCLE" spirit:order="138" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT0_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT0_PHASE" spirit:order="139" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT0_USE_FINE_PS</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT0_USE_FINE_PS" spirit:order="140" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT1_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE" spirit:order="141" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">3</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT1_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT1_DUTY_CYCLE" spirit:order="142" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT1_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT1_PHASE" spirit:order="143" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT1_USE_FINE_PS</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT1_USE_FINE_PS" spirit:order="144" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT2_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE" spirit:order="145" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">50</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT2_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT2_DUTY_CYCLE" spirit:order="146" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT2_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT2_PHASE" spirit:order="147" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT2_USE_FINE_PS</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT2_USE_FINE_PS" spirit:order="148" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT3_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT3_DIVIDE" spirit:order="149" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">12</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT3_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT3_DUTY_CYCLE" spirit:order="150" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT3_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT3_PHASE" spirit:order="151" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT3_USE_FINE_PS</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT3_USE_FINE_PS" spirit:order="152" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT4_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT4_DIVIDE" spirit:order="153" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT4_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT4_DUTY_CYCLE" spirit:order="154" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT4_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT4_PHASE" spirit:order="155" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT4_USE_FINE_PS</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT4_USE_FINE_PS" spirit:order="156" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT5_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT5_DIVIDE" spirit:order="157" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT5_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT5_DUTY_CYCLE" spirit:order="158" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT5_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT5_PHASE" spirit:order="159" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT5_USE_FINE_PS</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT5_USE_FINE_PS" spirit:order="160" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT6_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT6_DIVIDE" spirit:order="161" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT6_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT6_DUTY_CYCLE" spirit:order="162" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT6_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT6_PHASE" spirit:order="163" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>MMCM_CLKOUT6_USE_FINE_PS</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.MMCM_CLKOUT6_USE_FINE_PS" spirit:order="164" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>OVERRIDE_PLL</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.OVERRIDE_PLL" spirit:order="165" spirit:configGroups="0 NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_NOTES</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_NOTES" spirit:order="166" spirit:configGroups="0 NoDisplay">None</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_BANDWIDTH</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_BANDWIDTH" spirit:choiceRef="choice_list_a9bdfce0" spirit:order="167" spirit:configGroups="0 NoDisplay">OPTIMIZED</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKFBOUT_MULT</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKFBOUT_MULT" spirit:order="168" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="64" spirit:rangeType="long">4</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKFBOUT_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKFBOUT_PHASE" spirit:order="169" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLK_FEEDBACK</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLK_FEEDBACK" spirit:choiceRef="choice_list_b9d38208" spirit:order="170" spirit:configGroups="0 NoDisplay">CLKFBOUT</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_DIVCLK_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_DIVCLK_DIVIDE" spirit:order="171" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="52" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKIN_PERIOD</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKIN_PERIOD" spirit:order="172" spirit:configGroups="0 NoDisplay">10.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_COMPENSATION</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_COMPENSATION" spirit:choiceRef="choice_pairs_035ca1c3" spirit:order="173" spirit:configGroups="0 NoDisplay">SYSTEM_SYNCHRONOUS</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_REF_JITTER</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_REF_JITTER" spirit:order="174" spirit:configGroups="0 NoDisplay">0.010</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT0_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT0_DIVIDE" spirit:order="175" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT0_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT0_DUTY_CYCLE" spirit:order="176" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT0_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT0_PHASE" spirit:order="177" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT1_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT1_DIVIDE" spirit:order="178" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT1_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT1_DUTY_CYCLE" spirit:order="179" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT1_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT1_PHASE" spirit:order="180" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT2_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT2_DIVIDE" spirit:order="181" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT2_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT2_DUTY_CYCLE" spirit:order="182" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT2_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT2_PHASE" spirit:order="183" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT3_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT3_DIVIDE" spirit:order="184" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT3_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT3_DUTY_CYCLE" spirit:order="185" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT3_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT3_PHASE" spirit:order="186" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT4_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT4_DIVIDE" spirit:order="187" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT4_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT4_DUTY_CYCLE" spirit:order="188" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT4_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT4_PHASE" spirit:order="189" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT5_DIVIDE</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT5_DIVIDE" spirit:order="190" spirit:configGroups="0 NoDisplay" spirit:minimum="1" spirit:maximum="128" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT5_DUTY_CYCLE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT5_DUTY_CYCLE" spirit:order="191" spirit:configGroups="0 NoDisplay">0.500</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PLL_CLKOUT5_PHASE</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.PLL_CLKOUT5_PHASE" spirit:order="192" spirit:configGroups="0 NoDisplay">0.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>RESET_TYPE</spirit:name> + <spirit:displayName>Reset Type</spirit:displayName> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.RESET_TYPE" spirit:choiceRef="choice_pairs_a4fbc00c" spirit:order="408" spirit:configGroups="0 NoDisplay">ACTIVE_HIGH</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_SAFE_CLOCK_STARTUP</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_SAFE_CLOCK_STARTUP" spirit:order="85.5" spirit:configGroups="0; NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_CLOCK_SEQUENCING</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_CLOCK_SEQUENCING" spirit:order="501" spirit:configGroups="0; NoDisplay">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT1_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT1_SEQUENCE_NUMBER" spirit:order="502" spirit:configGroups="0; NoDisplay" spirit:minimum="1" spirit:maximum="7" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT2_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT2_SEQUENCE_NUMBER" spirit:order="503" spirit:configGroups="0; NoDisplay" spirit:minimum="1" spirit:maximum="7" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT3_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT3_SEQUENCE_NUMBER" spirit:order="504" spirit:configGroups="0; NoDisplay" spirit:minimum="1" spirit:maximum="7" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT4_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT4_SEQUENCE_NUMBER" spirit:order="505" spirit:configGroups="0; NoDisplay" spirit:minimum="1" spirit:maximum="7" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT5_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT5_SEQUENCE_NUMBER" spirit:order="506" spirit:configGroups="0; NoDisplay" spirit:minimum="1" spirit:maximum="7" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT6_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT6_SEQUENCE_NUMBER" spirit:order="507" spirit:configGroups="0; NoDisplay" spirit:minimum="1" spirit:maximum="7" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT7_SEQUENCE_NUMBER</spirit:name> + <spirit:value spirit:format="long" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT7_SEQUENCE_NUMBER" spirit:order="508" spirit:configGroups="0; NoDisplay" spirit:minimum="1" spirit:maximum="7" spirit:rangeType="long">1</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>USE_BOARD_FLOW</spirit:name> + <spirit:displayName>Generate Board based IO Constraints</spirit:displayName> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.USE_BOARD_FLOW" spirit:order="1.1">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_IN1_BOARD_INTERFACE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_IN1_BOARD_INTERFACE" spirit:choiceRef="choice_pairs_0920eb1b" spirit:order="13.8">Custom</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLK_IN2_BOARD_INTERFACE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CLK_IN2_BOARD_INTERFACE" spirit:choiceRef="choice_pairs_0920eb1b" spirit:order="13.9">Custom</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>DIFF_CLK_IN1_BOARD_INTERFACE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DIFF_CLK_IN1_BOARD_INTERFACE" spirit:choiceRef="choice_pairs_0920eb1b" spirit:order="13.1">Custom</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>DIFF_CLK_IN2_BOARD_INTERFACE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.DIFF_CLK_IN2_BOARD_INTERFACE" spirit:choiceRef="choice_pairs_0920eb1b" spirit:order="13.2">Custom</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>RESET_BOARD_INTERFACE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.RESET_BOARD_INTERFACE" spirit:choiceRef="choice_list_ac75ef1e" spirit:order="21.4">Custom</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ENABLE_CDDC</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_CDDC" spirit:order="509">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CDDCDONE_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CDDCDONE_PORT" spirit:order="510" spirit:configGroups="0 NoDisplay">cddcdone</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CDDCREQ_PORT</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.CDDCREQ_PORT" spirit:order="511" spirit:configGroups="0 NoDisplay">cddcreq</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>ENABLE_CLKOUTPHY</spirit:name> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.ENABLE_CLKOUTPHY" spirit:order="123.1">false</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUTPHY_REQUESTED_FREQ</spirit:name> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUTPHY_REQUESTED_FREQ" spirit:order="123.2" spirit:configGroups="0 NoDisplay">600.000</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT1_JITTER</spirit:name> + <spirit:displayName>Clkout1 Jitter</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT1_JITTER" spirit:order="1000">151.366</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT1_PHASE_ERROR</spirit:name> + <spirit:displayName>Clkout1 Phase</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT1_PHASE_ERROR" spirit:order="1001">132.063</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT2_JITTER</spirit:name> + <spirit:displayName>Clkout2 Jitter</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT2_JITTER" spirit:order="1002">132.221</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT2_PHASE_ERROR</spirit:name> + <spirit:displayName>Clkout2 Phase</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT2_PHASE_ERROR" spirit:order="1003">132.063</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT3_JITTER</spirit:name> + <spirit:displayName>Clkout3 Jitter</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT3_JITTER" spirit:order="1004">231.952</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT3_PHASE_ERROR</spirit:name> + <spirit:displayName>Clkout3 Phase</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT3_PHASE_ERROR" spirit:order="1005">132.063</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT4_JITTER</spirit:name> + <spirit:displayName>Clkout4 Jitter</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT4_JITTER" spirit:order="1006">174.353</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT4_PHASE_ERROR</spirit:name> + <spirit:displayName>Clkout4 Phase</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT4_PHASE_ERROR" spirit:order="1007">132.063</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT5_JITTER</spirit:name> + <spirit:displayName>Clkout5 Jitter</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT5_JITTER" spirit:order="1008">0.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT5_PHASE_ERROR</spirit:name> + <spirit:displayName>Clkout5 Phase</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT5_PHASE_ERROR" spirit:order="1009">0.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT6_JITTER</spirit:name> + <spirit:displayName>Clkout6 Jitter</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT6_JITTER" spirit:order="1010">0.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT6_PHASE_ERROR</spirit:name> + <spirit:displayName>Clkout6 Phase</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT6_PHASE_ERROR" spirit:order="1011">0.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT7_JITTER</spirit:name> + <spirit:displayName>Clkout7 Jitter</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT7_JITTER" spirit:order="1012">0.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>CLKOUT7_PHASE_ERROR</spirit:name> + <spirit:displayName>Clkout7 Phase</spirit:displayName> + <spirit:value spirit:format="float" spirit:resolve="user" spirit:id="PARAM_VALUE.CLKOUT7_PHASE_ERROR" spirit:order="1013">0.0</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>INPUT_MODE</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.INPUT_MODE" spirit:choiceRef="choice_pairs_f669c2f5" spirit:order="14.4">frequency</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>INTERFACE_SELECTION</spirit:name> + <spirit:value spirit:resolve="user" spirit:id="PARAM_VALUE.INTERFACE_SELECTION" spirit:choiceRef="choice_pairs_8b28f1f7" spirit:order="11.1">Enable_AXI</spirit:value> + </spirit:parameter> + <spirit:parameter> + <spirit:name>PHASE_DUTY_CONFIG</spirit:name> + <spirit:displayName>Phase Duty Cycle Config</spirit:displayName> + <spirit:value spirit:format="bool" spirit:resolve="user" spirit:id="PARAM_VALUE.PHASE_DUTY_CONFIG" spirit:order="11.2">false</spirit:value> + <spirit:vendorExtensions> + <xilinx:parameterInfo> + <xilinx:enablement> + <xilinx:isEnabled xilinx:resolve="dependent" xilinx:id="PARAM_ENABLEMENT.PHASE_DUTY_CONFIG">false</xilinx:isEnabled> + </xilinx:enablement> + </xilinx:parameterInfo> + </spirit:vendorExtensions> + </spirit:parameter> + </spirit:parameters> + <spirit:vendorExtensions> + <xilinx:coreExtensions> + <xilinx:displayName>Clocking Wizard</xilinx:displayName> + <xilinx:coreRevision>0</xilinx:coreRevision> + <xilinx:configElementInfos> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_JITTER" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT1_PHASE_ERROR" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_JITTER" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_PHASE_ERROR" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT2_USED" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_JITTER" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_PHASE_ERROR" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT3_USED" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_JITTER" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_PHASE_ERROR" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.CLKOUT4_USED" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKFBOUT_MULT_F" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT0_DIVIDE_F" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT1_DIVIDE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT2_DIVIDE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_CLKOUT3_DIVIDE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.MMCM_DIVCLK_DIVIDE" xilinx:valueSource="user"/> + <xilinx:configElementInfo xilinx:referenceId="PARAM_VALUE.NUM_OUT_CLKS" xilinx:valueSource="user"/> + </xilinx:configElementInfos> + </xilinx:coreExtensions> + <xilinx:packagingInfo> + <xilinx:xilinxVersion>2015.3</xilinx:xilinxVersion> + <xilinx:checksum xilinx:scope="busInterfaces" xilinx:value="69bff2c8"/> + <xilinx:checksum xilinx:scope="fileGroups" xilinx:value="3a523104"/> + <xilinx:checksum xilinx:scope="ports" xilinx:value="a5d35bf6"/> + <xilinx:checksum xilinx:scope="hdlParameters" xilinx:value="18e8d175"/> + <xilinx:checksum xilinx:scope="parameters" xilinx:value="09870f83"/> + </xilinx:packagingInfo> + </spirit:vendorExtensions> +</spirit:component> diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_board.xdc b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_board.xdc new file mode 100644 index 0000000..3422a8e --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_board.xdc @@ -0,0 +1,2 @@ +#--------------------Physical Constraints----------------- + diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v new file mode 100644 index 0000000..e47643a --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v @@ -0,0 +1,215 @@ +// file: clk_wiz_0.v +// +// (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved. +// +// This file contains confidential and proprietary information +// of Xilinx, Inc. and is protected under U.S. and +// international copyright and other intellectual property +// laws. +// +// DISCLAIMER +// This disclaimer is not a license and does not grant any +// rights to the materials distributed herewith. Except as +// otherwise provided in a valid license issued to you by +// Xilinx, and to the maximum extent permitted by applicable +// law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +// WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +// AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +// BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +// INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +// (2) Xilinx shall not be liable (whether in contract or tort, +// including negligence, or under any other theory of +// liability) for any loss or damage of any kind or nature +// related to, arising under or in connection with these +// materials, including for any direct, or any indirect, +// special, incidental, or consequential loss or damage +// (including loss of data, profits, goodwill, or any type of +// loss or damage suffered as a result of any action brought +// by a third party) even if such damage or loss was +// reasonably foreseeable or Xilinx had been advised of the +// possibility of the same. +// +// CRITICAL APPLICATIONS +// Xilinx products are not designed or intended to be fail- +// safe, or for use in any application requiring fail-safe +// performance, such as life-support or safety devices or +// systems, Class III medical devices, nuclear facilities, +// applications related to the deployment of airbags, or any +// other applications that could lead to death, personal +// injury, or severe property or environmental damage +// (individually and collectively, "Critical +// Applications"). Customer assumes the sole risk and +// liability of any use of Xilinx products in Critical +// Applications, subject only to applicable laws and +// regulations governing limitations on product liability. +// +// THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +// PART OF THIS FILE AT ALL TIMES. +// +//---------------------------------------------------------------------------- +// User entered comments +//---------------------------------------------------------------------------- +// None +// +//---------------------------------------------------------------------------- +// Output Output Phase Duty Cycle Pk-to-Pk Phase +// Clock Freq (MHz) (degrees) (%) Jitter (ps) Error (ps) +//---------------------------------------------------------------------------- +// CLK_OUT1___100.000______0.000______50.0______151.366____132.063 +// CLK_OUT2___200.000______0.000______50.0______132.221____132.063 +// CLK_OUT3____12.000______0.000______50.0______231.952____132.063 +// CLK_OUT4____50.000______0.000______50.0______174.353____132.063 +// +//---------------------------------------------------------------------------- +// Input Clock Freq (MHz) Input Jitter (UI) +//---------------------------------------------------------------------------- +// __primary_________100.000____________0.010 + +`timescale 1ps/1ps + +module clk_wiz_0_clk_wiz + (// Clock in ports + input clk_in1, + // Clock out ports + output clk_out1, + output clk_out2, + output clk_out3, + output clk_out4, + // Status and control signals + input reset, + output locked + ); + + // Input buffering + //------------------------------------ + IBUF clkin1_ibufg + (.O (clk_in1_clk_wiz_0), + .I (clk_in1)); + + + + // Clocking PRIMITIVE + //------------------------------------ + + // Instantiation of the MMCM PRIMITIVE + // * Unused inputs are tied off + // * Unused outputs are labeled unused + wire [15:0] do_unused; + wire drdy_unused; + wire psdone_unused; + wire locked_int; + wire clkfbout_clk_wiz_0; + wire clkfbout_buf_clk_wiz_0; + wire clkfboutb_unused; + wire clkout0b_unused; + wire clkout1b_unused; + wire clkout2b_unused; + wire clkout3b_unused; + wire clkout4_unused; + wire clkout5_unused; + wire clkout6_unused; + wire clkfbstopped_unused; + wire clkinstopped_unused; + wire reset_high; + + MMCME2_ADV + #(.BANDWIDTH ("OPTIMIZED"), + .CLKOUT4_CASCADE ("FALSE"), + .COMPENSATION ("ZHOLD"), + .STARTUP_WAIT ("FALSE"), + .DIVCLK_DIVIDE (1), + .CLKFBOUT_MULT_F (6.000), + .CLKFBOUT_PHASE (0.000), + .CLKFBOUT_USE_FINE_PS ("FALSE"), + .CLKOUT0_DIVIDE_F (6.000), + .CLKOUT0_PHASE (0.000), + .CLKOUT0_DUTY_CYCLE (0.500), + .CLKOUT0_USE_FINE_PS ("FALSE"), + .CLKOUT1_DIVIDE (3), + .CLKOUT1_PHASE (0.000), + .CLKOUT1_DUTY_CYCLE (0.500), + .CLKOUT1_USE_FINE_PS ("FALSE"), + .CLKOUT2_DIVIDE (50), + .CLKOUT2_PHASE (0.000), + .CLKOUT2_DUTY_CYCLE (0.500), + .CLKOUT2_USE_FINE_PS ("FALSE"), + .CLKOUT3_DIVIDE (12), + .CLKOUT3_PHASE (0.000), + .CLKOUT3_DUTY_CYCLE (0.500), + .CLKOUT3_USE_FINE_PS ("FALSE"), + .CLKIN1_PERIOD (10.0)) + mmcm_adv_inst + // Output clocks + ( + .CLKFBOUT (clkfbout_clk_wiz_0), + .CLKFBOUTB (clkfboutb_unused), + .CLKOUT0 (clk_out1_clk_wiz_0), + .CLKOUT0B (clkout0b_unused), + .CLKOUT1 (clk_out2_clk_wiz_0), + .CLKOUT1B (clkout1b_unused), + .CLKOUT2 (clk_out3_clk_wiz_0), + .CLKOUT2B (clkout2b_unused), + .CLKOUT3 (clk_out4_clk_wiz_0), + .CLKOUT3B (clkout3b_unused), + .CLKOUT4 (clkout4_unused), + .CLKOUT5 (clkout5_unused), + .CLKOUT6 (clkout6_unused), + // Input clock control + .CLKFBIN (clkfbout_buf_clk_wiz_0), + .CLKIN1 (clk_in1_clk_wiz_0), + .CLKIN2 (1'b0), + // Tied to always select the primary input clock + .CLKINSEL (1'b1), + // Ports for dynamic reconfiguration + .DADDR (7'h0), + .DCLK (1'b0), + .DEN (1'b0), + .DI (16'h0), + .DO (do_unused), + .DRDY (drdy_unused), + .DWE (1'b0), + // Ports for dynamic phase shift + .PSCLK (1'b0), + .PSEN (1'b0), + .PSINCDEC (1'b0), + .PSDONE (psdone_unused), + // Other control and status signals + .LOCKED (locked_int), + .CLKINSTOPPED (clkinstopped_unused), + .CLKFBSTOPPED (clkfbstopped_unused), + .PWRDWN (1'b0), + .RST (reset_high)); + + assign reset_high = reset; + + assign locked = locked_int; + + // Output buffering + //----------------------------------- + + BUFG clkf_buf + (.O (clkfbout_buf_clk_wiz_0), + .I (clkfbout_clk_wiz_0)); + + + + BUFG clkout1_buf + (.O (clk_out1), + .I (clk_out1_clk_wiz_0)); + + + BUFG clkout2_buf + (.O (clk_out2), + .I (clk_out2_clk_wiz_0)); + + BUFG clkout3_buf + (.O (clk_out3), + .I (clk_out3_clk_wiz_0)); + + BUFG clkout4_buf + (.O (clk_out4), + .I (clk_out4_clk_wiz_0)); + + + +endmodule diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc new file mode 100644 index 0000000..41c79d7 --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc @@ -0,0 +1,56 @@ +# file: clk_wiz_0_ooc.xdc +# +# (c) Copyright 2008 - 2013 Xilinx, Inc. All rights reserved. +# +# This file contains confidential and proprietary information +# of Xilinx, Inc. and is protected under U.S. and +# international copyright and other intellectual property +# laws. +# +# DISCLAIMER +# This disclaimer is not a license and does not grant any +# rights to the materials distributed herewith. Except as +# otherwise provided in a valid license issued to you by +# Xilinx, and to the maximum extent permitted by applicable +# law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +# WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +# AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +# BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +# INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +# (2) Xilinx shall not be liable (whether in contract or tort, +# including negligence, or under any other theory of +# liability) for any loss or damage of any kind or nature +# related to, arising under or in connection with these +# materials, including for any direct, or any indirect, +# special, incidental, or consequential loss or damage +# (including loss of data, profits, goodwill, or any type of +# loss or damage suffered as a result of any action brought +# by a third party) even if such damage or loss was +# reasonably foreseeable or Xilinx had been advised of the +# possibility of the same. +# +# CRITICAL APPLICATIONS +# Xilinx products are not designed or intended to be fail- +# safe, or for use in any application requiring fail-safe +# performance, such as life-support or safety devices or +# systems, Class III medical devices, nuclear facilities, +# applications related to the deployment of airbags, or any +# other applications that could lead to death, personal +# injury, or severe property or environmental damage +# (individually and collectively, "Critical +# Applications"). Customer assumes the sole risk and +# liability of any use of Xilinx products in Critical +# Applications, subject only to applicable laws and +# regulations governing limitations on product liability. +# +# THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +# PART OF THIS FILE AT ALL TIMES. +# + +################# +#DEFAULT CLOCK CONSTRAINTS + +############################################################ +# Clock Period Constraints # +############################################################ +#create_clock -period 10.0 [get_ports clk_in1] diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v new file mode 100644 index 0000000..e0a8184 --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v @@ -0,0 +1,278 @@ +// Copyright 1986-2015 Xilinx, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015 +// Date : Thu Jan 21 17:13:26 2016 +// Host : WK86 running 64-bit Service Pack 1 (build 7601) +// Command : write_verilog -force -mode funcsim C:/Work/Github/Working/Looper/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v +// Design : clk_wiz_0 +// Purpose : This verilog netlist is a functional simulation representation of the design and should not be modified +// or synthesized. This netlist cannot be used for SDF annotated simulation. +// Device : xc7a200tsbg484-1 +// -------------------------------------------------------------------------------- +`timescale 1 ps / 1 ps + +(* CORE_GENERATION_INFO = "clk_wiz_0,clk_wiz_v5_2_0,{component_name=clk_wiz_0,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=4,clkin1_period=10.0,clkin2_period=10.0,use_power_down=false,use_reset=true,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}" *) +(* NotValidForBitStream *) +module clk_wiz_0 + (clk_in1, + clk_out1, + clk_out2, + clk_out3, + clk_out4, + reset, + locked); + input clk_in1; + output clk_out1; + output clk_out2; + output clk_out3; + output clk_out4; + input reset; + output locked; + + (* IBUF_LOW_PWR *) wire clk_in1; + wire clk_out1; + wire clk_out2; + wire clk_out3; + wire clk_out4; + wire locked; + wire reset; + + clk_wiz_0_clk_wiz_0_clk_wiz inst + (.clk_in1(clk_in1), + .clk_out1(clk_out1), + .clk_out2(clk_out2), + .clk_out3(clk_out3), + .clk_out4(clk_out4), + .locked(locked), + .reset(reset)); +endmodule + +(* ORIG_REF_NAME = "clk_wiz_0_clk_wiz" *) +module clk_wiz_0_clk_wiz_0_clk_wiz + (clk_in1, + clk_out1, + clk_out2, + clk_out3, + clk_out4, + reset, + locked); + input clk_in1; + output clk_out1; + output clk_out2; + output clk_out3; + output clk_out4; + input reset; + output locked; + + wire clk_in1; + wire clk_in1_clk_wiz_0; + wire clk_out1; + wire clk_out1_clk_wiz_0; + wire clk_out2; + wire clk_out2_clk_wiz_0; + wire clk_out3; + wire clk_out3_clk_wiz_0; + wire clk_out4; + wire clk_out4_clk_wiz_0; + wire clkfbout_buf_clk_wiz_0; + wire clkfbout_clk_wiz_0; + wire locked; + wire reset; + wire NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED; + wire NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED; + wire NLW_mmcm_adv_inst_DRDY_UNCONNECTED; + wire NLW_mmcm_adv_inst_PSDONE_UNCONNECTED; + wire [15:0]NLW_mmcm_adv_inst_DO_UNCONNECTED; + + (* BOX_TYPE = "PRIMITIVE" *) + BUFG clkf_buf + (.I(clkfbout_clk_wiz_0), + .O(clkfbout_buf_clk_wiz_0)); + (* BOX_TYPE = "PRIMITIVE" *) + (* CAPACITANCE = "DONT_CARE" *) + (* IBUF_DELAY_VALUE = "0" *) + (* IFD_DELAY_VALUE = "AUTO" *) + IBUF #( + .IOSTANDARD("DEFAULT")) + clkin1_ibufg + (.I(clk_in1), + .O(clk_in1_clk_wiz_0)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG clkout1_buf + (.I(clk_out1_clk_wiz_0), + .O(clk_out1)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG clkout2_buf + (.I(clk_out2_clk_wiz_0), + .O(clk_out2)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG clkout3_buf + (.I(clk_out3_clk_wiz_0), + .O(clk_out3)); + (* BOX_TYPE = "PRIMITIVE" *) + BUFG clkout4_buf + (.I(clk_out4_clk_wiz_0), + .O(clk_out4)); + (* BOX_TYPE = "PRIMITIVE" *) + MMCME2_ADV #( + .BANDWIDTH("OPTIMIZED"), + .CLKFBOUT_MULT_F(6.000000), + .CLKFBOUT_PHASE(0.000000), + .CLKFBOUT_USE_FINE_PS("FALSE"), + .CLKIN1_PERIOD(10.000000), + .CLKIN2_PERIOD(0.000000), + .CLKOUT0_DIVIDE_F(6.000000), + .CLKOUT0_DUTY_CYCLE(0.500000), + .CLKOUT0_PHASE(0.000000), + .CLKOUT0_USE_FINE_PS("FALSE"), + .CLKOUT1_DIVIDE(3), + .CLKOUT1_DUTY_CYCLE(0.500000), + .CLKOUT1_PHASE(0.000000), + .CLKOUT1_USE_FINE_PS("FALSE"), + .CLKOUT2_DIVIDE(50), + .CLKOUT2_DUTY_CYCLE(0.500000), + .CLKOUT2_PHASE(0.000000), + .CLKOUT2_USE_FINE_PS("FALSE"), + .CLKOUT3_DIVIDE(12), + .CLKOUT3_DUTY_CYCLE(0.500000), + .CLKOUT3_PHASE(0.000000), + .CLKOUT3_USE_FINE_PS("FALSE"), + .CLKOUT4_CASCADE("FALSE"), + .CLKOUT4_DIVIDE(1), + .CLKOUT4_DUTY_CYCLE(0.500000), + .CLKOUT4_PHASE(0.000000), + .CLKOUT4_USE_FINE_PS("FALSE"), + .CLKOUT5_DIVIDE(1), + .CLKOUT5_DUTY_CYCLE(0.500000), + .CLKOUT5_PHASE(0.000000), + .CLKOUT5_USE_FINE_PS("FALSE"), + .CLKOUT6_DIVIDE(1), + .CLKOUT6_DUTY_CYCLE(0.500000), + .CLKOUT6_PHASE(0.000000), + .CLKOUT6_USE_FINE_PS("FALSE"), + .COMPENSATION("ZHOLD"), + .DIVCLK_DIVIDE(1), + .IS_CLKINSEL_INVERTED(1'b0), + .IS_PSEN_INVERTED(1'b0), + .IS_PSINCDEC_INVERTED(1'b0), + .IS_PWRDWN_INVERTED(1'b0), + .IS_RST_INVERTED(1'b0), + .REF_JITTER1(0.010000), + .REF_JITTER2(0.010000), + .SS_EN("FALSE"), + .SS_MODE("CENTER_HIGH"), + .SS_MOD_PERIOD(10000), + .STARTUP_WAIT("FALSE")) + mmcm_adv_inst + (.CLKFBIN(clkfbout_buf_clk_wiz_0), + .CLKFBOUT(clkfbout_clk_wiz_0), + .CLKFBOUTB(NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED), + .CLKFBSTOPPED(NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED), + .CLKIN1(clk_in1_clk_wiz_0), + .CLKIN2(1'b0), + .CLKINSEL(1'b1), + .CLKINSTOPPED(NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED), + .CLKOUT0(clk_out1_clk_wiz_0), + .CLKOUT0B(NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED), + .CLKOUT1(clk_out2_clk_wiz_0), + .CLKOUT1B(NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED), + .CLKOUT2(clk_out3_clk_wiz_0), + .CLKOUT2B(NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED), + .CLKOUT3(clk_out4_clk_wiz_0), + .CLKOUT3B(NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED), + .CLKOUT4(NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED), + .CLKOUT5(NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED), + .CLKOUT6(NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED), + .DADDR({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .DCLK(1'b0), + .DEN(1'b0), + .DI({1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0,1'b0}), + .DO(NLW_mmcm_adv_inst_DO_UNCONNECTED[15:0]), + .DRDY(NLW_mmcm_adv_inst_DRDY_UNCONNECTED), + .DWE(1'b0), + .LOCKED(locked), + .PSCLK(1'b0), + .PSDONE(NLW_mmcm_adv_inst_PSDONE_UNCONNECTED), + .PSEN(1'b0), + .PSINCDEC(1'b0), + .PWRDWN(1'b0), + .RST(reset)); +endmodule +`ifndef GLBL +`define GLBL +`timescale 1 ps / 1 ps + +module glbl (); + + parameter ROC_WIDTH = 100000; + parameter TOC_WIDTH = 0; + +//-------- STARTUP Globals -------------- + wire GSR; + wire GTS; + wire GWE; + wire PRLD; + tri1 p_up_tmp; + tri (weak1, strong0) PLL_LOCKG = p_up_tmp; + + wire PROGB_GLBL; + wire CCLKO_GLBL; + wire FCSBO_GLBL; + wire [3:0] DO_GLBL; + wire [3:0] DI_GLBL; + + reg GSR_int; + reg GTS_int; + reg PRLD_int; + +//-------- JTAG Globals -------------- + wire JTAG_TDO_GLBL; + wire JTAG_TCK_GLBL; + wire JTAG_TDI_GLBL; + wire JTAG_TMS_GLBL; + wire JTAG_TRST_GLBL; + + reg JTAG_CAPTURE_GLBL; + reg JTAG_RESET_GLBL; + reg JTAG_SHIFT_GLBL; + reg JTAG_UPDATE_GLBL; + reg JTAG_RUNTEST_GLBL; + + reg JTAG_SEL1_GLBL = 0; + reg JTAG_SEL2_GLBL = 0 ; + reg JTAG_SEL3_GLBL = 0; + reg JTAG_SEL4_GLBL = 0; + + reg JTAG_USER_TDO1_GLBL = 1'bz; + reg JTAG_USER_TDO2_GLBL = 1'bz; + reg JTAG_USER_TDO3_GLBL = 1'bz; + reg JTAG_USER_TDO4_GLBL = 1'bz; + + assign (weak1, weak0) GSR = GSR_int; + assign (weak1, weak0) GTS = GTS_int; + assign (weak1, weak0) PRLD = PRLD_int; + + initial begin + GSR_int = 1'b1; + PRLD_int = 1'b1; + #(ROC_WIDTH) + GSR_int = 1'b0; + PRLD_int = 1'b0; + end + + initial begin + GTS_int = 1'b1; + #(TOC_WIDTH) + GTS_int = 1'b0; + end + +endmodule +`endif diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl new file mode 100644 index 0000000..84ae83d --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl @@ -0,0 +1,218 @@ +-- Copyright 1986-2015 Xilinx, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015 +-- Date : Thu Jan 21 17:13:26 2016 +-- Host : WK86 running 64-bit Service Pack 1 (build 7601) +-- Command : write_vhdl -force -mode funcsim C:/Work/Github/Working/Looper/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl +-- Design : clk_wiz_0 +-- Purpose : This VHDL netlist is a functional simulation representation of the design and should not be modified or +-- synthesized. This netlist cannot be used for SDF annotated simulation. +-- Device : xc7a200tsbg484-1 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity clk_wiz_0_clk_wiz_0_clk_wiz is + port ( + clk_in1 : in STD_LOGIC; + clk_out1 : out STD_LOGIC; + clk_out2 : out STD_LOGIC; + clk_out3 : out STD_LOGIC; + clk_out4 : out STD_LOGIC; + reset : in STD_LOGIC; + locked : out STD_LOGIC + ); + attribute ORIG_REF_NAME : string; + attribute ORIG_REF_NAME of clk_wiz_0_clk_wiz_0_clk_wiz : entity is "clk_wiz_0_clk_wiz"; +end clk_wiz_0_clk_wiz_0_clk_wiz; + +architecture STRUCTURE of clk_wiz_0_clk_wiz_0_clk_wiz is + signal clk_in1_clk_wiz_0 : STD_LOGIC; + signal clk_out1_clk_wiz_0 : STD_LOGIC; + signal clk_out2_clk_wiz_0 : STD_LOGIC; + signal clk_out3_clk_wiz_0 : STD_LOGIC; + signal clk_out4_clk_wiz_0 : STD_LOGIC; + signal clkfbout_buf_clk_wiz_0 : STD_LOGIC; + signal clkfbout_clk_wiz_0 : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_DRDY_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_PSDONE_UNCONNECTED : STD_LOGIC; + signal NLW_mmcm_adv_inst_DO_UNCONNECTED : STD_LOGIC_VECTOR ( 15 downto 0 ); + attribute BOX_TYPE : string; + attribute BOX_TYPE of clkf_buf : label is "PRIMITIVE"; + attribute BOX_TYPE of clkin1_ibufg : label is "PRIMITIVE"; + attribute CAPACITANCE : string; + attribute CAPACITANCE of clkin1_ibufg : label is "DONT_CARE"; + attribute IBUF_DELAY_VALUE : string; + attribute IBUF_DELAY_VALUE of clkin1_ibufg : label is "0"; + attribute IFD_DELAY_VALUE : string; + attribute IFD_DELAY_VALUE of clkin1_ibufg : label is "AUTO"; + attribute BOX_TYPE of clkout1_buf : label is "PRIMITIVE"; + attribute BOX_TYPE of clkout2_buf : label is "PRIMITIVE"; + attribute BOX_TYPE of clkout3_buf : label is "PRIMITIVE"; + attribute BOX_TYPE of clkout4_buf : label is "PRIMITIVE"; + attribute BOX_TYPE of mmcm_adv_inst : label is "PRIMITIVE"; +begin +clkf_buf: unisim.vcomponents.BUFG + port map ( + I => clkfbout_clk_wiz_0, + O => clkfbout_buf_clk_wiz_0 + ); +clkin1_ibufg: unisim.vcomponents.IBUF + generic map( + IOSTANDARD => "DEFAULT" + ) + port map ( + I => clk_in1, + O => clk_in1_clk_wiz_0 + ); +clkout1_buf: unisim.vcomponents.BUFG + port map ( + I => clk_out1_clk_wiz_0, + O => clk_out1 + ); +clkout2_buf: unisim.vcomponents.BUFG + port map ( + I => clk_out2_clk_wiz_0, + O => clk_out2 + ); +clkout3_buf: unisim.vcomponents.BUFG + port map ( + I => clk_out3_clk_wiz_0, + O => clk_out3 + ); +clkout4_buf: unisim.vcomponents.BUFG + port map ( + I => clk_out4_clk_wiz_0, + O => clk_out4 + ); +mmcm_adv_inst: unisim.vcomponents.MMCME2_ADV + generic map( + BANDWIDTH => "OPTIMIZED", + CLKFBOUT_MULT_F => 6.000000, + CLKFBOUT_PHASE => 0.000000, + CLKFBOUT_USE_FINE_PS => false, + CLKIN1_PERIOD => 10.000000, + CLKIN2_PERIOD => 0.000000, + CLKOUT0_DIVIDE_F => 6.000000, + CLKOUT0_DUTY_CYCLE => 0.500000, + CLKOUT0_PHASE => 0.000000, + CLKOUT0_USE_FINE_PS => false, + CLKOUT1_DIVIDE => 3, + CLKOUT1_DUTY_CYCLE => 0.500000, + CLKOUT1_PHASE => 0.000000, + CLKOUT1_USE_FINE_PS => false, + CLKOUT2_DIVIDE => 50, + CLKOUT2_DUTY_CYCLE => 0.500000, + CLKOUT2_PHASE => 0.000000, + CLKOUT2_USE_FINE_PS => false, + CLKOUT3_DIVIDE => 12, + CLKOUT3_DUTY_CYCLE => 0.500000, + CLKOUT3_PHASE => 0.000000, + CLKOUT3_USE_FINE_PS => false, + CLKOUT4_CASCADE => false, + CLKOUT4_DIVIDE => 1, + CLKOUT4_DUTY_CYCLE => 0.500000, + CLKOUT4_PHASE => 0.000000, + CLKOUT4_USE_FINE_PS => false, + CLKOUT5_DIVIDE => 1, + CLKOUT5_DUTY_CYCLE => 0.500000, + CLKOUT5_PHASE => 0.000000, + CLKOUT5_USE_FINE_PS => false, + CLKOUT6_DIVIDE => 1, + CLKOUT6_DUTY_CYCLE => 0.500000, + CLKOUT6_PHASE => 0.000000, + CLKOUT6_USE_FINE_PS => false, + COMPENSATION => "ZHOLD", + DIVCLK_DIVIDE => 1, + IS_CLKINSEL_INVERTED => '0', + IS_PSEN_INVERTED => '0', + IS_PSINCDEC_INVERTED => '0', + IS_PWRDWN_INVERTED => '0', + IS_RST_INVERTED => '0', + REF_JITTER1 => 0.010000, + REF_JITTER2 => 0.010000, + SS_EN => "FALSE", + SS_MODE => "CENTER_HIGH", + SS_MOD_PERIOD => 10000, + STARTUP_WAIT => false + ) + port map ( + CLKFBIN => clkfbout_buf_clk_wiz_0, + CLKFBOUT => clkfbout_clk_wiz_0, + CLKFBOUTB => NLW_mmcm_adv_inst_CLKFBOUTB_UNCONNECTED, + CLKFBSTOPPED => NLW_mmcm_adv_inst_CLKFBSTOPPED_UNCONNECTED, + CLKIN1 => clk_in1_clk_wiz_0, + CLKIN2 => '0', + CLKINSEL => '1', + CLKINSTOPPED => NLW_mmcm_adv_inst_CLKINSTOPPED_UNCONNECTED, + CLKOUT0 => clk_out1_clk_wiz_0, + CLKOUT0B => NLW_mmcm_adv_inst_CLKOUT0B_UNCONNECTED, + CLKOUT1 => clk_out2_clk_wiz_0, + CLKOUT1B => NLW_mmcm_adv_inst_CLKOUT1B_UNCONNECTED, + CLKOUT2 => clk_out3_clk_wiz_0, + CLKOUT2B => NLW_mmcm_adv_inst_CLKOUT2B_UNCONNECTED, + CLKOUT3 => clk_out4_clk_wiz_0, + CLKOUT3B => NLW_mmcm_adv_inst_CLKOUT3B_UNCONNECTED, + CLKOUT4 => NLW_mmcm_adv_inst_CLKOUT4_UNCONNECTED, + CLKOUT5 => NLW_mmcm_adv_inst_CLKOUT5_UNCONNECTED, + CLKOUT6 => NLW_mmcm_adv_inst_CLKOUT6_UNCONNECTED, + DADDR(6 downto 0) => B"0000000", + DCLK => '0', + DEN => '0', + DI(15 downto 0) => B"0000000000000000", + DO(15 downto 0) => NLW_mmcm_adv_inst_DO_UNCONNECTED(15 downto 0), + DRDY => NLW_mmcm_adv_inst_DRDY_UNCONNECTED, + DWE => '0', + LOCKED => locked, + PSCLK => '0', + PSDONE => NLW_mmcm_adv_inst_PSDONE_UNCONNECTED, + PSEN => '0', + PSINCDEC => '0', + PWRDWN => '0', + RST => reset + ); +end STRUCTURE; +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; +library UNISIM; +use UNISIM.VCOMPONENTS.ALL; +entity clk_wiz_0 is + port ( + clk_in1 : in STD_LOGIC; + clk_out1 : out STD_LOGIC; + clk_out2 : out STD_LOGIC; + clk_out3 : out STD_LOGIC; + clk_out4 : out STD_LOGIC; + reset : in STD_LOGIC; + locked : out STD_LOGIC + ); + attribute NotValidForBitStream : boolean; + attribute NotValidForBitStream of clk_wiz_0 : entity is true; + attribute CORE_GENERATION_INFO : string; + attribute CORE_GENERATION_INFO of clk_wiz_0 : entity is "clk_wiz_0,clk_wiz_v5_2_0,{component_name=clk_wiz_0,use_phase_alignment=true,use_min_o_jitter=false,use_max_i_jitter=false,use_dyn_phase_shift=false,use_inclk_switchover=false,use_dyn_reconfig=false,enable_axi=0,feedback_source=FDBK_AUTO,PRIMITIVE=MMCM,num_out_clk=4,clkin1_period=10.0,clkin2_period=10.0,use_power_down=false,use_reset=true,use_locked=true,use_inclk_stopped=false,feedback_type=SINGLE,CLOCK_MGR_TYPE=NA,manual_override=false}"; +end clk_wiz_0; + +architecture STRUCTURE of clk_wiz_0 is +begin +inst: entity work.clk_wiz_0_clk_wiz_0_clk_wiz + port map ( + clk_in1 => clk_in1, + clk_out1 => clk_out1, + clk_out2 => clk_out2, + clk_out3 => clk_out3, + clk_out4 => clk_out4, + locked => locked, + reset => reset + ); +end STRUCTURE; diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_stub.v b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_stub.v new file mode 100644 index 0000000..3e730b7 --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_stub.v @@ -0,0 +1,24 @@ +// Copyright 1986-2015 Xilinx, Inc. All Rights Reserved. +// -------------------------------------------------------------------------------- +// Tool Version: Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015 +// Date : Thu Jan 21 17:13:26 2016 +// Host : WK86 running 64-bit Service Pack 1 (build 7601) +// Command : write_verilog -force -mode synth_stub C:/Work/Github/Working/Looper/src/ip/clk_wiz_0/clk_wiz_0_stub.v +// Design : clk_wiz_0 +// Purpose : Stub declaration of top-level module interface +// Device : xc7a200tsbg484-1 +// -------------------------------------------------------------------------------- + +// This empty module with port declaration file causes synthesis tools to infer a black box for IP. +// The synthesis directives are for Synopsys Synplify support to prevent IO buffer insertion. +// Please paste the declaration into a Verilog source file or add the file as an additional source. +module clk_wiz_0(clk_in1, clk_out1, clk_out2, clk_out3, clk_out4, reset, locked) +/* synthesis syn_black_box black_box_pad_pin="clk_in1,clk_out1,clk_out2,clk_out3,clk_out4,reset,locked" */; + input clk_in1; + output clk_out1; + output clk_out2; + output clk_out3; + output clk_out4; + input reset; + output locked; +endmodule diff --git a/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl new file mode 100644 index 0000000..262c691 --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl @@ -0,0 +1,33 @@ +-- Copyright 1986-2015 Xilinx, Inc. All Rights Reserved. +-- -------------------------------------------------------------------------------- +-- Tool Version: Vivado v.2015.3 (win64) Build 1368829 Mon Sep 28 20:06:43 MDT 2015 +-- Date : Thu Jan 21 17:13:26 2016 +-- Host : WK86 running 64-bit Service Pack 1 (build 7601) +-- Command : write_vhdl -force -mode synth_stub C:/Work/Github/Working/Looper/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl +-- Design : clk_wiz_0 +-- Purpose : Stub declaration of top-level module interface +-- Device : xc7a200tsbg484-1 +-- -------------------------------------------------------------------------------- +library IEEE; +use IEEE.STD_LOGIC_1164.ALL; + +entity clk_wiz_0 is + Port ( + clk_in1 : in STD_LOGIC; + clk_out1 : out STD_LOGIC; + clk_out2 : out STD_LOGIC; + clk_out3 : out STD_LOGIC; + clk_out4 : out STD_LOGIC; + reset : in STD_LOGIC; + locked : out STD_LOGIC + ); + +end clk_wiz_0; + +architecture stub of clk_wiz_0 is +attribute syn_black_box : boolean; +attribute black_box_pad_pin : string; +attribute syn_black_box of stub : architecture is true; +attribute black_box_pad_pin of stub : architecture is "clk_in1,clk_out1,clk_out2,clk_out3,clk_out4,reset,locked"; +begin +end; diff --git a/tp_vivado/src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt b/tp_vivado/src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt new file mode 100644 index 0000000..c88739c --- /dev/null +++ b/tp_vivado/src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt @@ -0,0 +1,115 @@ +2015.3: + * Version 5.2 + * IP revision number added to HDL module, library, and include file names, to support designs with both locked and upgraded IP instances + * Port Renaming tab is hidden in the GUI in IP Integrator as this feature is not supported + * Phase alignment feature is removed for ultrascale PLL as primitve has limited capabilities of supporting this feature + * When clocking wizard is targetted on a board part, the frequency values that gets propagated to primary and secondary clocks are displayed in floating number format + * Example design and simulation files are delivered in verilog only + +2015.2.1: + * Version 5.1 (Rev. 6) + * No changes + +2015.2: + * Version 5.1 (Rev. 6) + * No changes + +2015.1: + * Version 5.1 (Rev. 6) + * Updated mmcm_pll_filter_lookup and mmcm_pll_lock_lookup functions in the header file for 7-Series and UltraScale devices + * Supported devices and production status are now determined automatically, to simplify support for future devices + +2014.4.1: + * Version 5.1 (Rev. 5) + * No changes + +2014.4: + * Version 5.1 (Rev. 5) + * Internal device family change, no functional changes + * updates related to the source selection based on board interface for zed board + +2014.3: + * Version 5.1 (Rev. 4) + * Option added to enable dynamic phase and duty cycle for resource optimization in AXI4-Lite interface + +2014.2: + * Version 5.1 (Rev. 3) + * Updated for AXI4-Lite interface locked status register address and bit mapping to align with the pg065 + +2014.1: + * Version 5.1 (Rev. 2) + * Updated to use inverted output CLKOUTB 0-3 of Clocking Primitive based on requested 180 phase w.r.t. previous clock + * Internal device family name change, no functional changes + +2013.4: + * Version 5.1 (Rev. 1) + * Added support for Ultrascale devices + * Updated Board Flow GUI to select the clock interfaces + * Fixed issue with Stub file parameter error for BUFR output driver + +2013.3: + * Version 5.1 + * Added AXI4-Lite interface to dynamically reconfigure MMCM/PLL + * Improved safe clock logic to remove glitches on clock outputs for odd multiples of input clock frequencies + * Fixed precision issues between displayed and actual frequencies + * Added tool tips to GUI + * Added Jitter and Phase error values to IP properties + * Added support for Cadence IES and Synopsys VCS simulators + * Reduced warnings in synthesis and simulation + * Enhanced support for IP Integrator + +2013.2: + * Version 5.0 (Rev. 1) + * Fixed issue with clock constraints for multiple instances of clocking wizard + * Updated Life-Cycle status of devices + +2013.1: + * Version 5.0 + * Lower case ports for Verilog + * Added Safe Clock Startup and Clock Sequencing + +(c) Copyright 2008 - 2015 Xilinx, Inc. All rights reserved. + +This file contains confidential and proprietary information +of Xilinx, Inc. and is protected under U.S. and +international copyright and other intellectual property +laws. + +DISCLAIMER +This disclaimer is not a license and does not grant any +rights to the materials distributed herewith. Except as +otherwise provided in a valid license issued to you by +Xilinx, and to the maximum extent permitted by applicable +law: (1) THESE MATERIALS ARE MADE AVAILABLE "AS IS" AND +WITH ALL FAULTS, AND XILINX HEREBY DISCLAIMS ALL WARRANTIES +AND CONDITIONS, EXPRESS, IMPLIED, OR STATUTORY, INCLUDING +BUT NOT LIMITED TO WARRANTIES OF MERCHANTABILITY, NON- +INFRINGEMENT, OR FITNESS FOR ANY PARTICULAR PURPOSE; and +(2) Xilinx shall not be liable (whether in contract or tort, +including negligence, or under any other theory of +liability) for any loss or damage of any kind or nature +related to, arising under or in connection with these +materials, including for any direct, or any indirect, +special, incidental, or consequential loss or damage +(including loss of data, profits, goodwill, or any type of +loss or damage suffered as a result of any action brought +by a third party) even if such damage or loss was +reasonably foreseeable or Xilinx had been advised of the +possibility of the same. + +CRITICAL APPLICATIONS +Xilinx products are not designed or intended to be fail- +safe, or for use in any application requiring fail-safe +performance, such as life-support or safety devices or +systems, Class III medical devices, nuclear facilities, +applications related to the deployment of airbags, or any +other applications that could lead to death, personal +injury, or severe property or environmental damage +(individually and collectively, "Critical +Applications"). Customer assumes the sole risk and +liability of any use of Xilinx products in Critical +Applications, subject only to applicable laws and +regulations governing limitations on product liability. + +THIS COPYRIGHT NOTICE AND DISCLAIMER MUST BE RETAINED AS +PART OF THIS FILE AT ALL TIMES. -- GitLab