From 4d9cd97f30fd013fb3a2422a4a467c5747a28456 Mon Sep 17 00:00:00 2001 From: Florian Huynh <huynhf.florian@gmail.com> Date: Wed, 26 Mar 2025 14:55:10 +0100 Subject: [PATCH] Ajout du fichier operative et control VHDL et MAJ DRAWIO de l'operative --- docs/img/OperativeUnit.drawio.png | Bin 303273 -> 158691 bytes src/constraints/NexysVideo_Master.xdc | 365 ++ src/hdl/TWICtl.vhd | 571 ++ src/hdl/audioProc.v | 231 + src/hdl/audio_init.v | 246 + src/hdl/controlUnit.vhd | 125 + src/hdl/debounce.v | 108 + src/hdl/fir.vhd | 93 + src/hdl/firUnit.vhd | 109 + src/hdl/i2s_ctl.vhd | 296 + src/hdl/operativeUnit.vhd | 219 + src/hdl/processingUnitIP.v | 3270 +++++++++++ src/hdl/tb_firUnit.vhd | 87 + src/ip/clk_wiz_0/clk_wiz_0.dcp | Bin 0 -> 12528 bytes src/ip/clk_wiz_0/clk_wiz_0.upgrade_log | 332 ++ src/ip/clk_wiz_0/clk_wiz_0.v | 100 + src/ip/clk_wiz_0/clk_wiz_0.vho | 103 + src/ip/clk_wiz_0/clk_wiz_0.xci | 525 ++ src/ip/clk_wiz_0/clk_wiz_0.xdc | 59 + 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 + src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc | 56 + src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v | 278 + src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl | 218 + 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 + 28 files changed, 12713 insertions(+) create mode 100644 src/constraints/NexysVideo_Master.xdc create mode 100644 src/hdl/TWICtl.vhd create mode 100644 src/hdl/audioProc.v create mode 100644 src/hdl/audio_init.v create mode 100644 src/hdl/controlUnit.vhd create mode 100644 src/hdl/debounce.v create mode 100644 src/hdl/fir.vhd create mode 100644 src/hdl/firUnit.vhd create mode 100644 src/hdl/i2s_ctl.vhd create mode 100644 src/hdl/operativeUnit.vhd create mode 100644 src/hdl/processingUnitIP.v create mode 100644 src/hdl/tb_firUnit.vhd create mode 100644 src/ip/clk_wiz_0/clk_wiz_0.dcp create mode 100644 src/ip/clk_wiz_0/clk_wiz_0.upgrade_log create mode 100644 src/ip/clk_wiz_0/clk_wiz_0.v create mode 100644 src/ip/clk_wiz_0/clk_wiz_0.vho create mode 100644 src/ip/clk_wiz_0/clk_wiz_0.xci create mode 100644 src/ip/clk_wiz_0/clk_wiz_0.xdc create mode 100644 src/ip/clk_wiz_0/clk_wiz_0.xml create mode 100644 src/ip/clk_wiz_0/clk_wiz_0_board.xdc create mode 100644 src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v create mode 100644 src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc create mode 100644 src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v create mode 100644 src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl create mode 100644 src/ip/clk_wiz_0/clk_wiz_0_stub.v create mode 100644 src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl create mode 100644 src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt diff --git a/docs/img/OperativeUnit.drawio.png b/docs/img/OperativeUnit.drawio.png index c8cdd46c2de01ce04c3f7d424b1d6469637756ea..cf060246706be329684ed237c820c827f28c4b1a 100644 GIT binary patch literal 158691 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�LT|Pu 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 literal 303273 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�B)*gqLj@mazE-5~8(wXs6MGw?jndrAn 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%0Av?+95E1+KQ75tPJ8j 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 diff --git a/src/constraints/NexysVideo_Master.xdc b/src/constraints/NexysVideo_Master.xdc new file mode 100644 index 0000000..b256a38 --- /dev/null +++ b/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/src/hdl/TWICtl.vhd b/src/hdl/TWICtl.vhd new file mode 100644 index 0000000..e0dad08 --- /dev/null +++ b/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/src/hdl/audioProc.v b/src/hdl/audioProc.v new file mode 100644 index 0000000..cae83df --- /dev/null +++ b/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/src/hdl/audio_init.v b/src/hdl/audio_init.v new file mode 100644 index 0000000..0f33184 --- /dev/null +++ b/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/src/hdl/controlUnit.vhd b/src/hdl/controlUnit.vhd new file mode 100644 index 0000000..81c7d53 --- /dev/null +++ b/src/hdl/controlUnit.vhd @@ -0,0 +1,125 @@ +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 : in std_logic; + + O_loadShift_X : out std_logic; -- filtered sample + O_loadShift_Y : out std_logic; -- Y sample + O_loadShift_Z : out std_logic; -- Z sample + + O_initAddress : out std_logic; -- Control signal to initialize register read address + O_incrAddress : out std_logic; -- Control signal to increment register read address + O_X : out std_logic; + O_Y : out std_logic; + O_Z1 : out std_logic; + O_Z2 : out std_logic; + + 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_Z1, WAIT, PROCESSING_LOOP_Z2, 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 (SR_presentState, I_inputSampleValid, I_processingDone) is + begin + case SR_presentState is + + when WAIT_SAMPLE => + if I_inputSampleValid = '1' then + SR_futurState <= STORE_X; + else + SR_futurState <= WAIT_SAMPLE; + + when STORE_X => + SR_futurState <= PROCESSING_LOOP_Y; + + when PROCESSING_LOOP_Y => + if I_processingDone = '1' then + SR_futurState <= STORE_Y; + else + SR_futurState <= PROCESSING_LOOP_Y; + + when STORE_Y => + SR_futurState <= PROCESSING_LOOP_Z1; + + when PROCESSING_LOOP_Z1 => + if I_processingDone = '1' then + SR_futurState <= WAIT; + else + SR_futurState <= PROCESSING_LOOP_Z1; + + when WAIT => + SR_futurState <= PROCESSING_LOOP_Z2; + + when PROCESSING_LOOP_Z2 => + if I_processingDone = '1' then + SR_futurState <= STORE_Z; + else + SR_futurState <= PROCESSING_LOOP_Z2; + + when STORE_Z => + SR_futurState <= PROCESSING_LOOP_R; + + when PROCESSING_LOOP_R => + if I_processingDone = '1' then + SR_futurState <= OUTPUT; + else + SR_futurState <= PROCESSING_LOOP_R; + + when OUTPUT => + SR_futurState <= WAIT_END_SAMPLE; + + when WAIT_END_SAMPLE => + if I_inputSampleValid = '0' then + SR_futurState <= WAIT_SAMPLE; + else + SR_futurState <= WAIT_END_SAMPLE; + + when others => null; + end case; + end process; + + 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 <= '1' when SR_presentState = STORE_X or SR_presentState = STORE_Y or SR_presentState = WAIT or SR_presentState = STORE_Z else '0'; + O_incrAddress <= '1' when SR_presentState = PROCESSING_LOOP_Y or SR_presentState = PROCESSING_LOOP_Z1 or SR_presentState = PROCESSING_LOOP_Z2 or SR_presentState = PROCESSING_LOOP_R else '0'; + O_X <= '1' when SR_presentState = STORE_X else '0'; + O_Y <= '1' when SR_presentState = STORE_Y else '0'; + O_Z1 <= '1' when SR_presentState = WAIT else '0'; + O_Z2 <= '1' when SR_presentState = STORE_Z 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_Z1 or SR_presentState = PROCESSING_LOOP_Z2 or SR_presentState = PROCESSING_LOOP_R else '0'; + O_loadY <= '1' when SR_presentState = OUTPUT else '0'; + O_FilteredSampleValid <= '1' when SR_presentState = WAIT_END_SAMPLE else '0'; + + +end architecture archi_operativeUnit; \ No newline at end of file diff --git a/src/hdl/debounce.v b/src/hdl/debounce.v new file mode 100644 index 0000000..033a4fb --- /dev/null +++ b/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/src/hdl/fir.vhd b/src/hdl/fir.vhd new file mode 100644 index 0000000..785d6e4 --- /dev/null +++ b/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/src/hdl/firUnit.vhd b/src/hdl/firUnit.vhd new file mode 100644 index 0000000..2c317f0 --- /dev/null +++ b/src/hdl/firUnit.vhd @@ -0,0 +1,109 @@ +------------------------------------------------------------------------------- +-- 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(7 downto 0); -- 8 bit input sample + I_inputSampleValid : in std_logic; + O_filteredSample : out std_logic_vector(7 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 : in std_logic; + O_loadShift : out std_logic; + O_initAddress : out std_logic; + O_incrAddress : out std_logic; + 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(7 downto 0); + I_loadShift : in std_logic; + I_initAddress : in std_logic; + I_incrAddress : in std_logic; + I_initSum : in std_logic; + I_loadSum : in std_logic; + I_loadY : in std_logic; + O_processingDone : out std_logic; + O_Y : out std_logic_vector(7 downto 0)); + end component operativeUnit; + + signal SC_processingDone : std_logic; + signal SC_loadShift : std_logic; + signal SC_initAddress : std_logic; + signal SC_incrAddress : std_logic; + signal SC_initSum : std_logic; + 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 => SC_processingDone, + O_loadShift => SC_loadShift, + O_initAddress => SC_initAddress, + O_incrAddress => SC_incrAddress, + 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 => SC_loadShift, + I_initAddress => SC_initAddress, + I_incrAddress => SC_incrAddress, + I_initSum => SC_initSum, + I_loadSum => SC_loadSum, + I_loadY => SC_loadY, + O_processingDone => SC_processingDone, + O_Y => O_filteredSample); + +end architecture archi_firUnit; diff --git a/src/hdl/i2s_ctl.vhd b/src/hdl/i2s_ctl.vhd new file mode 100644 index 0000000..1b608ad --- /dev/null +++ b/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/src/hdl/operativeUnit.vhd b/src/hdl/operativeUnit.vhd new file mode 100644 index 0000000..68ac0a1 --- /dev/null +++ b/src/hdl/operativeUnit.vhd @@ -0,0 +1,219 @@ +------------------------------------------------------------------------------- +-- 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 ( + initAddress : in std_logic; + I_incrAddress : in std_logic; + I_x : in std_logic; + I_y : in std_logic; + I_z1 : in std_logic; + I_z2 : in std_logic; + I_initSum : in std_logic; + I_loadSum : in std_logic; + I_inputSample : in std_logic_vector(10 downto 0); + I_loadShift_x : in std_logic; + I_loadShift_y : in std_logic; + I_loadShift_z : in std_logic; + I_loadY : in std_logic; + I_loadRun : in std_logic; + + O_processingDone: in std_logic; + O_Y : in std_logic_vector(10 downto 0) + ); + +end entity operativeUnit; + +architecture arch_operativeUnit of operativeUnit is + type registerFile_h is array(0 to 128) of signed(10 downto 0); + type registerFile_b is array(0 to 2) of signed(10 downto 0); + type registerFile_a is array(0 to 1) of signed(10 downto 0); + type registerFile_g is array(0 to 10) of signed(10 downto 0); + + signal SR_read_add_x : unsigned(128 downto 0); + signal SR_read_add_y : unsigned(2 downto 0); + signal SR_read_add_z1 : unsigned(1 downto 0); + signal SR_read_add_z2 : unsigned(10 downto 0); + + signal SR_Sample_Sel : unsigned(2 downto 0); + signal SR_Coeff_Sel : unsigned(3 downto 0); + + signal SC_sample_x : signed(10 downto 0); + signal SC_sample_y : signed(10 downto 0); + signal SC_sample_z : signed(10 downto 0); + + signal SC_coeff_h : signed(10 downto 0); + signal SC_coeff_b : signed(10 downto 0); + signal SC_coeff_a : signed(10 downto 0); + signal SC_coeff_g : signed(10 downto 0); + + signal SC_multOperand1 : signed(10 downto 0); + signal SC_multOperand2 : signed(10 downto 0); + + signal SC_add : unsigned(28 downto 0); + + signal SC_multResult : unsigned(21 downto 0); + signal SC_addResult : unsigned(28 downto 0); + + signal SC_output : signed(10 downto 0); + + signal SC_coeff_h : registerFile_h; + signal SC_coeff_b : registerFile_b; + signal SC_coeff_a : registerFile_a; + signal SC_coeff_g : registerFile_g; + + signal SC_sample_x : registerFile_h; + signal SC_sample_y : registerFile_b; + signal SC_sample_z : registerFile_g; + +begin + +-- Low-pass filter provided with octave (or Matlab ;)) command +--fir1(15, .001)/sqrt(sum(fir1(15, .001).^2))*2^6 + SR_coefRegister <= (to_signed(2, 8), -- ROM register used file to store FIR coefficients + to_signed(3, 8), + to_signed(6, 8), + to_signed(10, 8), + to_signed(15, 8), + to_signed(20, 8), + to_signed(24, 8), + to_signed(26, 8), + to_signed(26, 8), + to_signed(24, 8), + to_signed(20, 8), + to_signed(15, 8), + to_signed(10, 8), + to_signed(6, 8), + to_signed(3, 8), + to_signed(2, 8) + ); + + shift : process (I_clock, I_reset) is + begin -- process shift + if I_reset = '1' then + SC_sample_x <= (others => '0'); + SC_sample_y <= (others => '0'); + SC_sample_z <= (others => '0'); + elsif rising_edge(I_clock) then + if I_loadShift_x = '1' then + SC_sample_x <= SC_sample_x(1 to 128); + SC_sample_x(0) <= signed(I_inputSample); + elsif I_loadShift_y = '1' then + SC_sample_y <= SR_read_add_y(1 to 2); + SC_sample_y(0) <= signed(SC_addResult(10 to 20)); -- a checker + elsif I_loadShift_z = '1' then + SC_sample_z <= SR_read_add_z2(1 to 10); + SC_sample_z(0) <= signed(SC_addResult(9 to 19)); -- a checker + end if; + end if; + end process shift; + + incr_address : process (I_clock, I_reset) is + begin + if I_reset = '1' then + SR_read_add_x <= (others => '0'); + SR_read_add_y <= (others => '0'); + SR_read_add_z1 <= (others => '0'); + SR_read_add_z2 <= (others => '0'); + elsif rising_edge(I_clock) then + if I_initAddress = '1' then + SR_read_add_x <= 0; + SR_read_add_y <= 0; + SR_read_add_z1 <= 0; + SR_read_add_z2 <= 0; + elsif I_incrAddress = '1' then + if SR_read_add_x < 129 then + SR_read_add_x <= SR_read_add_x + 1; + end if; + if SR_read_add_y < 3 then + SR_read_add_y <= SR_read_add_y + 1; + end if; + if SR_read_add_z1 < 2 then + SR_read_add_z1 <= SR_read_add_z1 + 1; + end if; + if SR_read_add_z2 < 11 then + SR_read_add_z2 <= SR_read_add_z2 + 1; + end if; + end if; + end if; + end process incr_address; + + O_processingDone <= '1' when SR_read_add_x > 128 or + SR_read_add_y > 3 or + SR_read_add_z1 > 2 or + SR_read_add_z2 > 11 + else '0'; + + SC_multOperand1 <= SR_Sample_Sel(SC_sample_x) when I_x = '1' else + SR_Sample_Sel(SC_sample_y) when I_y = '1' else + SR_Sample_Sel(SC_sample_z) when I_z1 = '1' else + SR_Sample_Sel(SC_sample_z) when I_z2 = '1' else + (others => '0'); + SC_multOperand2 <= SR_Coeff_Select(SC_coeff_h) when I_x = '1' else + SR_Coeff_Select(SC_coeff_b) when I_y = '1' else + SR_Coeff_Select(SC_coeff_a) when I_z1 = '1' else + SR_Coeff_Select(SC_coeff_g) when I_z2 = '1' else + (others => '0'); + SC_multResult <= SC_multOperand1*SC_multOperand2; + SC_addResult <= SC_multResult + SC_add; + + sum_acc : process(I_clock, I_reset) is + begin + if I_reset = '1' then + SC_add <= (others => '0'); + elsif rising_edge(I_clock) then + if I_loadSum = '1' then + SC_add <= SC_addResult; + elsif I_initSum = '1' then + SC_add <= (others => '0'); + end if; + end if; + end process sum_acc; + + store_result : process (I_clock, I_reset) is + begin + if I_reset = '1' then + SC_output <= (others => '0'); + elsif rising_edge(I_clock) then + if I_loadRun = '1' then + if SC_addResult(9) = '1' then + SC_output <= SC_addResult(20 downto 10) + 1; + else + SC_output <= SC_addResult(20 downto 10); + end if; + end if; + end if; + end process store_result; + + O_Y <= std_logic_vector(SC_output); + +end architecture arch_operativeUnit; diff --git a/src/hdl/processingUnitIP.v b/src/hdl/processingUnitIP.v new file mode 100644 index 0000000..8ca1850 --- /dev/null +++ b/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/src/hdl/tb_firUnit.vhd b/src/hdl/tb_firUnit.vhd new file mode 100644 index 0000000..e19d713 --- /dev/null +++ b/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(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 SC_clock : std_logic := '0'; + signal SC_reset : std_logic; + signal SC_inputSample : std_logic_vector(7 downto 0); + signal SC_inputSampleValid : std_logic:='0'; + signal SC_filteredSample : std_logic_vector(7 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 <= "00000000", + "01111111" after 401 ns, + "00000000" after 601 ns, + "00100100" after 4201 ns, + "01100100" after 4401 ns, + "10100010" after 4601 ns, + "11011011" after 4801 ns, + "00001011" after 5001 ns, + "10000000" after 5201 ns, + "01111111" after 5401 ns, + "10111010" 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/src/ip/clk_wiz_0/clk_wiz_0.dcp b/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/src/ip/clk_wiz_0/clk_wiz_0.upgrade_log b/src/ip/clk_wiz_0/clk_wiz_0.upgrade_log new file mode 100644 index 0000000..6bd8d52 --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0.v b/src/ip/clk_wiz_0/clk_wiz_0.v new file mode 100644 index 0000000..2e3a203 --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0.vho b/src/ip/clk_wiz_0/clk_wiz_0.vho new file mode 100644 index 0000000..c6b126b --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0.xci b/src/ip/clk_wiz_0/clk_wiz_0.xci new file mode 100644 index 0000000..79f1c0a --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0.xdc b/src/ip/clk_wiz_0/clk_wiz_0.xdc new file mode 100644 index 0000000..420a6de --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0.xml b/src/ip/clk_wiz_0/clk_wiz_0.xml new file mode 100644 index 0000000..66fd124 --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0_board.xdc b/src/ip/clk_wiz_0/clk_wiz_0_board.xdc new file mode 100644 index 0000000..3422a8e --- /dev/null +++ b/src/ip/clk_wiz_0/clk_wiz_0_board.xdc @@ -0,0 +1,2 @@ +#--------------------Physical Constraints----------------- + diff --git a/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v b/src/ip/clk_wiz_0/clk_wiz_0_clk_wiz.v new file mode 100644 index 0000000..e47643a --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc b/src/ip/clk_wiz_0/clk_wiz_0_ooc.xdc new file mode 100644 index 0000000..41c79d7 --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v b/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.v new file mode 100644 index 0000000..e0a8184 --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl b/src/ip/clk_wiz_0/clk_wiz_0_sim_netlist.vhdl new file mode 100644 index 0000000..84ae83d --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0_stub.v b/src/ip/clk_wiz_0/clk_wiz_0_stub.v new file mode 100644 index 0000000..3e730b7 --- /dev/null +++ b/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/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl b/src/ip/clk_wiz_0/clk_wiz_0_stub.vhdl new file mode 100644 index 0000000..262c691 --- /dev/null +++ b/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/src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt b/src/ip/clk_wiz_0/doc/clk_wiz_v5_2_changelog.txt new file mode 100644 index 0000000..c88739c --- /dev/null +++ b/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